Blog
- · 6 min read
How to Deal With an Email Bomb Attack
I’ve been hit by a couple of email bomb attacks recently. The first sign wasn’t one suspicious message. It was hundreds of perfectly ordinary signup emails arriving almost at once. The August 2 attack produced 350 unique messages. Of those, 204 arrived in the first 30 minutes, and the flood peaked a…

- · 4 min read
Downloading photos and videos from Procare
A step-by-step guide to downloading the original media from your authorized Procare parent gallery and keeping it up to date.

- · 5 min read
Generating Open Graph Images with Astro, Satori, and Sharp
Until recently, every page on this site shared the same Open Graph image. It worked, but sharing a post titled Hello World with a generic site logo was not especially exciting. I wanted each post to have its own social card without opening an image editor every time I published something. I asked Co…

- · 4 min read
I Asked AI to Port MilkDrop to the Web. It Didn’t.
I thought I had used AI to port MilkDrop3 to the web. I had not. The realization came embarrassingly late. The app was already built and deployed, and I was thinking about writing a post called Working with AI to Port MilkDrop to the Web. Before I started, I asked one basic question: what part of Ch…

Projects
Browser music visualizer built around Butterchurn, with microphone, tab audio, local files, and 395 classic MilkDrop presets.
Interactive and printable beginner Rubik’s Cube solution I built for my 6-year-old daughter.
Visualization of a path of a lightning bolt through a maze, inspired by Numberphile.




