Michael Stapelberg 🐧🐹😺
zekjur.bsky.social
Michael Stapelberg 🐧🐹😺
@zekjur.bsky.social
Mensch mit starkem Datendrang • Artisanal Open Source • latenz-unverträglich • ::) • he/him
@bradfitz.com Maybe you all want to stop serving *all possible IP addresses ever* for login.tailscale.com to make it fit into a UDP response? :)
July 20, 2025 at 4:51 PM
New blog post published 🥳

Migrating my NAS from CoreOS/Flatcar Linux to #NixOS

In this article, I want to show how to migrate an existing Linux server to NixOS — in my case the CoreOS/Flatcar Linux installation on my Network Attached Storage (NAS) PC.

michael.stapelberg.ch/posts/2025-0...
Migrating my NAS from CoreOS/Flatcar Linux to NixOS
In this article, I want to show how to migrate an existing Linux server to NixOS — in my case the CoreOS/Flatcar Linux installation on my Network Attached Storage (NAS) PC. I will show in detail how t...
michael.stapelberg.ch
July 13, 2025 at 6:22 AM
Reposted by Michael Stapelberg 🐧🐹😺
June 17, 2025 at 10:02 AM
New blog post! 🥳

How I like to install NixOS

There are many ways to install NixOS, and in this article I will outline how I like to install NixOS on physical hardware or virtual machines: over the network and fully declaratively.

michael.stapelberg.ch/posts/2025-0...

#linux #nixos
How I like to install NixOS (declaratively)
For one of my network storage PC builds, I was looking for an alternative to Flatcar Container Linux and tried out NixOS again (after an almost 10 year break). There are many ways to install NixOS, an...
michael.stapelberg.ch
June 1, 2025 at 6:26 AM
Reposted by Michael Stapelberg 🐧🐹😺
"Go Cryptography Security Audit" by Roland Shoemaker — go.dev/blog/tob-crypto-audit

#golang
Go Cryptography Security Audit - The Go Programming Language
Go's cryptography libraries underwent an audit by Trail of Bits.
go.dev
May 19, 2025 at 5:14 PM
At this week’s RIPE meeting, Simon Leinen from SWITCH talked about using my github.com/gokrazy/rsync/ memory-safe rsync implementation for diversity, reliability and security!

Find the video recording at ripe90.ripe.net/archives/vid...

#golang
GitHub - gokrazy/rsync: rsync in Go! implements client and server, which can send or receive files (upload, download, all directions supported)
rsync in Go! implements client and server, which can send or receive files (upload, download, all directions supported) - gokrazy/rsync
github.com
May 18, 2025 at 9:13 AM
New blog post:

My 2025 high-end Linux PC 🐧

michael.stapelberg.ch/posts/2025-0...

Turns out my previous attempt at this build had a faulty CPU! With the CPU replaced, the machine now is stable and fast!

#linux #pc
My 2025 high-end Linux PC 🐧
Turns out my previous attempt at this build had a faulty CPU! With the CPU replaced, the machine now is stable and fast! 🚀 In this article, I’ll go into a lot more detail about the component selection...
michael.stapelberg.ch
May 15, 2025 at 1:50 PM
TIL: Apple’s migration tool supports Thunderbolt networking, so by connecting two Macs with a Thunderbolt cable, you can transfer data much much faster than with Gigabit Ethernet: the migration tool measures the connection with 3 GB/s peak speed (actual migration speed: >> 500 MB/s):
May 11, 2025 at 7:45 AM
Went to see Tangerine Dream live tonight! Great tracks, visuals were stunning and overall a good time :)

If you haven’t heard of them: they *defined* electronic music in Germany back in the 1970s and have been active ever since. They made the sound track to GTA V! en.wikipedia.org/wiki/Tangeri...
April 26, 2025 at 9:04 PM
Reposted by Michael Stapelberg 🐧🐹😺
📢 The Internet Archive needs your help.

At a time when information is being rewritten or erased online, a $700 million lawsuit from major record labels threatens to destroy the Wayback Machine.

Tell the labels to drop the 78s lawsuit.

👉 Sign our open letter: www.change.org/p/defend-the...

