Screeching By: A T-38 Over the Central Coast

A T-38 Talon out of Sacramento Mather came screeching over the Central Coast this afternoon. I pulled up FlightAware, saw ASPEN22 looping back around, and ran outside just in time to catch it turning south toward Santa Maria. Videos, the flight track, and the numbers.

The Engine Powers Down: Retiring enjen.net

I named it enjen because I wanted an engine — one domain that would run a whole fleet of little apps. Then domains got cheap, the good apps grew up and moved into their own homes, and the engine slowly emptied out. Today I'm switching it off. Here's the story, plus a one-box converter that turns any old enjen.net link into its modern equivalent.

Upgrading My Main Kubernetes Cluster, Top to Bottom

I spent the weekend upgrading phoenix, my main k3s cluster, from the ground up: Debian 12 to 13, k3s 1.30 all the way to 1.34, kube-vip and MetalLB off their original versions, and finally Flux 2.9. One node at a time, apps staying up the whole time. Mostly.

Two Hundred and Fifty

America turns 250 today, and my small town marked it the way it marks everything — a giant flag hung off a crane, a pair of old Navy trainers over Main Street, and a whole town in lawn chairs. A few photos from the Semiquincentennial.

When iowait Lies: A Proxmox 9, QEMU 11, and Pinned-Kernel Postmortem

My hypervisor sat at 40% iowait for days and survived every reboot. The SSDs were healthy, the RAID controller was healthy, memory was idle — and the real cause was a kernel I'd pinned during a major upgrade and never moved off. A walk from iostat through PSI to proxmox-boot-tool, and why a 2026 QEMU on a 2024 kernel manufactures phantom iowait.

Caddy 2.11.4, Rebuilt for Every DNS Provider

Caddy 2.11.4 landed on June 3rd — a security-heavy patch release with four hardening fixes and a pile of TLS and reverse-proxy bugfixes. Here's what changed, the one breaking caveat worth reading before you upgrade, and how I rebuild it as 47 ready-to-pull DNS-provider images for DNS-01 ACME.

The XPS 17 That Pushed Me to Mac Is Now My Build Server

During COVID I bought three XPS 17s to game over Parsec. They were flawed — an iGPU memory leak that ate 128 GB of swap, a battery that drained while plugged in — and they're what pushed me to a Mac. Years later one of them, sitting idle on my desk, became prb-bld-01: a dedicated CI build node that cut a 40-minute build to 10. The throttle hunt, the battery cap, two runners on one box, and saving a consumer SSD from CI.

Chrome Quietly Shipped a 4 GB AI Model. So I Built an Agent on Top of It.

Chrome quietly rolled out Gemini Nano — a ~4 GB on-device LLM that downloads the first time any page calls the new `LanguageModel` API. Here's what it actually is, what it can't do, and what happened when I spent an evening building a search-and-fetch agent loop on top of a 3-billion-parameter quantized model.

Two Tesla P4s, an Old Dell, and a Local LLM Stack

Finally putting two Tesla P4s to work — passing them through Proxmox to a small VM, running ollama, and exposing it to my apps via Cloudflare Tunnel with Bearer-token auth. What tiny models can do on hardware that's been collecting dust for years.

Self-Updating Game Server Routes in pfSense with ASN Aliases

Routing Steam traffic around a home VPN using a pfSense URL Table alias pointed at asn.ipinfo.app — an auto-updating CIDR list by ASN, no copy-paste maintenance.