May 2025: Fluffy birds and fancy bookmarks
Merry May! The summer weather has arrived, with blue skies and warmer temperatures. I’ve been out for several walks along lakes and canals, and the assortment of cute and fluffy baby birds has been Just So Cute. I’ve seen ducklings, goslings, baby coots, and even a water vole!

It’s been quite a bitty month, wrapping up a lot of smaller things rather than anything big. I got my garden fence repaired (finally!). I organised my box of books I want to keep but don’t want on display. I did a deep clean of my fridge. It’s nothing thrilling, but it all makes my life a little better and easier.
Sadly, May also bought the news that Slipstitch is closing – the craft shop where I’ve been going to Queer Craft for so-long-I-can’t-remember. I’m disappointed, but I understand Rosie’s decision, and the memories and friendships will endure long after the bricks and mortar store is gone. They’re having a closing sale, so if you need some craft supplies, consider throwing them a few coins.
What have I been writing?
The big thing this month has been my long-promised bookmarking mini-series. I’ve now posted three of the four entries in the series, with the final part coming on Monday:
- Creating a static site for all my bookmarks – why I bookmark, why I use a static site, and how it works.
- Building a personal archive of the web, the slow way – how I built a web archive by hand, the tradeoffs between manual and automated archiving, and what I learnt about preserving the web.
- What I learnt about making websites by reading two thousand web pages – how to write thoughtful HTML, new-to-me features of CSS, and some quirks and relics I found while building my personal web archive.
These articles are the capstone to over a year of work, and I’m so pleased with how it’s turned out. I’ve put a lot of time and thought into this project, and it’s nice to share that thinking with other people.
The other article I wrote this month is about handling JSON objects with duplicate names in Python, based on a surprising aspect of the JSON spec. It turns out objects with duplicate names are completely legal, and I looked at how to detect and reject them in Python.
Finally, I wrote eleven “today I learned” posts:
- How does Flickr's getLicenseHistory handle photos with no license changes?
- How do I find photos of a person on Flickr?
- What does the word “gubernatorial” mean?
- You can set/update the 'total' of a progress bar 'tqdm' after it starts
- How to stream lines from stdout with subprocess
- Use 'rm -v' to see which files are being removed
- The Panamanian Golden Frog communicates by semaphore
- Get the duration of a video file with
mediainfo
- Print a comma-separated number in Python with '{num:,}'
- Use 'text=true' with 'subprocess' functions to get stdout/stderr as str, not bytes
- Parsing JSON in Go with a required field
What’s making me smile?
(Aside from all the cute and fluffy baby birbs!)
🌙 The cast recording of The Curious Case of Benjamin Button was released this month, and I’ve been listening to it on repeat. It’s such a gorgeous, heartwarming musical that brings me to tears whenever I see it, and now I can cry along at home.
🎓 Chelsea Troy wrote about her generative AI policy for a computer science course, and it’s a thoughtful way to introduce students to generative AI in the classroom. She’s not shielding them from it, but giving them ways to understand its limitations, what tasks it’s good for, and where it falls down. If the purpose of education is to prepare students for the world, how do you prepare them for a world filled by gen AI?
🐻 I enjoyed reading A Libertarian Walks Into a Bear, by Matthew Hongoltz-Hetling, about a town in the USA which tried to take libertarian ideas to the extreme. It was unsuccessful for a multitude of reasons, including some nasty encounters with local bears. Although I don’t agree with the libertarians, I came away with a better understanding of who they are and why they do what they do – the author talked to them, didn’t just dismiss them.
📺 I watch a lot of DIY YouTube channels, and Dillan Stock’s new channel The Stock Pot has become an insta-fave. He’s just started uploading videos, and they’re all creative and interesting projects, like creating his own TV remote.
💭 Finally, I read Clayton Ramsey’s article I'd rather read the prompt, and I really agree. I’ve had to review some AI-generated writing at work recently, and I learnt more talking to the prompter about their ideas than by reading the AI output.
June should be an exciting month – I’m off to the Hague for a conference, I have some fun theatre trips planned, and I’m hoping to start a new craft project. Be kind to yourselves, and I’ll speak to you again next month.
Cheers,
~ Alex