Alex Chan
alexwlchan.net
Alex Chan
@alexwlchan.net
Reposted by Alex Chan
The Good, the Bad, and the Gutters: alexwlchan.net/2026/movie-p...

In which I show you some cool CSS features like Grid layout and text-wrap: balance, explain it in a step-by-step guide to help myself learn, and have far too much fun with my placeholder data.
The Good, the Bad, and the Gutters
A step-by-step guide to a movie poster grid that uses CSS Grid, text-wrap balanced titles, and dynamic hover states.
alexwlchan.net
January 14, 2026 at 8:44 AM
The Good, the Bad, and the Gutters: alexwlchan.net/2026/movie-p...

In which I show you some cool CSS features like Grid layout and text-wrap: balance, explain it in a step-by-step guide to help myself learn, and have far too much fun with my placeholder data.
The Good, the Bad, and the Gutters
A step-by-step guide to a movie poster grid that uses CSS Grid, text-wrap balanced titles, and dynamic hover states.
alexwlchan.net
January 14, 2026 at 8:44 AM
Using perceptual distance to create better headers: alexwlchan.net/2026/percept...

I wrote about perceptually uniform colour spaces and how I’m using them to make nicer-looking header images for my blog.
Using perceptual distance to create better headers
I started picking colours for my site headers with a more perceptually uniform approach, so their colours look more correct to the human eye.
alexwlchan.net
January 12, 2026 at 8:31 PM
Reposted by Alex Chan
I wrote about some of my personal security posture on my blog today:

Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...

The passwords I actually memorise: alexwlchan.net/2026/memoris...
January 10, 2026 at 9:24 PM
I wrote about some of my personal security posture on my blog today:

Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...

The passwords I actually memorise: alexwlchan.net/2026/memoris...
January 10, 2026 at 9:24 PM
I’d love to read a story about the security implications of bringing boatloads of explosives into central London, then setting them off on purpose. 🎆🎇
January 1, 2026 at 2:50 AM
My favourite books from 2025: alexwlchan.net/2025/2025-in...

In what’s now become a fun end-of-year tradition, I wrote about some of the books I enjoyed reading this year. Maybe something for your TBR pile in 2026? ☺️
My favourite books from 2025
Sapphics and spies, butlers and basketball, prophecy and purpose – what I enjoyed reading this year.
alexwlchan.net
December 31, 2025 at 1:41 PM
Ignore AI upscaled YouTube videos with yt-dlp: alexwlchan.net/til/2025/ign...

YouTube have started upscaling videos using AI. If you don’t want to download those versions, you can skip them by passing a --format option to yt-dlp.

(But I know Bluesky loves AI so I’m sure nobody wants this… 😘)
Ignore AI upscaled YouTube videos with yt-dlp
Filter for formats that don't include `-sr` ("super resolution") in their format ID.
alexwlchan.net
December 24, 2025 at 6:15 PM
Reposted by Alex Chan
Drawing Truchet tiles in SVG: alexwlchan.net/2025/truchet...

I had some fun writing parametric templates to create Truchet tiles and drawing pretty pictures, even if I’m not sure what to use them for. 🤔
Drawing Truchet tiles in SVG
Using parametric templates to draw Truchet tiles, then placing them randomly to create generative patterns.
alexwlchan.net
December 21, 2025 at 6:23 PM
Drawing Truchet tiles in SVG: alexwlchan.net/2025/truchet...

I had some fun writing parametric templates to create Truchet tiles and drawing pretty pictures, even if I’m not sure what to use them for. 🤔
Drawing Truchet tiles in SVG
Using parametric templates to draw Truchet tiles, then placing them randomly to create generative patterns.
alexwlchan.net
December 21, 2025 at 6:23 PM
Reposted by Alex Chan
The palm tree that lead to Palmyra: alexwlchan.net/2025/palmyre...

I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
The palm tree that lead to Palmyra
Palmyrene is an alphabet that was used to write Aramaic in 300–100 BCE, and I learnt about it while looking for a palm tree emoji.
alexwlchan.net
December 17, 2025 at 9:50 AM
The palm tree that lead to Palmyra: alexwlchan.net/2025/palmyre...

I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
The palm tree that lead to Palmyra
Palmyrene is an alphabet that was used to write Aramaic in 300–100 BCE, and I learnt about it while looking for a palm tree emoji.
alexwlchan.net
December 17, 2025 at 9:50 AM
Reposted by Alex Chan
Meeting my younger self: alexwlchan.net/2025/meeting...

