Musings of an aging computer nerd hitting 0x32
Six Years of 0x32 (Where Did the Time Go?)
The first post on this blog went up on the 8th of August 2020, two sentences long:
Welcome to my new blog 0x32 started as I reach the age of 50.
That was six years ago. I genuinely had to check the git log twice, because it doesn’t feel like six years — it feels like I set this thing up a couple of years back at most. Where did the time go.
Generative Art with Context Free
I’ve got a small repo, ContextFree, that I keep coming back to whenever I want the specific kind of fun that comes from writing a handful of lines of code and having something unexpectedly pretty fall out the other end. It’s a collection of Context Free Art scripts — a tiny grammar for describing images as recursive drawing rules — plus a Docker image wrapping the cfdg renderer so I can run them without installing anything locally.
Two Weeks of GoatCounter Data
Back when I wired GoatCounter into this blog, the honest answer to “does any of this actually get read” was a shrug — no analytics meant no way to know. It’s been running for a couple of weeks now, so pulled the first export and had a proper look.
Rather than paste a wall of numbers, here’s the breakdown as an actual chart — daily pageviews, top pages, referrers, and where the hits are coming from:
What I've Printed So Far on the A1 Mini
A follow-up to my first impressions post on the Bambu Lab A1 Mini — I’ve moved past calibration cubes and benchies now, so here’s a look at the first useful things I’ve actually printed with it.

First up is a phone stand, printed in blue — one I designed myself. Nothing fancy, but it’s exactly the kind of small, practical thing that makes owning a printer worth it, and there’s something extra satisfying about it being your own design rather than someone else’s model. There’s now a permanent stand sat by the printer holding my phone up at a useful angle.
New Toy: Bambu Lab A1 Mini
I’ve finally pulled the trigger on a 3D printer — a Bambu Lab A1 Mini. This is something I’ve wanted for a long time, years of watching other people’s prints show up online and thinking “I should really get one of those” before actually doing anything about it.
Went with the A1 Mini over the bigger models mainly for the price and the smaller footprint — it doesn’t take up much desk space, and it felt like a sensible way to dip a toe in without committing to a huge enclosed printer before I know how much I’ll actually use it.
Gemini Tests
Taking Antigravity for a spin
Been using Claude Code as my daily driver for a few days now, so when Google’s Antigravity CLI showed up I figured it was worth a proper look rather than just reading the launch blog post. Ran it side by side with Claude Code on the same kind of day-to-day work — repo exploration, small fixes, the usual — to see how the two actually compare in practice rather than on paper.
Blowing the Cobwebs Off This Blog with Claude Code
A Hugo repo hadn’t been looked at properly in a while
This blog is just Hugo content and a vendored theme — no app code, nothing exciting — which is exactly the kind of repo that quietly accumulates small rot nobody notices because nothing ever actually breaks the build. Spent a session pointing Claude Code at it to find and fix that rot.
Started with a straight status check: a couple of generated CSS cache files showing as deleted (build artifacts that shouldn’t have been tracked in the first place) and a stray uncommitted edit sitting inside the ananke theme submodule from as far back as November 2024. Both restored/reverted to get back to a clean tree before touching anything else.
Vibe Coding fractalPy with Claude
Vibe coding a Mandelbrot renderer
Spent today “vibe coding” with Claude, just describing what I wanted and letting it drive, to see how far that gets you on a small self-contained project. The result is fractalPy, a small Numba-accelerated Mandelbrot set renderer.

It started as a single script — render the set to a PNG, colour it, done — using @njit(parallel=True, fastmath=True, cache=True) to JIT-compile the escape-time kernel so it’s fast enough to iterate on interactively: