Posts
- Quick and easy Python concurrency - November 5, 2024
- Default Apps (2023) - November 26, 2023
- HN500 Updates - October 28, 2023
- Introduction to the OWASP Top 10 (at a former employer in May 2023) - August 31, 2023
- How I use Django's messages framework - August 30, 2023
- Respectfully Requesting RSS Feeds with Python - August 21, 2023
- Website Best Practices - August 15, 2023
- Types of Testing You Should Care About: Static Application Security Testing - July 7, 2023
- Step-by-step: Deploying Kanboard to a Debian 12 VPS - June 26, 2023
- Types of Testing You Should Care About: Integration Testing - June 13, 2023
- Types of Testing You Should Care About: Unit Testing - June 6, 2023
- Getting eralchemy working on MacOS in 2023 - March 27, 2023
- Embedding my current status.lol status on my homepage - January 31, 2023
- An open source Python project CI pipeline - January 16, 2023
- Deploying Django apps with Github Actions and Django Up - December 29, 2022
- Jog to Tallangatta - November 8, 2022
- Git branching strategy diagrams - October 29, 2022
- Very Handy: screenshots.page for IPv6 testing - October 13, 2022
- NetNewsWire is my Favourite iOS App - October 3, 2022
- Deep Dive into JWTs - September 22, 2022
- Run Randomly - July 31, 2022
- News aggregators in the style of (what I remember as) Pop URLs - June 28, 2022
- Six things I do every time I start a Django project - June 20, 2022
- Level Two: JSON over HTTP - June 9, 2022
- Using Environment Variables in a React App - May 29, 2022
- TDD Practice: Time API with Django - May 20, 2022
- Level One: JSON over HTTP - May 12, 2022
- HTTP Status Codes - May 10, 2022
- Footy Fixture (.txt) - April 4, 2022
- Content-Security-Policy Survey (March 2022) - March 30, 2022
- Unique domains from a HAR file [snippet] - November 19, 2021
- Cool URIs don't change but dead links are my jam - November 1, 2021
- Building brntn.me when another Github Repo changes using Github Actions - January 26, 2021
- Learning Django URL Patterns by Example - October 13, 2017