brandur.org

Atoms

Multimedia particles in the style of a tweet, also serving as a changelog to consolidate changes elsewhere in the site. Cross-posted to an atom feed. Frequently off topic.

AugSepOctNovDecJanFebMarAprMayJunJul

River v0.41 now supports Turso, a ground-up rewrite of SQLite in Rust that aims for full SQLite compatibility.


Published fragment pgtestdb’s template cloning approach to testing is fast, on how Postgres template databases enable database-per-test isolation in around 100 ms, within spitting distance of River’s schema-based approach.


Published fragment I used to add links by hand, on how LLMs now drive most of this blog’s workflows, replacing what used to be a lot of small, manual edits.


We shipped active job rescue, a new River Pro feature that uses queue heartbeats to quickly recover jobs orphaned by crashed clients. (If you’re on Pro, try it today! No configuration or schema change required.)


Published fragment The paradox of free time, on how a long stretch of open, contiguous time makes you … less (?) productive.


Updated now, on moving to Austin, working on River, and life after Stainless.


Published sequence 111, Ladyslipper.

Bunches of ladyslippers in the Wagner Natural Area near St. Albert/Edmonton. Here we show a few of the hundreds just a few feet off trail. The flowers were nice but they’d better be – thousands of mosquitoes feasted on us as we made the walk. My kill count was in the hundreds and I still took dozens of bites by the end.


Published sequence 110, Bull Creek Hills.

A mountain meadow along a hike up into Bull Creek Hills via Marston Creek, in Kananaskis Country, Alberta. Walked this one with my parents’ hiking groups, The Ramblers, and experienced a catastrophic failure of my 25-year-old hiking boots midway through.


Published sequence 109, Monolith.

This building is called the “Marie-Elisabeth-Lüders-Haus”, near the Bundestag. I’ve never been inside, but its website says it provides “scientific services”, and houses the parliamentary library and archives. It’s one of my favorite buildings in Berlin – an enormous, imposing monolith towering up and over the Spree. Very Berlin.


Published sequence 108, Canals.

Walking Berlin in the spring is one of the best urban experiences on Earth. I got in the habit of doing evening walks down into Kreuzberg and circling around along the Landwehr Canal, taking in sunset and walking the rest of the way back in the early night. This photo is the last rays of the sun near Lohmühlenbrücke, where two canals intersect.


Published sequence 107, Fountain and Ruinenberg.

A fountain near Sanssouci and looking out to Ruinenberg.

Taken on a walk through Potsdam, something that’s become somewhat of an annual tradition when I go visit Berlin. Potsdam is a superior version of Versailles (less castle, more greenspace), and both Sanssouci Park and the surrounding town are some of the best places to explore anywhere on Earth.


A tweet from the creator of Homebrew worth thinking about:

I think I will give up. I have made a bunch of very interesting things over the last 6 months. But I cannot get any attention for them and don’t know how. My son is 4 and he deserves my time. I’m going to go and get a normal job. My time making things is over I think.

We’ve entered an economy where far more can be generated than plausibly consumed by humans. This includes prose, music, video (less so for now, but likely soon to be), and … apps.

I’m the downer that encourages people to be careful with the euphoric hubris that naturally occurs when an LLM does something cool for them. It is cool, but remember that this is a technology that you didn’t create, and which everyone else on Earth can access too. You generated an app. That’s great. But why would the world use your generated app over the generated app that this other guy created?

We’ve removed the time and effort to get code to market as the major blocker in getting product out the door. The new limitation is finding enough human attention to make it worthwhile.


Published fragment Rich, fully attributed context timeout errors in Go, on making Go’s generic context deadline exceeded errors traceable with small helpers that attribute the operation that timed out and spell out how long the timeout was.


Published fragment SQLite bulk insert with sqlc, on using json_each and json_extract to achieve this end.