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