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.
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.
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.
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.
I wrote about perceptually uniform colour spaces and how I’m using them to make nicer-looking header images for my blog.
I wrote about perceptually uniform colour spaces and how I’m using them to make nicer-looking header images for my blog.
Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...
The passwords I actually memorise: alexwlchan.net/2026/memoris...
Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...
The passwords I actually memorise: alexwlchan.net/2026/memoris...
Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...
The passwords I actually memorise: alexwlchan.net/2026/memoris...
Where I store my multi-factor recovery codes: alexwlchan.net/2026/recover...
The passwords I actually memorise: alexwlchan.net/2026/memoris...
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? ☺️
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? ☺️
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… 😘)
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… 😘)
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. 🤔
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. 🤔
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. 🤔
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. 🤔
I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
I wrote a bit about a historical alphabet I’d never heard of, which I found while looking for the 🌴 emoji.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
I decided to work out exactly when you need to pay Oxford’s new congestion charge.
I decided to work out exactly when you need to pay Oxford’s new congestion charge.
I decided to work out exactly when you need to pay Oxford’s new congestion charge.
I decided to work out exactly when you need to pay Oxford’s new congestion charge.
I decided to work out exactly when you need to pay Oxford’s new congestion charge.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.