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”. […]
Apple’s anti-competitive practices are well documented. This has allowed Apple to maintain a paltry mobile web experience with minimal effort. iOS Safari is a pathetic offering. Regardless, I’ve never bothered until recently with other iOS web browsers because they’re all Safari in a trench coat. […]
Svelte(Kit) keeps pulling me back in! The remote function stuff is looking tasty. Wish I had that for my client work last year. I’ve got a personal project I’m tempted to refactor but I’ll wait for the API to stabilise. In the meantime, I’m playing with a small SvelteKit app to read email […]
Croissant v0.5 has been released! I have improved the favicon fetcher from the last update. Croissant will now go HTML spelunking because not enough blogs have a default favicon.ico. I have added a “Close as Unread” button to the end of the reader view. […]
I just read an opinion piece on a tech company blog. I have a general rule not to do that. Corpo blogs are biased, thinly veiled ads that are too quick to jump the gun with: “And that’s why we built [crapware]”, without justification. I gave this blog a chance because the author Bruce Lawson is a […]