Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]

alexwlchan

Sort By

Recent [alt+2]
Abusing ID3 chapters to turn videos into glanceable podcasts I listen to a lot of podcasts, and I like how they fit around other tasks. I press play, lock my...
2 weeks ago
-2

Abusing ID3 chapters to turn videos into glanceable podcasts

from alexwlchan [alt+shift+b] in programming

2 weeks ago
I listen to a lot of podcasts, and I like how they fit around other tasks. I press play, lock my phone, and put it down. I’m free to wash the dishes, fold the laundry, or shop for groceries. Unfortunately, more and more information is only published as a video. Technical talks,...
How Tailscale tracked down a 16-year-old SQLite bug → I wrote a post for the Tailscale blog about a long-running series of corruption incidents, and how...
13th Aug 2026
2

How Tailscale tracked down a 16-year-old SQLite bug →

from alexwlchan [alt+shift+b] in programming

13th Aug 2026
I wrote a post for the Tailscale blog about a long-running series of corruption incidents, and how they eventually led us to find an SQLite bug that predates my entire programming career. I’m incredibly proud of this, both the work and the blog post. Before Tailscale, I was...
I don’t want to repeat repeat myself Yesterday at work, a customer spotted a typo in our UI: “you can use the use the Tailscale...
3rd Jul 2026
1

I don’t want to repeat repeat myself

from alexwlchan [alt+shift+b] in programming

3rd Jul 2026
Yesterday at work, a customer spotted a typo in our UI: “you can use the use the Tailscale CLI”. After the typo was fixed, I wanted to find other cases of accidentally repeated words or phrases. I used two regular expressions to search every codebase for unnecessary...
Using Pytester to test my Playwright fixtures A month ago, I wrote about my Playwright fixture for testing static websites in a browser. I’ve been...
5th Jun 2026
1

Using Pytester to test my Playwright fixtures

from alexwlchan [alt+shift+b] in programming

5th Jun 2026
A month ago, I wrote about my Playwright fixture for testing static websites in a browser. I’ve been copying that fixture from project-to-project, but recently I decided to add it to chives, the utility library I use for all my static websites (or tiny archives). One of my rules...
Using Playwright to test my static sites I build a lot of static websites – including this site and all of my local media archives – and I...
2nd May 2026
1

Using Playwright to test my static sites

from alexwlchan [alt+shift+b] in programming

2nd May 2026
I build a lot of static websites – including this site and all of my local media archives – and I want to test them. Most of my pages are static HTML and I can write automated tests that analyse the HTML, but for more complex sites I have JavaScript that runs in the browser and...
Quietly quantum-resistant blogging Among the other fun news recently, two papers were published that suggest quantum computers capable...
9th Apr 2026
1

Quietly quantum-resistant blogging

from alexwlchan [alt+shift+b] in programming

9th Apr 2026
Among the other fun news recently, two papers were published that suggest quantum computers capable of breaking classical public-key cryptography algorithms are much closer than previously believed. What was thought to be years away might now be months. I found Filippo Valsorda’s...
Gumdrop, a silly app for messing with my webcam During the COVID lockdowns, I spent long evenings at home on my own, and I amused myself by dressing...
5th Mar 2026
1

Gumdrop, a silly app for messing with my webcam

from alexwlchan [alt+shift+b] in programming

5th Mar 2026
During the COVID lockdowns, I spent long evenings at home on my own, and I amused myself by dressing up in extravagant and glamorous clothing. One dark night, I realised I could use my home working setup to have some fun, with just a webcam and a monitor. I turned off every light...
Creating Caddyfiles with Cog I’m currently restructuring my site, and I’m going to change some of the URLs. I don’t want to break...
5th Feb 2026
1

Creating Caddyfiles with Cog

from alexwlchan [alt+shift+b] in programming

5th Feb 2026
I’m currently restructuring my site, and I’m going to change some of the URLs. I don’t want to break inbound links to the old URLs, so I’m creating redirects between old and new. My current web server is Caddy, so I define redirects in my Caddyfile with the redir...
Quick-and-dirty print debugging in Go I’ve been writing a lot of Go in my new job, and trying to understand a new codebase. When I’m...
8th Jan 2026
1

Quick-and-dirty print debugging in Go

from alexwlchan [alt+shift+b] in programming

8th Jan 2026
I’ve been writing a lot of Go in my new job, and trying to understand a new codebase. When I’m reading unfamiliar code, I like to use print debugging to follow what’s happening. I print what branches I’m in, the value of different variables, which functions are being called, and...
When square pixels aren’t square When I embed videos in web pages, I specify an aspect ratio. For example, if my video is 1920 × 1080...
5th Dec 2025
1

When square pixels aren’t square

from alexwlchan [alt+shift+b] in programming

5th Dec 2025
When I embed videos in web pages, I specify an aspect ratio. For example, if my video is 1920 × 1080 pixels, I’d write: <video style="aspect-ratio: 1920 / 1080"> If I also set a width or a height, the browser now knows exactly how much space this video will take up on the page –...
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in