From the notebook
Writing
Field notes from twenty-some years on the web. Trails and state parks near Ocala, the small CSS and HTML things I had to learn the hard way, and the occasional longer think about where all of this is going. 24 posts and counting.
The Farm at Cross Creek
Rawlings bought this cracker farm in 1928, won a Pulitzer here, and stayed for twenty years. Driving past one afternoon, I stopped to see what remained.
Read the postWhat Government Website Design Actually Looks Like
USWDS is a solid design system. Most federal websites aren't running it. Here is what government digital design looks like in practice, from VA.gov to state systems.
The Calhoun Effect
John Calhoun's Universe 25 experiment ended in total population collapse despite unlimited resources. What the Calhoun Effect actually means, and what critics get wrong.
The Porch Is Already Waiting
I charted 26 years of change in an infographic. It looked impressive. It was also missing everything that actually mattered.
There's a State Park Hidden in the Median of 441
Four concrete stanchions from a Depression-era canal project sit inside a ten-acre state park inside the median of US-441. The forest has almost entirely taken them back.
The Monster in the Machine (Isn't What You Think)
An AI agent deleted a company's production database in nine seconds. The headline called it 'goes rogue.' That framing is wrong, and it matters that it's wrong.
The Floor Might Be Fine
I use AI every day and find real value in it. I still can't tell you how this resolves. Neither can anyone else.
I've Been Programming for 30 Years. I Read the AI Report So You Don't Have To.
Every year Stanford's Human-Centered AI group publishes the AI Index Report. This year's edition is 423 pages. Here's what stuck with me.
Showing Up: A Morning at Baseline Road
I wasn't feeling great last weekend, but I went anyway. That's kind of my rule with Bowie. He doesn't negotiate.
The First Thing I Do When I Open a Project
Opening a project cold can be a challenge. I built a VS Code extension to solve that: structure analysis, git diagnostics, and plain-text summaries in one file.
That One HTML Attribute I Wish I Knew About Sooner
The inert attribute solves focus trapping without JavaScript ceremony. A 40-line focus trap function replaced by four lines that actually work.
The Enshittification of Trust (or: Why You Need a Fake Name to Buy a Palisade)
How car buying became a three-layer trust collapse requiring fake identities and AI agents just to negotiate safely.
The Layout Reflow That Didn't Have To Happen
For twenty-five years I've accepted that measuring text requires the DOM. Pretext is a 15KB library that proves otherwise.
The Bookmark That Survived Every Browser I've Ever Used
Peter Anspach's Evil Overlord List has been on the same URL since 1996. I've been meaning to write about it for twenty-five years.
Four Lines of CSS and My Phone Finally Called Me Out
I was building a fixed bottom nav and it looked fine in DevTools. On a real phone, the home indicator was sitting right on top of the buttons. The fix was four lines of CSS I'd been skipping for years.
Things the Web Killed. Most of Them Had It Coming.
A tour through the technologies the platform eventually buried: the genuinely good ideas, the architectural mistakes, and at least one tag that blinked.
My Local PHP Environment Kept Breaking. ddev Didn't.
After years of fighting MAMP, Valet, and handrolled Docker configs, ddev quietly solved local PHP development for me. Here's what clicked.
I Asked a Robot How to Fix iPhoto Search. Three Hours Later I Was Debugging Docker.
Practical guide to running Immich on Windows with Docker. Covers exFAT drives, Windows Firewall quirks, and other gotchas nobody warns you about.
CSS @starting-style: Animating Elements Into Existence
@starting-style gives CSS transitions a declarative 'from' state for elements entering the DOM. No JavaScript required.
The Lush Canopies of Marshall Swamp
Early March on the Cross Florida Greenway means the migratory birds have arrived, the ferns are growing fast, and the boardwalk over the swamp floor is the best vantage point in the county.
color-mix() Is Quietly Replacing My Sass Variables
For years I reached for Sass just to darken or lighten a brand color. Native CSS color-mix() in oklch does it better.
Winter Solitude at Yearling Trail
In the Ocala National Forest in January, the insects are gone, the scrub is dormant, and the sinkholes sit quietly in the limestone. It's a good time to walk somewhere with history.
Scroll-Driven Animations Without a Single Line of JavaScript
The Scroll-Driven Animations spec lets you tie CSS animations to scroll position or element visibility. And it runs off the main thread.
The Ancient Giants of Silver Springs State Park
Most visitors come for the glass-bottom boats. The hiking trails go somewhere else: into a sandhill forest giving way to bald cypress that have been standing since before the Revolution.