🧵⬇️
April 17, 2025 at 4:51 PM
My talk at the recent Zürich 🇨🇭 Go Meetup about Go Protobuf (specifically, the Opaque API) is now online:

youtu.be/QpLjj3yZ4R8?...

#golang
Go Meetup April 2025 - Go Protobuf
YouTube video by Google TechTalks
youtu.be
April 17, 2025 at 3:48 PM
Reposted by Michael Stapelberg 🐧🐹😺
I just released go-boot v0.1!

A TamaGo unikernel implementing a UEFI Shell and OS loader allowing secure, powerful, yet easy UEFI API interaction.

100% unencumbered Go in your pre-boot environment.

github.com/usbarmory/go...
March 19, 2025 at 5:55 PM
Reposted by Michael Stapelberg 🐧🐹😺
@thepudds.bsky.social is my hero

So far, up to 15x faster escape analysis for the Go compiler when compiling the TS checker package.

End to end that's an 8x faster compiler of the checker package for us, bringing it down from 50 seconds to 6 seconds.

github.com/golang/go/is...
cmd/compile: slow escape analysis in large package in the typescript compiler · Issue #72815 · golang/go
Go version go version go1.24.1 linux/amd64 Output of go env in your module/workspace: AR='ar' CC='gcc' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_ENABLED='1' CGO_FFLAGS='-O2 -g' ...
github.com
March 18, 2025 at 8:00 PM
New blog post: Intel 9 285K on ASUS Z890: not stable! ⚠️

I had a lot of trouble with this mainboard (?), so I am telling you what combination of hardware to avoid 😲

michael.stapelberg.ch/posts/2025-0...
March 19, 2025 at 4:46 PM
#zurich SBB #trains at night

(view from Europabrücke)
March 14, 2025 at 9:36 PM
Did you know? My github.com/gokrazy/rsync module can be used as a library — both its client and its server accept the io.ReadWriter interface type :)

To show that this works and to show the flexibility this enables, I put together an rsync-over-gRPC demo:

github.com/stapelberg/r...

#golang
GitHub - gokrazy/rsync: rsync in Go! implements client and server, which can send or receive files (upload, download, all directions supported)
rsync in Go! implements client and server, which can send or receive files (upload, download, all directions supported) - gokrazy/rsync
github.com
March 11, 2025 at 7:53 PM
My website/blog michael.stapelberg.ch is now self-hosted from Zürich! 🇨🇭

I’m now using the Caddy web server on a machine running my router7.org (which in turn is built on my gokrazy.org) to serve the static files (previously: GitHub pages + CloudFlare)

More services to follow!

#golang #selfhosting
About
Michael Stapelberg’s private website, containing articles about computers and programming, mostly focused on Linux.
michael.stapelberg.ch
March 4, 2025 at 4:31 PM
New blog post! 🎉

Tips to debug hanging Go programs

michael.stapelberg.ch/posts/2025-0...

#golang
February 27, 2025 at 5:02 PM
Last November, I blogged about using ephemeral PostgreSQL DBs for Go testing.

It was worth digging deep into the topic, because the insights transfers well.

For example, I recently optimized the gokrazy/rsync tests like so:

(1/n)

#golang
Testing with Go and PostgreSQL: ephemeral DBs
Let’s say you created a Go program that stores data in PostgreSQL — you installed PostgreSQL, wrote the Go code, and everything works; great! But after writing a test for your code, you wonder: how do...
michael.stapelberg.ch
February 16, 2025 at 9:47 AM
Reposted by Michael Stapelberg 🐧🐹😺
Shoutout to @zekjur.bsky.social for showing me the way. Magit really is great.
February 3, 2025 at 2:22 AM
I just watched this video of Byran building a laptop from scratch and it’s truly an internet moment of the best kind 🤯

www.youtube.com/watch?v=fks3...
How I Made A Laptop From Scratch - anyon_e
YouTube video by Byran
www.youtube.com
January 23, 2025 at 9:41 PM
it’s time
January 15, 2025 at 9:30 PM
PSA: With macOS 15 Sequoia (released in September 2024), Apple has started shipping openrsync (created by Kristaps Dzonsons, from OpenBSD) as an alternative to the original rsync (“tridge”, from the Samba project).

🧵
github.com
January 12, 2025 at 11:14 AM