HNHacker News
TopNewBestAskShowJobs

bradfitz

5,555 karma · joined January 29, 2011

https://bradfitz.com/

Made LiveJournal, OpenID, memcached, etc.

12+ years at Google (Social, Android performance, 10+ years on Go),

Now Tailscale since Jan 2020

submissionscomments
bradfitz··on Windows 11½
This is not realistic; the start menu opens way too quickly.
bradfitz··on JetKVM Mini
They started off as a Kickstarter thing and had stock issues in previous rounds too.
bradfitz··on The car industry A/B tested selling a car with and without CarPlay
I heard that the reason the major car companies started to sour on CarPlay was because Apple started to get increasingly needy with their data collection requirements (as of CarPlay Ultra) and the car companies weren't comfortable (or legally able) to give Apple that much canbus/telemetry data. And I guess Apple was pushing CarPlay Ultra as the only option without classic less-data-snoopy CarPlay?
bradfitz··on Boot a Virtual iPhone via Apple's Virtualization.framework
Last I checked, VPN network extensions wouldn't run in the simulator.
bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
Yes, it's been our CEO Avery's position for ~6.5 years now that we should run DERP servers on the internet for the public good. (rate-limited)

But these are a separate fleet (https://tailcat.dev/derpmap.json) separate from our usual ones, and not using "tailscale.com" in DNS or SNI anywhere.

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
One fun use case: a coworker just whipped up this Minecraft mod using tailcat as its transport: https://github.com/tailscale/tailcat-for-minecraft

(just a cute demo, not intended for release or ongoing maintenance)

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
There's an example in the README how to do exactly that :)
bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
It's not our standard dev environment but some of us use Nix. We don't really use Docker much, though. Mostly just "go test" etc.
bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
Same.

But Tailscale keeps sucking me in with new stuff to do. :(

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
Still working on Go's http2 10 years later :)

Recently: https://github.com/golang/go/commit/128a36cf0367c46daff2528d...

https://github.com/golang/go/commit/3c0665e551be23e62167f625...

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
(Author here)

WireGuard doesn't do NAT traversal. That's the main thing this adds. And this also adds a CLI tool + library to do streams over WireGuard w/o installing kernel routings, requiring root, etc.

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
(Author here)

There's no vendor lock-in here and no payment or account required. If Tailscale as a company fails, tailcat keeps working if you run your own DERP server. It's just open source code, not a hosted service.

bradfitz··on Tailcat – Like netcat, but over Tailscale’s data plane
(Author here)

The DERP server is already open source and tailcat can use any DERP server you run: https://github.com/tailscale/tailscale/tree/main/cmd/derper#...

We just provide some default ones (https://tailcat.dev/derpmap.json) to get started if you're not bandwidth-sensitive. But you don't have to use them.

Update: I added more explicit docs about this to https://github.com/tailscale/tailcat#bring-your-own-derp-rel...

bradfitz··on Tracking down the 16-year-old WAL-reset SQLite bug
Oh? I thought we added that option on iOS recently. I'll go check.
bradfitz··on Why do we assume everyone should be working?
> utilizing a resource to it’s fullest at all times is not a given

Typos like this (it's instead of possessive its) used to be bother me but now it's a hint that it might be human-authored, which is quaint, so it's stopped bothering me as much.

bradfitz··on Go 1.27 Interactive Tour
No, that's not accurate. The same core people were involved.
bradfitz··on Go 1.27 Interactive Tour
(I was on the Go team for ages)

Seriously, that's all it was. Just Ian alone proposed and rejected a half dozen of his own different approaches to generics. Finally a language + implementation plan came together that people all liked.

Nobody was ever opposed to generics that I saw.

bradfitz··on Google kills Earth AI generator after one day
Well now I want to see the images that got this taken down.
bradfitz··on Old and new apps, via modern coding agents
This post inspired me to have Claude port my 30 year old high school German Java applet game to Javascript, complete with a faked git history:

https://github.com/bradfitz/koffer#der-verloren-koffe

Play online at https://bradfitz.github.io/koffer/js/

So neat seeing ~30 year old code come back alive.

bradfitz··on We scaled PgBouncer to 4x throughput
Yeah, I remember writing epoll libraries for Perl (https://metacpan.org/pod/Sys::Syscall, first out 2005-08-01) doing raw system calls because libc on the distros of the time (at least Debian) didn't have epoll support yet.

So in 2005 I didn't expect Postgres to do super well here, but it's 21 years later and we're still pgbouncin'. It's just kinda sad.

bradfitz··on We scaled PgBouncer to 4x throughput
In other words, it's still super heavy if it's forking a process per connection.

I find it ridiculous that PgBouncer even needs to exist. Postgres should be doing this.

bradfitz··on We scaled PgBouncer to 4x throughput
I'm 46 now. I remember being shocked at Postgres's heavy connection model when I was 23.

I gather things haven't improved since?

bradfitz··on Hunting a 16-year-old SQLite WAL bug with TLA+
We found it at Tailscale and bought an enterprise support contract from SQLite to debug it for us. Worth every penny.

We should probably blog about it.

bradfitz··on Fox to buy Roku
2008? I had the Roku HD1000 [1]. :)

My email search:

"Welcome to the "Roku-tech" mailing list" ... "Tue, Dec 2, 2003, 10:48 AM"

Not sure how I ended up on the mailing list a month before their product was released. There must've been buzz about it for a few months before release.

[1] https://photos.app.goo.gl/bMGBqm4mTmfUNJG39

bradfitz··on Understanding Singleflight in Go
I wrote that library originally for dl.google.com: https://go.dev/talks/2013/oscon-dl.slide#1

I then open sourced it in Jan 2013 in what was then named Camlistore (now Perkeep) in https://github.com/perkeep/perkeep/commit/6f9f0bdda9c9c1f147... d

And later I put it in https://pkg.go.dev/github.com/golang/groupcache/singleflight (groupcache was written for dl.google.com)

And a private copy in Go's net package in Jun 2013: https://github.com/golang/go/commit/61d3b2db6292581fc07a3767...

It later moved to golang.org/x/net, and later to the Go standard library (well, internal: https://pkg.go.dev/internal/singleflight)

We now even have a copy with generics in Tailscale's tree at https://pkg.go.dev/tailscale.com/util/singleflight

So many variants of that code :)

bradfitz··on Apple Silicon and Virtual Machines: Beating the 2 VM Limit (2023)
IIRC, that's only for Linux guests that can nest. macOS can only one level deep. That is: you can't have a macOS guest (running on the Apple hardware host) make its own macOS guest.
bradfitz··on Americans are destroying Flock surveillance cameras
Oh no.
bradfitz··on Windows Notepad App Remote Code Execution Vulnerability
I can’t tell you how relieving it is to hear somebody else complain about this. This has been my pet peeve for ages.
bradfitz··on Show HN: A 45x45 Connections Puzzle To Commemorate 2025=45*45
Well, this has sucked up a couple days of my free time so far... :)
bradfitz··on OpenSCAD is kinda neat
I find myself using OpenSCAD regularly to 3D print little things for the house. (Most recently: hooks to attach Christmas lights to our roof deck's glass walls)

And when something gets too trick, ChatGPT is amazing at writing in it. Often it nails the whole design in the first try, like https://bsky.app/profile/bradfitz.com/post/3maelwomyw22n to mask off certain Raspberry Pi pins to make reassembly of projects easier later.

Page 1 of 16Next →