RSS.Social

alexwlchan

follow: @[email protected]

Posts

Gumdrop, a silly app for messing with my webcam

The bare minimum for syncing Git repos

Creating Caddyfiles with Cog

Swapping gems for tiles

Parody posters for made-up movies

The Good, the Bad, and the Gutters

Using perceptual distance to create better headers

The passwords I actually memorise

Where I store my multi-factor recovery codes

Quick-and-dirty print debugging in Go

My favourite books from 2025

Drawing Truchet tiles in SVG

Adding a README to S3 buckets with Terraform

The palm tree that lead to Palmyra

Meeting my younger self

Hard problems in social media archiving

The Internet forgets, but I don’t want to

When square pixels aren’t square

Can you take an ox to Oxford?

Cleaning up messy dates in JSON

Detecting AV1-encoded videos with Python

Why can’t my iPhone play that video?

Doing my own syntax highlighting (finally)

Creating a personal wrapper around yt-dlp

Opening all the files that have been modified in a Git branch

Linking to text fragments with a bookmarklet

Resizing images in Rust, now with EXIF orientation support

Using vcrpy to test HTTP interactions in Python

Create space-saving clones on macOS with Python

Slipstitch, Queer Craft, and community spaces

Today was my last day at the Flickr Foundation

Minifying HTML on my Jekyll website

Moving my Glitch apps to my own web server

Recreating the bird animation from Swift.org

My favourite websites from my bookmark collection

What I learnt about making websites by reading two thousand web pages

Building a personal archive of the web, the slow way

Creating a static website for all my bookmarks

Handling JSON objects with duplicate names in Python

A faster way to copy SQLite databases between computers

A flash of light in the darkness

Beyond None: actionable error messages for keyring.get_password()

Localising the <time> with JavaScript

Always running

What I’ve Learned by Building to Last

Whose code am I running in GitHub Actions?

Fast and random sampling in SQLite

We all lose when art is anonymised

An unexpected lesson in CSS stacking contexts