Brad Fitzpatrick's Avatar

Brad Fitzpatrick

@bradfitz.com.bsky.social

I do computers. Married to @radkat.fitzpat.com. Three kids. Xoogler. Go (#golang) team 2010~2020. Made LiveJournal, OpenID, memcached. Currently at @Tailscale.com making WireGuard easy. Seattle, WA // Bainbridge

9,879 Followers  |  298 Following  |  712 Posts  |  Joined: 23.04.2023  |  1.9261

Latest posts by bradfitz.com on Bluesky

Hotel captive portal hilarity:

* input type=password for my last name. πŸ™„
* "Guest not found"

Front desk dude, very apologetic:

* yeah, uh, it has to be only the first 8 letters of your last name
* Oh, and also all lowercase

Of course.

I'd expect nothing less.

18.08.2025 05:12 β€” πŸ‘ 48    πŸ” 0    πŸ’¬ 5    πŸ“Œ 0

Our waiter's name, especially in the all caps on his badge, sounds like a great hacker username: SUBHASH

05.08.2025 18:47 β€” πŸ‘ 21    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Or second.

04.08.2025 15:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Post image Post image Post image

Amalga Distillery in Juneau.

I sat next to one of the owners on a recent flight back from London and said I'd stop by.

Mmm, gin.

03.08.2025 23:55 β€” πŸ‘ 29    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

After a day at sea en route to Juneau, still hours away, we start to see land.

Kids: "THAT'S Alaska!? Aren't there supposed to be houses?"

03.08.2025 14:34 β€” πŸ‘ 17    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Perkeep

CDC is fun. My earlier perkeep.org uses it.

It could save some space but git pack files are pretty decent. Mostly I wanted to be able to git mirror caches around with standard tools.

28.07.2025 14:16 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
GitHub - tailscale/gomodfs: GOMODCACHE Go module cache FUSE filesystem GOMODCACHE Go module cache FUSE filesystem. Contribute to tailscale/gomodfs development by creating an account on GitHub.

Here's the code:

github.com/tailscale/go... -- a Go module cache virtual filesystem (FUSE or WebDAV) with deduping

28.07.2025 13:23 β€” πŸ‘ 33    πŸ” 9    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - tailscale/gomodfs: GOMODCACHE Go module cache FUSE filesystem GOMODCACHE Go module cache FUSE filesystem. Contribute to tailscale/gomodfs development by creating an account on GitHub.

Here's the code:

github.com/tailscale/go... -- a Go module cache virtual filesystem (FUSE or WebDAV) with deduping

28.07.2025 13:23 β€” πŸ‘ 33    πŸ” 9    πŸ’¬ 0    πŸ“Œ 0

We did? How? 😬

Maybe we can fix it.

22.07.2025 02:58 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Surprising!

In any case, the rollout is done now and old IPs are removed.

21.07.2025 14:41 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I looked at your pcap.

Why are you querying without the EDNS option to get a buffer size above 512? πŸ˜‰

21.07.2025 14:30 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

We're in a few day migration period where two sets are included.

It'll shrink soon.

And might shrink further in the future.

But I did look at pcap size of AAAA reply and it fit? Are you seeing otherwise?

21.07.2025 04:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Oh hell yeah.

20.07.2025 20:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yeah it seems to work if just ignore the context given to me from go-fuse.

Perhaps my EIO error returns on context canceled are tainting some go-fuse or kernel cache. I didn't think I was setting any validity on those but maybe I was? Will try to make a minimal repro.

20.07.2025 15:34 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

I see plenty of INTERRUPT but I don't control the caller. The caller is the Go build system (cmd/go) doing its thing.

20.07.2025 01:30 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

(I noticed 2.8.0 exists and tried it too... no change.)

19.07.2025 22:26 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Hey @hanwen.bsky.social‬, under load I'm getting tons of seemingly bogus "context canceled" FUSE errors on both macOS and Linux, breaking operations that callers are still waiting on.

(with hanwen/go-fuse/v2 v2.7.2)

Ring any bells before I start debugging?

I tried -race mode on a whim but nothing

19.07.2025 21:33 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

assuming you run it with a go.mod file in a txttar it might already do that (did you know multiple file playground runs are a thing? Few people do)

Maybe the slow part is checking for module updates.

18.07.2025 02:49 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The Go playground should presumably be using Google's internal version of what I'm writing?

18.07.2025 01:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I'll have you know that your nerdsnipe resulted in a day of me refabstractoring it all and all my tests passing but weird errors I can't yet explain doing real builds. πŸ€ͺ

The fight continues.

But then it'll have like 3 backends when released assuming I find this damn bug πŸ˜…

18.07.2025 01:26 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

A very small git library for just making some pack files of some trees. πŸ˜„

go-git has some really big interfaces with many methods used. And doesn't implement the server over all transport types.

17.07.2025 13:24 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I'm also good at using the porcelain after consuming a lot of spicy stuff.

17.07.2025 03:06 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Artisanal handcrafted Git repositories | Hacker News

I was forced to learn this horror/trivia about how git sorts its tree objects (for gomodfs), so now you have to too:

news.ycombinator.com/item?id=4458...
(link to a comment I just made there)

Sorry.

17.07.2025 02:19 β€” πŸ‘ 32    πŸ” 0    πŸ’¬ 5    πŸ“Œ 0
Post image

We have a Richard Scarry board game even...

16.07.2025 20:05 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yeah, I should probably make that an interface so people can plug in whatever storage they want. Using git as the content addressable blob storage was just a quick easy hack and what we'd probably use.

16.07.2025 20:02 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It's a bit rich that AWS feels it can clearly communicate these things to LLMs when it's failed for twenty years to do so to customers.

16.07.2025 01:35 β€” πŸ‘ 50    πŸ” 4    πŸ’¬ 1    πŸ“Œ 0
Preview
The FIPS 140-3 Go Cryptographic Module Go now has a built-in, native FIPS 140-3 compliant mode.

We announced the new native Go FIPS 140-3 mode today!

FIPS 140, like it or not, is often a requirement, and I was increasingly sad about large deployments replacing the Go crypto packages with non-memory safe cgo bindings.

Go is now one of the easiest and most secure ways to build under FIPS 140.

15.07.2025 21:40 β€” πŸ‘ 203    πŸ” 49    πŸ’¬ 12    πŸ“Œ 4

You can't set docker run -v paths?

16.07.2025 00:16 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Yup. Just testing & cleaning it up first.

It's barely alive.

15.07.2025 19:50 β€” πŸ‘ 14    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Toolset to build, run and manage macOS and Linux VMs Native performance. Remote storage for Virtual Machines. Many integrations including GitHub, GitLab and more.

Not having to start your CI build with writing ~1GB of zips to disk (even if it's tmpfs).

Instead, you can share this FUSE filesystem from the host via virtio-fs into containers + QEMU + Tart (tart.run) VM guests, so fresh VMs/containers get a seemingly-full mod cache that they can't write to.

15.07.2025 18:23 β€” πŸ‘ 18    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@bradfitz.com is following 20 prominent accounts