Alex Chan

@alexwlchan.net

Describing all my photos: alexwlchan.net/2026/describ... I wrote about a change to my photo reviewing workflow: I now write a description for every photo I’m keeping. A sentence or two of context goes a long way to cementing the memory, so I remember more when I look back on the photo.

Describing all my photos

When I save a photo, I write a sentence or two of descriptive context. It helps me remember what's in a photo, why I took it, and how I felt when I did.

alexwlchan.net

Describing all my photos: alexwlchan.net/2026/describ... I wrote about a change to my photo reviewing workflow: I now write a description for every photo I’m keeping. A sentence or two of context goes a long way to cementing the memory, so I remember more when I look back on the photo.

Describing all my photos

When I save a photo, I write a sentence or two of descriptive context. It helps me remember what's in a photo, why I took it, and how I felt when I did.

alexwlchan.net

Rendering a chat thread in CSS and JavaScript: alexwlchan.net/2026/css-chat/ I want to add text conversation to my scrapbook of social media, so I needed to render text bubbles in a web browser. It was tricky but I got it working. Modern web tech is amazing! 💬 💬 💬

Rendering a chat thread in CSS and JavaScript

I thought rendering chat bubbles would be straightforward, but I found it tricky to get the CSS right and make the bubbles "shrink-wrap" to fit the text.

alexwlchan.net

Auditing my local Python packages: alexwlchan.net/2026/python-... Recent supply chain attacks have me wondering “what Python packages do I have installed” – and virtual environments make that harder. I’ve started keeping a list of my environments so I can see exactly what’s installed, and where.

Auditing my local Python packages

Python's virtual environments mean I can have many versions of the same package scattered across my machine. I've started keeping a list of my environments so I can see exactly what's installed, and where.

alexwlchan.net

Auditing my local Python packages: alexwlchan.net/2026/python-... Recent supply chain attacks have me wondering “what Python packages do I have installed” – and virtual environments make that harder. I’ve started keeping a list of my environments so I can see exactly what’s installed, and where.

Auditing my local Python packages

Python's virtual environments mean I can have many versions of the same package scattered across my machine. I've started keeping a list of my environments so I can see exactly what's installed, and where.

alexwlchan.net

Dreaming of a ten-year computer: alexwlchan.net/2026/ten-yea... I wrote about my current Mac mini, and why I’m trying to make it last for at least decade – modern machines are so powerful, and this should be more than enough computer for me for a long time.

Dreaming of a ten-year computer

Modern computers are more powerful than I know what to do with, but the norm is still to upgrade every few years. I want my current computer to last a decade, and I don't think that's unreasonable.

alexwlchan.net