Last week my router almost died! Disaster was averted but it dawned on me how fragile my home network was. I have all manner of VLANs and firewall rules so I can’t just plug in my ISP-provided router. With no redundancy in place a real disaster would mean panic buying an expensive replacement, […]
My spring 2025 update ended with a to-do list, apparently. I totally forgot but I happened to complete the tasks anyway. Then disaster struck! Quick recap before the disaster. To-dones GitHub’s death spiral led me to finally self-host Forgejo publicly at git.dbushell.com. […]
Scroll fade is that oh so wonderful web design experience where elements fade in as they scroll into view. Often with a bit of transform on the Y-axis. If you’re reading this via RSS you’ve been spared. Done subtly and in moderation scroll fade can look fine†. […]
Shoutout to Robb Knight! I was struggling for time and a topic to kick-start the year. I don’t think the title is trademarked so I stole it :) Robb also has a /uses page. I genuinely thought I had one but it’s a 404. I am reminded that I have an outdated /now page. […]
I have survived another year of self-employment! Business has changed over that time. Gone are the days I can freely share a neat case study online. Clients demand confidentiality. I front-end develop and I refuse to prompt and everything else is a secret! Can I survive next year? […]
I wrote about Advent of Code in January and I was keen to return for AoC 2025 . This year I upped my game by attempting all puzzles in JavaScript, Zig, and Rust. I had plenty of time due to a work project falling through… Oh well, time to brute force some puzzles! […]
My website is built with a home-cooked static site generator (don’t look, it’s a mess). I wrote a half-baked markdown parser I haven’t touched in a year. Until now! It’s time to under-engineer Hmmarkdown! De-sync I coded my markdown parser to be “optimistically async”. […]