Brandur
banner
brandur.org
Brandur
@brandur.org
Go, APIs, Ruby, and databases.
I'm embarrassed to say that I installed Postgres 18 and just tried to use the `io_method = io_uring` on my Mac.

What can I say except, it's early. Kind of. Wouldn't it be nice if Apple actually added stuff like `io_uring` though.
September 26, 2025 at 3:08 PM
Everyone knows about async I/O and UUIDv7 in Postgres 18 by now, but I was surprised to find out that `RETURNING` is getting `OLD.*` + `NEW.*`!

Great new feature. Lets me unwind some old hacks involving `xmax` to check if an upserted row is new or not.

www.crunchydata.com/blog/postgre...
Postgres 18: OLD and NEW Rows in the RETURNING Clause | Crunchy Data Blog
Postgres 18 now lets you see both old and new data when you add the RETURNING clause to an UPDATE statement
www.crunchydata.com
September 25, 2025 at 9:11 PM
An overzealous/bad security team makes following security protocols so onerously difficult that people don't use them, or find workarounds. The net effect is organization ends up with *less* security.

Is there a name for this very widespread phenomena?
September 16, 2025 at 6:43 PM
Getting back into Kubernetes for work after years away, my main takeaway is that although Kubernetes is still kind of a meh complexity/value proposition, Argo CD is absolutely incredible.

Glad there's a Kubes CLI, but having a great UI to backstop you changes the game.
cd.apps.argoproj.io
September 9, 2025 at 7:15 PM
Today, came across a Go package literally named "event". Such bland naming doesn't just hurt users, it hurts the package because being hard to google makes it less likely to be adopted.

Ultra-generic naming isn't cool. It's just bad.

For the love of god:
brandur.org/fragments/go...
June 30, 2025 at 12:18 AM
Still no RETURNING clause in MySQL ...

It makes me really skeptical of anyone hawking MySQL as a competitive, modern database. If such a baseline, uncontroversial good idea is missing after a decade, what else is?
June 29, 2025 at 3:15 PM
Past 8 PM, there is more life on one street corner in Berlin than all of San Francisco combined. It's wild.

Annoying to no end that America's most beautiful cities are compromised because we let boomers who bought homes in 1980 for $50k pull up the ladder behind them.
June 21, 2025 at 9:12 AM
Great new feature from Movist Pro. Knocks one step off the YouTube → yt-dlp → Movist pipeline.
June 20, 2025 at 4:00 PM
Recently learned about the "American Frontier" movie trilogy, or in other words that Sicario (first watched a decade ago) has two spiritual successors.

Watched Wind River tonight. Easily the best movie I've seen all year.
June 20, 2025 at 1:26 AM
Got a question the other day as to whether our API stack handles cancelled requests (disconnect in HTTP/1 or true cancellation in HTTP/2) by abandoning work midway through.

Dug in. It does, but I'd bet money that most services don't handle this cleanly.

brandur.org/fragments/te...
Testing the graceful handling of request cancellation in Go, 499s
Using built-in <code>net/http</code> facilities to make sure that canceled requests are abandoned immediately.
brandur.org
June 19, 2025 at 11:22 PM
Podcast interview with Matz where Matz's sections in Japanese have been swapped out with AI to give him the voice of a distinguished English gentleman.

en.kaigaiiju.ch
Living Overseas
Interviewing people who lives overseas, mainly Japanese. It is the (AI) translated version of the original japanese podcast: https://kaigaiiju.ch/ 海外移住channel (Kaigai-ijuh channel)
en.kaigaiiju.ch
June 17, 2025 at 10:23 PM
Tiny tool sharpening: noticed over the years Vimium getting less powerful and had assumed it was Chrome slowly killing extension capacity, as they do. Today, recovered some important ones with custom bindings.

Also, smooth scrolling -> off to get rid of awful scroll animations.
June 16, 2025 at 9:54 AM
Watched "Fountain of Youth" (2025) last night.

The film industry will forever remain a mystery to me how the same person (Guy Ritchie) who directed Snatch, Lock Stock, and Sherlock Holmes can also be responsible for this tire fire.
June 16, 2025 at 6:48 AM
Just in case I'm not the only one who didn't know about this (it's not new, but TIL for me) ... you can set watches on GitHub repos based on custom settings, like for releases only. So useful.
June 15, 2025 at 4:38 PM
One of these is parody. The other is real. Which is which?

We need to go back to designers making things for people, and function over form. For a decade plus, designers have been exclusively making things for other designers, and favoring form over function throughout.
June 11, 2025 at 7:10 AM
The bull vision is a fourth Postgres cloud that's competitive in scope with AWS / Azure / GCP.

A maximum array of small Postgres providers is optimally good, but also, as long as tech titans are powering an outsized amount of Postgres, the more titans competing, the better.
June 3, 2025 at 11:38 AM
Some thoughts on the archival of Go's popular gopkg.in/yaml.v3 package.

It's a 3-way race:
• A vulnerability is discovered in gopkg.in/yaml.v3, becoming a widespread liability.
• Testify drops gopkg.in/yaml.v3.
• A new de facto assertion package is found.
May 26, 2025 at 10:27 PM
On a run after 8 PM. Calgary is absolutely gorgeous this time of year.
May 26, 2025 at 2:37 AM
Amazon's Wheel of Time series cancelled. I've never been happier to see a show go.

I thought I'd love a TV adaptation, but after seeing this and Rings of Power, I say: leave books as books. Budgets can't be big enough to do them justice, and there are just too many ideologues in Hollywood.
May 26, 2025 at 12:38 AM
What's more exciting? This, or iPhone 17?

Just kidding. It's a rhetorical question. Nobody cares about the iPhone 17.
May 5, 2025 at 9:29 PM
3.26 trillion dollar company.
May 5, 2025 at 6:59 PM
Wrote a timestamp to SQLite as "2006-01-02T15:04:05.999" instead of "2006-01-02 15:04:05.999" [1]. Every subsequent query failed. No error. No warning. Just silent failure.

Fellow Postgres users: just remember everyone, we've got it pretty good.



[1] Strings because SQLite has no time types.
May 3, 2025 at 9:49 PM
Most of us would be disappointed to learn how much of the tech we use works by virtue of sheer, overwhelming brute force.

As in, the implementation isn't elegant, simple, or even good, but works by having colossal quantities of compute/storage thrown at it so it's Good Enough™.
May 2, 2025 at 9:50 PM
Never underestimate the LOC-culling power of sync.Once.
April 13, 2025 at 5:12 PM
Periodic callout to Jackc's Pgx, which is just *absurdly* solid software.

Every time I think I've found a bug in it, it turns out to actually be my fault. It just happened again for like the 50th time.

github.com/jackc/pgx
GitHub - jackc/pgx: PostgreSQL driver and toolkit for Go
PostgreSQL driver and toolkit for Go. Contribute to jackc/pgx development by creating an account on GitHub.
github.com
April 12, 2025 at 10:31 PM