Archive
2025
- Dec 20Self-hosted Future Mail Service with n8nUsing n8n to create a future email delivery workflow.
- Jul 19Choosing ActionConsciously building a bias for action.
- Mar 27Idea Slot MachineI vibe-coded a slot machine to generate project ideas.
- Feb 18A Visual Editor for the ZAP Automation FrameworkI built a drag-and-drop web-based editor for ZAP Automation Framework plans.
2024
- Dec 16Deliberate CuriosityPracticing curiosity to stay sane
- Aug 15Freedom to HackMy reflections on free software and how it has shaped my life in the past 10 years.
- Jun 02Running a Kubernetes Cluster at Home for FunAn overview of the things I did to setup a Kubernetes cluster at home with old laptops.
- Feb 20Getting Kubernetes Metadata on Linux NodesHow to get Kubernetes Pod metadata for processes on Linux nodes in Kubernetes clusters
2023
- Sep 03How I Manage My Finances with hledger and PythonAn overview of my plain-text accounting workflow.
- Jun 10Leaked Build Arguments in Multi-stage Docker Builds via Build AttestationsStop using Docker build arguments for your secrets!
- Feb 14Adding a Review Checklist to GitHub PRsI wrote a tampermonkey script which adds a review checklist to GitHub PRs.
- Jan 18Setting Up a Personal ActivityPub MicroblogI share why and how I set up my new microblog that's accessible at til.ricekot.com.
2022
- Nov 08How to Browse Twitter at CollegeUsing Tailscale and a Firefox PAC file to selectively proxy websites that are blocked by the firewall on my college network.
- Sep 13Hacking ZAP - ZAP Extender ScriptsExploring ZAP Extender scripts - a powerful and underappreciated way to customize OWASP ZAP's behavior.
- Aug 07SICP Exercises 1.16 - 1.19My solutions to some exercises from the book "Structure and Interpretation of Computer Programs".
- Aug 03Peeling Back The OnionWhy I think it is important to understand how your tools work.
- Apr 13Test Your APIs For Spring4Shell With Levo.aiA guide to testing your APIs for the Spring4Shell vulnerability using Levo.ai, featured on their blog.
- Mar 08ZAPCon 2022 Presentation ResourcesSlides and resources from my ZAPCon 2022 presentation are now available.
2021
- Dec 14Log4Shell Detection with ZAPA guide to detecting the Log4Shell vulnerability using OWASP ZAP, featured on the official ZAP blog.
- Aug 30Soaring Through the Stars as an Astra-NautMy Experience as an SDE Intern at Astra Security
- Aug 23Out-of-band Application Security Testing with OWASP ZAPA walkthrough of out-of-band application security testing with OWASP ZAP, featured on the official ZAP blog.
- Jul 11ZAP OAST: Basic Design DecisionsDesign choices behind the ZAP OAST add-on: file structure for extensibility, GUI design, and moving the callback extension into OAST.
- Jun 25Levelling Up ZAP with OASTIntroducing the OAST add-on for OWASP ZAP, bringing out-of-band security testing capabilities like blind SQLi detection to the proxy.
- Jan 05SICP Exercises 1.11 - 1.15Detailed solutions to SICP exercises 1.11-1.15, including a deep dive into the order of growth of the count-change procedure.
2020
- Nov 30Hot-swappable Jekyll ThemesSetting up a Jekyll blog so themes can be swapped by changing a Git branch, using submodules and GitHub Actions for automation.
- Nov 12The Grand SCHEME of ThingsNotes and solutions to the first 10 SICP exercises, covering evaluation order, recursion vs. iteration, and tail recursion in Scheme.
- Oct 09The Mechanics of Slender StructuresStudy notes on forces in slender structures: shear force and bending moment diagrams, distributed loading, and singularity functions.
- Oct 08Life and MeaningWrestling with nihilism and meaning through Frankl, Harari, and Cal Newport, and arriving at a personal reason to keep going.
- Oct 05CTE TechWeekend CTF 2020First-place writeup from CTE TechWeekend CTF 2020, covering reverse engineering with Ghidra, .pyc decompilation, and JSON injection.
- Sep 08Topological SpacesNotes on the fundamentals of topological spaces: definitions, open sets, discrete and indiscrete topologies, with proofs for co-finite and co-countable topologies.
- Aug 28Introducing the GraphQL Add-on for ZAPAnnouncement of the GraphQL add-on for OWASP ZAP, featured on the official ZAP blog.
- Jul 30GraphQL Query Generator - 2Adding full type support, multiple query strategies, and request methods to the ZAP GraphQL query generator.
- Jul 10GraphQL Query Generator - 1Building a recursive GraphQL query generator for OWASP ZAP as part of Google Summer of Code 2020, from pseudocode to working Java.
- Jul 09Adventures in Measure Theory - 5Tackling a tricky proof about preimages of generated sigma-algebras, with a useful StackExchange trick for working with generated collections.
- Jul 06Adventures in Measure Theory - 4Proving that preimage collections form sigma-algebras, working through exercises 111X(c) and 111X(d) from Fremlin's Measure Theory.
- Jul 04Adventures in Measure Theory - 3Proving set identities and showing that all intervals are Borel sets, with a neat Archimedean property argument.
- Jul 03Adventures in Measure Theory - 2Understanding Borel sets by first building up the concepts of generated sigma-algebras and open sets.
- Jul 01Adventures in Measure Theory - 1Notes on sigma-algebras, countable sets, and measure spaces from Fremlin's Measure Theory series.
- Jun 23Solving Cryptography Problems - 5Solving Shamir's secret sharing and elliptic curve point doubling to wrap up the cryptography assignment series.
- Jun 22Solving Cryptography Problems - 4Working through El Gamal digital signatures and applying Hadamard gates to a 2-qubit quantum system.
- Jun 21Solving Cryptography Problems - 3Tackling Rabin decryption and digital signatures using the Chinese Remainder Theorem and extended Euclidean algorithm.
- Jun 20Solving Cryptography Problems - 2Solving RSA decryption and digital signature problems step by step, from factoring n to computing modular inverses.
- Jun 19Solving Cryptography Problems - 1Working through CBC-MAC and Diffie-Hellman key exchange problems by looking up each concept as needed.
- Jun 14Maths is FictionSolving a calculus of variations problem from scratch, documenting every search and stumble along the way.
- Jun 03Baby StepsWeek 2 of GSoC: building import dialogs for the ZAP GraphQL add-on and mapping out GraphQL data types.
- May 28Beginning My Security JourneyHow a love for taking things apart led me to open source and my Google Summer of Code project with OWASP ZAP.
2019
- Dec 07Digital DetoxA personal account of giving up my smartphone and social media, and learning to be patient again.
- Jul 14Notes - Gradient DescentStep-by-step notes on implementing gradient descent for linear regression in PyTorch, with code and visualizations.
- Jun 27Hold-ups - Gradient DescentQuestions and resources I collected while trying to understand gradient descent, autograd, and backpropagation.
- Jun 06Handwritten Digit ClassifierTraining a ResNet34 model on the MNIST dataset to classify handwritten digits using fastai.
- Jun 05Anime or Cartoon?Training a deep learning image classifier to distinguish anime from cartoons using fastai and ResNet34.
2018
2016