How I record HTTP requests to get fast, reliable, and consistent tests, and the patterns I use in a production codebase.| alexwlchan.net
You can shell out to `cp -c` using `subprocess`, or you can make a `clonefile()` syscall using the `ctypes` library.| alexwlchan.net
Start with a simple HTML file, then add features like templates, sorting, and filtering as they become useful.| alexwlchan.net
I've been creating small, hand-written websites to organise my files. It's a lightweight, flexible approach that I hope will last a long time.| alexwlchan.net
I compare three different approaches to minifying HTML.| alexwlchan.net
Remembering Slipstitch, a queer-friendly yarn shop and the fortnightly crafting meet-ups that were a highlight of my week.| alexwlchan
I already have a new job lined up, but I'm taking a bit of a break first.| alexwlchan
I've moved almost all of my Glitch apps to websites running on my own web server, on this domain.| alexwlchan
The Swift.org website got a redesign, including an animation of a swooping bird, and I read the source code to understand how it works.| alexwlchan
Websites that change randomly, that mirror the real world, or even follow the moon and the sun, plus my all-time favourite website design.| alexwlchan
How to write thoughtful HTML, new-to-me features of CSS, and some quirks and relics I found while building my personal web archive.| alexwlchan
How I built a web archive by hand, the tradeoffs between manual and automated archiving, and what I learnt about preserving the web.| alexwlchan
To help me keep track of interesting links, I created a static website that keeps all my data locally. Why do I care about bookmarks, and how does my new site work?| alexwlchan
It's possible, although uncommon, for a JSON object to contain the same name multiple times. Here are some ways to handle that in Python.| alexwlchan
Dumping a SQLite database to a text file can make it much smaller, which means you can download it faster.| alexwlchan
If you're using an image as your background, remember to set a fallback colour as well, especially if you're in dark mode.| alexwlchan
I have a wrapper for `get_password()` so that if it can't find a password, you get an error that explains how to set the password, and what password you should choose.| alexwlchan
I'm using the `` element and some JavaScript to display timestamps as human-readable, localised timestamps. Something like `Tue, 15 Apr 2025 at 20:45 BST` is easier to read than `2025-04-15T19:45:00Z`.| alexwlchan
I built a handy tool to generate cover images for stories downloaded from AO3, making them easier to browse. Along the way, I learnt about how EPUBs work, the power of static sites, and some gotchas of async JavaScript.| alexwlchan.net
When the fire starts, I am already running for the exit. I run because somebody must show the way.| alexwlchan
There are patterns in what lasts; people skills matter more than technical skills; long-lasting systems cannot grow forever.| alexwlchan
I wanted to know what third-party code I was using in my GitHub Actions. I was able to use standard text processing tools and shell pipelines to get a quick tally.| alexwlchan
I tested four approaches, from `ORDER BY RANDOM()` to picking random `rowid` values in Python, and found one that's both fast and diverse. Here's what worked (and what didn't).| alexwlchan
When art loses its creator, we lose the story behind the image -- a plea for attribution in our endless scroll culture.| alexwlchan
While trying to add some simple overlay labels, I stumbled into a sharp edge of a complex CSS feature called "stacking contexts".| alexwlchan
I made some simple map visualisations by downloading tiles from OpenStreetMap, then annotating the tiles with Pillow.| alexwlchan
Caring deeply – about art, my friends, and shared experiences – has brought me so much joy.| alexwlchan
I've simplified the palette, changed the font, and given several elements a more consistent visual appearance.| alexwlchan
Websites that change randomly, that mirror the real world, or even follow the moon and the sun, plus my all-time favourite website design.| alexwlchan.net
How to write thoughtful HTML, new-to-me features of CSS, and some quirks and relics I found while building my personal web archive.| alexwlchan.net
How I built a web archive by hand, the tradeoffs between manual and automated archiving, and what I learnt about preserving the web.| alexwlchan.net
To help me keep track of interesting links, I created a static website that keeps all my data locally. Why do I care about bookmarks, and how does my new site work?| alexwlchan.net
Swing dancing and prompt engineering are pretty different. But could learning one help us learn the other?| alexwlchan.net
We’re gonna need a bigger printer.| alexwlchan.net
If you do any sort of creative digital work, screenshots and screen recordings are a great way to remember it.| alexwlchan.net