<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Home</title><description>My personal website. I blog here.</description><link>https://ricekot.com/</link><item><title>Setting up TRMNL on my old iPad</title><link>https://ricekot.com/2026/trmnl-on-ipad/</link><guid isPermaLink="true">https://ricekot.com/2026/trmnl-on-ipad/</guid><description>Repurposing my dusty old iPad 3 as a TRMNL display, with a self-hosted TRMNL server running in my homelab.</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Self-hosted Future Mail Service with n8n</title><link>https://ricekot.com/2025/n8n-futuremail/</link><guid isPermaLink="true">https://ricekot.com/2025/n8n-futuremail/</guid><description>Using n8n to create a future email delivery workflow.</description><pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Choosing Action</title><link>https://ricekot.com/2025/choosing-action/</link><guid isPermaLink="true">https://ricekot.com/2025/choosing-action/</guid><description>Consciously building a bias for action.</description><pubDate>Sat, 19 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Idea Slot Machine</title><link>https://ricekot.com/2025/idea-slot-machine/</link><guid isPermaLink="true">https://ricekot.com/2025/idea-slot-machine/</guid><description>I vibe-coded a slot machine to generate project ideas.</description><pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate></item><item><title>A Visual Editor for the ZAP Automation Framework</title><link>https://ricekot.com/2025/zap-af-visual-editor/</link><guid isPermaLink="true">https://ricekot.com/2025/zap-af-visual-editor/</guid><description>I built a drag-and-drop web-based editor for ZAP Automation Framework plans.</description><pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate></item><item><title>Deliberate Curiosity</title><link>https://ricekot.com/2024/deliberate-curiosity/</link><guid isPermaLink="true">https://ricekot.com/2024/deliberate-curiosity/</guid><description>Practicing curiosity to stay sane</description><pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Freedom to Hack</title><link>https://ricekot.com/2024/free-software/</link><guid isPermaLink="true">https://ricekot.com/2024/free-software/</guid><description>My reflections on free software and how it has shaped my life in the past 10 years.</description><pubDate>Thu, 15 Aug 2024 00:00:00 GMT</pubDate></item><item><title>Running a Kubernetes Cluster at Home for Fun</title><link>https://ricekot.com/2024/k8s-at-home/</link><guid isPermaLink="true">https://ricekot.com/2024/k8s-at-home/</guid><description>An overview of the things I did to setup a Kubernetes cluster at home with old laptops.</description><pubDate>Sun, 02 Jun 2024 00:00:00 GMT</pubDate></item><item><title>Getting Kubernetes Metadata on Linux Nodes</title><link>https://ricekot.com/2024/getting-k8s-metadata-on-linux-nodes/</link><guid isPermaLink="true">https://ricekot.com/2024/getting-k8s-metadata-on-linux-nodes/</guid><description>How to get Kubernetes Pod metadata for processes on Linux nodes in Kubernetes clusters</description><pubDate>Tue, 20 Feb 2024 00:00:00 GMT</pubDate></item><item><title>How I Manage My Finances with hledger and Python</title><link>https://ricekot.com/2023/finance-workflow/</link><guid isPermaLink="true">https://ricekot.com/2023/finance-workflow/</guid><description>An overview of my plain-text accounting workflow.</description><pubDate>Sun, 03 Sep 2023 00:00:00 GMT</pubDate></item><item><title>Leaked Build Arguments in Multi-stage Docker Builds via Build Attestations</title><link>https://ricekot.com/2023/docker-provenance-attestations/</link><guid isPermaLink="true">https://ricekot.com/2023/docker-provenance-attestations/</guid><description>Stop using Docker build arguments for your secrets!</description><pubDate>Sat, 10 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Adding a Review Checklist to GitHub PRs</title><link>https://ricekot.com/2023/github-pr-review-checklist/</link><guid isPermaLink="true">https://ricekot.com/2023/github-pr-review-checklist/</guid><description>I wrote a tampermonkey script which adds a review checklist to GitHub PRs.</description><pubDate>Tue, 14 Feb 2023 00:00:00 GMT</pubDate></item><item><title>Setting Up a Personal ActivityPub Microblog</title><link>https://ricekot.com/2023/activitypub-microblog/</link><guid isPermaLink="true">https://ricekot.com/2023/activitypub-microblog/</guid><description>I share why and how I set up my new microblog that&apos;s accessible at til.ricekot.com.</description><pubDate>Wed, 18 Jan 2023 00:00:00 GMT</pubDate></item><item><title>How to Browse Twitter at College</title><link>https://ricekot.com/2022/browse-twitter-at-college/</link><guid isPermaLink="true">https://ricekot.com/2022/browse-twitter-at-college/</guid><description>Using Tailscale and a Firefox PAC file to selectively proxy websites that are blocked by the firewall on my college network.</description><pubDate>Tue, 08 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Hacking ZAP - ZAP Extender Scripts</title><link>https://ricekot.com/2022/zap-extender-scripts/</link><guid isPermaLink="true">https://ricekot.com/2022/zap-extender-scripts/</guid><description>Exploring ZAP Extender scripts - a powerful and underappreciated way to customize OWASP ZAP&apos;s behavior.</description><pubDate>Tue, 13 Sep 2022 00:00:00 GMT</pubDate></item><item><title>SICP Exercises 1.16 - 1.19</title><link>https://ricekot.com/2022/sicp-exercises-116-119/</link><guid isPermaLink="true">https://ricekot.com/2022/sicp-exercises-116-119/</guid><description>My solutions to some exercises from the book &quot;Structure and Interpretation of Computer Programs&quot;.</description><pubDate>Sun, 07 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Peeling Back The Onion</title><link>https://ricekot.com/2022/peeling-back-the-onion/</link><guid isPermaLink="true">https://ricekot.com/2022/peeling-back-the-onion/</guid><description>Why I think it is important to understand how your tools work.</description><pubDate>Wed, 03 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Test Your APIs For Spring4Shell With Levo.ai</title><link>https://ricekot.com/2022/spring4shell-with-levoai/</link><guid isPermaLink="true">https://ricekot.com/2022/spring4shell-with-levoai/</guid><description>A guide to testing your APIs for the Spring4Shell vulnerability using Levo.ai, featured on their blog.</description><pubDate>Wed, 13 Apr 2022 00:00:00 GMT</pubDate></item><item><title>ZAPCon 2022 Presentation Resources</title><link>https://ricekot.com/2022/zapcon-2022/</link><guid isPermaLink="true">https://ricekot.com/2022/zapcon-2022/</guid><description>Slides and resources from my ZAPCon 2022 presentation are now available.</description><pubDate>Tue, 08 Mar 2022 00:00:00 GMT</pubDate></item><item><title>Log4Shell Detection with ZAP</title><link>https://ricekot.com/2021/log4shell-detection-with-zap/</link><guid isPermaLink="true">https://ricekot.com/2021/log4shell-detection-with-zap/</guid><description>A guide to detecting the Log4Shell vulnerability using OWASP ZAP, featured on the official ZAP blog.</description><pubDate>Tue, 14 Dec 2021 00:00:00 GMT</pubDate></item><item><title>Soaring Through the Stars as an Astra-Naut</title><link>https://ricekot.com/2021/soaring-through-stars-as-an-astra-naut/</link><guid isPermaLink="true">https://ricekot.com/2021/soaring-through-stars-as-an-astra-naut/</guid><description>My Experience as an SDE Intern at Astra Security</description><pubDate>Mon, 30 Aug 2021 00:00:00 GMT</pubDate></item><item><title>Out-of-band Application Security Testing with OWASP ZAP</title><link>https://ricekot.com/2021/oast-with-owasp-zap/</link><guid isPermaLink="true">https://ricekot.com/2021/oast-with-owasp-zap/</guid><description>A walkthrough of out-of-band application security testing with OWASP ZAP, featured on the official ZAP blog.</description><pubDate>Mon, 23 Aug 2021 00:00:00 GMT</pubDate></item><item><title>ZAP OAST: Basic Design Decisions</title><link>https://ricekot.com/2021/zap-oast-basic-design-decisions/</link><guid isPermaLink="true">https://ricekot.com/2021/zap-oast-basic-design-decisions/</guid><description>Design choices behind the ZAP OAST add-on: file structure for extensibility, GUI design, and moving the callback extension into OAST.</description><pubDate>Sun, 11 Jul 2021 00:00:00 GMT</pubDate></item><item><title>Levelling Up ZAP with OAST</title><link>https://ricekot.com/2021/levelling-up-zap-with-oast/</link><guid isPermaLink="true">https://ricekot.com/2021/levelling-up-zap-with-oast/</guid><description>Introducing the OAST add-on for OWASP ZAP, bringing out-of-band security testing capabilities like blind SQLi detection to the proxy.</description><pubDate>Fri, 25 Jun 2021 00:00:00 GMT</pubDate></item><item><title>SICP Exercises 1.11 - 1.15</title><link>https://ricekot.com/2021/sicp-exercises-111-115/</link><guid isPermaLink="true">https://ricekot.com/2021/sicp-exercises-111-115/</guid><description>Detailed solutions to SICP exercises 1.11-1.15, including a deep dive into the order of growth of the count-change procedure.</description><pubDate>Tue, 05 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Hot-swappable Jekyll Themes</title><link>https://ricekot.com/2020/hot-swappable-jekyll-themes/</link><guid isPermaLink="true">https://ricekot.com/2020/hot-swappable-jekyll-themes/</guid><description>Setting up a Jekyll blog so themes can be swapped by changing a Git branch, using submodules and GitHub Actions for automation.</description><pubDate>Mon, 30 Nov 2020 00:00:00 GMT</pubDate></item><item><title>The Grand SCHEME of Things</title><link>https://ricekot.com/2020/grand-scheme/</link><guid isPermaLink="true">https://ricekot.com/2020/grand-scheme/</guid><description>Notes and solutions to the first 10 SICP exercises, covering evaluation order, recursion vs. iteration, and tail recursion in Scheme.</description><pubDate>Thu, 12 Nov 2020 00:00:00 GMT</pubDate></item><item><title>The Mechanics of Slender Structures</title><link>https://ricekot.com/2020/mechanics-slender-structures/</link><guid isPermaLink="true">https://ricekot.com/2020/mechanics-slender-structures/</guid><description>Study notes on forces in slender structures: shear force and bending moment diagrams, distributed loading, and singularity functions.</description><pubDate>Fri, 09 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Life and Meaning</title><link>https://ricekot.com/2020/life-and-meaning/</link><guid isPermaLink="true">https://ricekot.com/2020/life-and-meaning/</guid><description>Wrestling with nihilism and meaning through Frankl, Harari, and Cal Newport, and arriving at a personal reason to keep going.</description><pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate></item><item><title>CTE TechWeekend CTF 2020</title><link>https://ricekot.com/2020/cte-techweekend-ctf/</link><guid isPermaLink="true">https://ricekot.com/2020/cte-techweekend-ctf/</guid><description>First-place writeup from CTE TechWeekend CTF 2020, covering reverse engineering with Ghidra, .pyc decompilation, and JSON injection.</description><pubDate>Mon, 05 Oct 2020 00:00:00 GMT</pubDate></item><item><title>Topological Spaces</title><link>https://ricekot.com/2020/topological-spaces/</link><guid isPermaLink="true">https://ricekot.com/2020/topological-spaces/</guid><description>Notes on the fundamentals of topological spaces: definitions, open sets, discrete and indiscrete topologies, with proofs for co-finite and co-countable topologies.</description><pubDate>Tue, 08 Sep 2020 00:00:00 GMT</pubDate></item><item><title>Introducing the GraphQL Add-on for ZAP</title><link>https://ricekot.com/2020/introducing-graphql-addon/</link><guid isPermaLink="true">https://ricekot.com/2020/introducing-graphql-addon/</guid><description>Announcement of the GraphQL add-on for OWASP ZAP, featured on the official ZAP blog.</description><pubDate>Fri, 28 Aug 2020 00:00:00 GMT</pubDate></item><item><title>GraphQL Query Generator - 2</title><link>https://ricekot.com/2020/graphql-generator-2/</link><guid isPermaLink="true">https://ricekot.com/2020/graphql-generator-2/</guid><description>Adding full type support, multiple query strategies, and request methods to the ZAP GraphQL query generator.</description><pubDate>Thu, 30 Jul 2020 00:00:00 GMT</pubDate></item><item><title>GraphQL Query Generator - 1</title><link>https://ricekot.com/2020/graphql-generator-1/</link><guid isPermaLink="true">https://ricekot.com/2020/graphql-generator-1/</guid><description>Building a recursive GraphQL query generator for OWASP ZAP as part of Google Summer of Code 2020, from pseudocode to working Java.</description><pubDate>Fri, 10 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Adventures in Measure Theory - 5</title><link>https://ricekot.com/2020/measure-theory-5/</link><guid isPermaLink="true">https://ricekot.com/2020/measure-theory-5/</guid><description>Tackling a tricky proof about preimages of generated sigma-algebras, with a useful StackExchange trick for working with generated collections.</description><pubDate>Thu, 09 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Adventures in Measure Theory - 4</title><link>https://ricekot.com/2020/measure-theory-4/</link><guid isPermaLink="true">https://ricekot.com/2020/measure-theory-4/</guid><description>Proving that preimage collections form sigma-algebras, working through exercises 111X(c) and 111X(d) from Fremlin&apos;s Measure Theory.</description><pubDate>Mon, 06 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Adventures in Measure Theory - 3</title><link>https://ricekot.com/2020/measure-theory-3/</link><guid isPermaLink="true">https://ricekot.com/2020/measure-theory-3/</guid><description>Proving set identities and showing that all intervals are Borel sets, with a neat Archimedean property argument.</description><pubDate>Sat, 04 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Adventures in Measure Theory - 2</title><link>https://ricekot.com/2020/measure-theory-2/</link><guid isPermaLink="true">https://ricekot.com/2020/measure-theory-2/</guid><description>Understanding Borel sets by first building up the concepts of generated sigma-algebras and open sets.</description><pubDate>Fri, 03 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Adventures in Measure Theory - 1</title><link>https://ricekot.com/2020/measure-theory-1/</link><guid isPermaLink="true">https://ricekot.com/2020/measure-theory-1/</guid><description>Notes on sigma-algebras, countable sets, and measure spaces from Fremlin&apos;s Measure Theory series.</description><pubDate>Wed, 01 Jul 2020 00:00:00 GMT</pubDate></item><item><title>Solving Cryptography Problems - 5</title><link>https://ricekot.com/2020/cryptography-assignment-5/</link><guid isPermaLink="true">https://ricekot.com/2020/cryptography-assignment-5/</guid><description>Solving Shamir&apos;s secret sharing and elliptic curve point doubling to wrap up the cryptography assignment series.</description><pubDate>Tue, 23 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Solving Cryptography Problems - 4</title><link>https://ricekot.com/2020/cryptography-assignment-4/</link><guid isPermaLink="true">https://ricekot.com/2020/cryptography-assignment-4/</guid><description>Working through El Gamal digital signatures and applying Hadamard gates to a 2-qubit quantum system.</description><pubDate>Mon, 22 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Solving Cryptography Problems - 3</title><link>https://ricekot.com/2020/cryptography-assignment-3/</link><guid isPermaLink="true">https://ricekot.com/2020/cryptography-assignment-3/</guid><description>Tackling Rabin decryption and digital signatures using the Chinese Remainder Theorem and extended Euclidean algorithm.</description><pubDate>Sun, 21 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Solving Cryptography Problems - 2</title><link>https://ricekot.com/2020/cryptography-assignment-2/</link><guid isPermaLink="true">https://ricekot.com/2020/cryptography-assignment-2/</guid><description>Solving RSA decryption and digital signature problems step by step, from factoring n to computing modular inverses.</description><pubDate>Sat, 20 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Solving Cryptography Problems - 1</title><link>https://ricekot.com/2020/cryptography-assignment-1/</link><guid isPermaLink="true">https://ricekot.com/2020/cryptography-assignment-1/</guid><description>Working through CBC-MAC and Diffie-Hellman key exchange problems by looking up each concept as needed.</description><pubDate>Fri, 19 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Maths is Fiction</title><link>https://ricekot.com/2020/maths-is-fiction/</link><guid isPermaLink="true">https://ricekot.com/2020/maths-is-fiction/</guid><description>Solving a calculus of variations problem from scratch, documenting every search and stumble along the way.</description><pubDate>Sun, 14 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Baby Steps</title><link>https://ricekot.com/2020/baby-steps/</link><guid isPermaLink="true">https://ricekot.com/2020/baby-steps/</guid><description>Week 2 of GSoC: building import dialogs for the ZAP GraphQL add-on and mapping out GraphQL data types.</description><pubDate>Wed, 03 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Beginning My Security Journey</title><link>https://ricekot.com/2020/beginning-my-security-journey/</link><guid isPermaLink="true">https://ricekot.com/2020/beginning-my-security-journey/</guid><description>How a love for taking things apart led me to open source and my Google Summer of Code project with OWASP ZAP.</description><pubDate>Thu, 28 May 2020 00:00:00 GMT</pubDate></item><item><title>Digital Detox</title><link>https://ricekot.com/2019/digital-detox/</link><guid isPermaLink="true">https://ricekot.com/2019/digital-detox/</guid><description>A personal account of giving up my smartphone and social media, and learning to be patient again.</description><pubDate>Sat, 07 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Notes - Gradient Descent</title><link>https://ricekot.com/2019/notes-gradient-descent/</link><guid isPermaLink="true">https://ricekot.com/2019/notes-gradient-descent/</guid><description>Step-by-step notes on implementing gradient descent for linear regression in PyTorch, with code and visualizations.</description><pubDate>Sun, 14 Jul 2019 00:00:00 GMT</pubDate></item><item><title>Hold-ups - Gradient Descent</title><link>https://ricekot.com/2019/holdups-gradient-descent/</link><guid isPermaLink="true">https://ricekot.com/2019/holdups-gradient-descent/</guid><description>Questions and resources I collected while trying to understand gradient descent, autograd, and backpropagation.</description><pubDate>Thu, 27 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Handwritten Digit Classifier</title><link>https://ricekot.com/2019/handwritten-digits-classifier/</link><guid isPermaLink="true">https://ricekot.com/2019/handwritten-digits-classifier/</guid><description>Training a ResNet34 model on the MNIST dataset to classify handwritten digits using fastai.</description><pubDate>Thu, 06 Jun 2019 00:00:00 GMT</pubDate></item><item><title>Anime or Cartoon?</title><link>https://ricekot.com/2019/anime-or-cartoon/</link><guid isPermaLink="true">https://ricekot.com/2019/anime-or-cartoon/</guid><description>Training a deep learning image classifier to distinguish anime from cartoons using fastai and ResNet34.</description><pubDate>Wed, 05 Jun 2019 00:00:00 GMT</pubDate></item><item><title>I Found a Bug!</title><link>https://ricekot.com/2018/i-found-a-bug/</link><guid isPermaLink="true">https://ricekot.com/2018/i-found-a-bug/</guid><description>Discovering and exploiting a brute-forceable password reset flaw on a website using a Python script.</description><pubDate>Wed, 14 Feb 2018 00:00:00 GMT</pubDate></item><item><title>The Sieve of Eratosthenes</title><link>https://ricekot.com/2016/sieve-of-eratosthenes/</link><guid isPermaLink="true">https://ricekot.com/2016/sieve-of-eratosthenes/</guid><description>Implementing the Sieve of Eratosthenes in C++ to generate primes, with a walkthrough of why the algorithm works.</description><pubDate>Sat, 06 Feb 2016 00:00:00 GMT</pubDate></item><item><title>The Number Guessing Game</title><link>https://ricekot.com/2016/number-guessing-game/</link><guid isPermaLink="true">https://ricekot.com/2016/number-guessing-game/</guid><description>Building a binary search-powered number guessing game in C++ and reflecting on the beauty of simple algorithms.</description><pubDate>Tue, 02 Feb 2016 00:00:00 GMT</pubDate></item></channel></rss>