Rounding out this week’s trilogy on social media archiving, I looked back on 150,000 posts I’d saved from a decade of social media. Some fond memories I want to keep; some regrets and mistakes I’d rather forget.
Meeting my younger self
I reviewed 150,000 fragments of my online life, and I was reminded of the friends I found, the mistakes I made, and the growth I gained.
alexwlchan.net
December 12, 2025 at 10:32 AM
Reposted by Alex Chan
Hard problems in social media archiving: alexwlchan.net/2025/hard-pr...

I wrote about what I see as the key challenges to social media archiving in institutions – choosing what to save, the ethics of saving it, and searching what you’ve saved.
Hard problems in social media archiving
Preserving social media is easier said than done. What makes it so difficult for institutions to back up the Internet?
alexwlchan.net
December 10, 2025 at 11:57 AM
Reposted by Alex Chan
The Internet forgets, but I don’t want to: alexwlchan.net/2025/social-...

I don’t trust platforms to preserve my memories, so I built my own scrapbook of social media. I wrote about what the scrapbook is, how it works, and some of the inspirations and influences.
The Internet forgets, but I don’t want to
I don't trust platforms to preserve my memories, so I built my own scrapbook of social media.
alexwlchan.net
December 8, 2025 at 10:34 AM
The Internet forgets, but I don’t want to: alexwlchan.net/2025/social-...

I don’t trust platforms to preserve my memories, so I built my own scrapbook of social media. I wrote about what the scrapbook is, how it works, and some of the inspirations and influences.
The Internet forgets, but I don’t want to
I don't trust platforms to preserve my memories, so I built my own scrapbook of social media.
alexwlchan.net
December 8, 2025 at 10:34 AM
When square pixels aren’t square: alexwlchan.net/2025/square-...

I wrote about a recent bug where my videos weren’t displaying properly, because I was looking at the storage aspect ratio – not the display aspect ratio.
When square pixels aren’t square
When you want to get the dimensions of a video file, you probably want the display aspect ratio. Using the dimensions of a stored frame may result in a stretched or squashed video.
alexwlchan.net
December 5, 2025 at 7:56 AM
Reposted by Alex Chan
Can you take an ox to Oxford? alexwlchan.net/2025/ox-in-o...

I decided to work out exactly when you need to pay Oxford’s new congestion charge.
Can you take an ox to Oxford?
Let's work out exactly when you need to pay Oxford's new congestion charge.
alexwlchan.net
November 21, 2025 at 12:05 AM
@oldenoughtosay.com i found more things to procrastinate on
Can you take an ox to Oxford? alexwlchan.net/2025/ox-in-o...

I decided to work out exactly when you need to pay Oxford’s new congestion charge.
Can you take an ox to Oxford?
Let's work out exactly when you need to pay Oxford's new congestion charge.
alexwlchan.net
November 21, 2025 at 12:07 AM
Can you take an ox to Oxford? alexwlchan.net/2025/ox-in-o...

I decided to work out exactly when you need to pay Oxford’s new congestion charge.
Can you take an ox to Oxford?
Let's work out exactly when you need to pay Oxford's new congestion charge.
alexwlchan.net
November 21, 2025 at 12:05 AM
Reposted by Alex Chan
Cleaning up messy dates in JSON: alexwlchan.net/2025/messy-d...

I’ve been cleaning up some messy data, and it includes timestamps written by a variety of humans and machines, which don’t use a consistent format.

I wrote a Python script to help me clean things up.
November 17, 2025 at 8:54 AM
Cleaning up messy dates in JSON: alexwlchan.net/2025/messy-d...

I’ve been cleaning up some messy data, and it includes timestamps written by a variety of humans and machines, which don’t use a consistent format.

I wrote a Python script to help me clean things up.
November 17, 2025 at 8:54 AM
Detecting AV1-encoded videos with Python: alexwlchan.net/2025/detecti...

I wrote a Python test to find videos that are encoded with AV1, so I can convert them to a codec my iPhone can play.
November 8, 2025 at 11:16 PM
Why can’t my iPhone play that video? alexwlchan.net/2025/av1-on-...

I wrote about a recent issue playing a video on my iPhone, the AV1 codec that caused the problem, and some web APIs I learnt while debugging.
Why can’t my iPhone play that video?
The answer involves the AV1 video codec, Apple's chips, and several new web APIs I learnt along the way.
alexwlchan.net
October 28, 2025 at 10:24 AM
Doing my own syntax highlighting (finally): alexwlchan.net/2025/syntax-...

I’ve redesigned the syntax highlighting on my blog to use a smaller colour palette, so I wrote a bit about what I’ve changed, how it works, and why I think it’s better.
Doing my own syntax highlighting (finally)
I've redesigned my syntax highlighting scheme to use a smaller colour palette. Here's what I've changed, how it works, and why I think it's better.
alexwlchan.net
October 22, 2025 at 5:31 PM