Michael Stapelberg 🐧🐹😺's Avatar

Michael Stapelberg 🐧🐹😺

@zekjur

Mensch mit starkem Datendrang β€’ Artisanal Open Source β€’ latenz-unvertrΓ€glich β€’ ::) β€’ he/him

346
Followers
31
Following
54
Posts
06.02.2024
Joined
Posts Following

Latest posts by Michael Stapelberg 🐧🐹😺 @zekjur

Thanks for the tip, I am aware of that feature, but use different ways for different situations :)

04.01.2026 18:18 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Can I finally start using Wayland in 2026? Wayland is the successor to the X server (X11, Xorg) to implement the graphics stack on Linux. The Wayland project was actually started in 2008, a year before I created the i3 tiling window manager fo...

New blog post: Can I finally start using Wayland in 2026?

[…] I don’t want to be stuck on deprecated software, so I try to start using Wayland each year, and this articles outlines what keeps me from migrating to Wayland in 2026.

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

#linux #sway #wayland #i3wm

04.01.2026 08:15 πŸ‘ 14 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0

I have a few more πŸ™ˆ Good luck with fixing the broken ones!

05.12.2025 10:08 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Development shells with Nix: four quick examples I wanted to use GoCV for one of my projects (to find and extract paper documents from within a larger scan), without permanently having OpenCV on my system. This seemed like a good example use-case to...

New blog post! πŸ₯³

Development shells with Nix: four quick examples

β†’ Read more: michael.stapelberg.ch/posts/2025-0...

#Nix #NixOS

27.07.2025 06:56 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

That’s the miekg/dns default, apparently πŸ€”

21.07.2025 14:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
wireshark screenshot showing how the DNS response for login.tailscale.com is truncated

wireshark screenshot showing how the DNS response for login.tailscale.com is truncated

Yes, I am seeing otherwise: querying 8.8.8.8 via UDP results in a truncated response packet. Probably the reply you’re looking at is already the TCP-retry response.

I emailed you the pcap I show in this screenshot:

21.07.2025 06:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
screenshot of login.tailscale.com resolving to 64 IP addresses

screenshot of login.tailscale.com resolving to 64 IP addresses

@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? :)

20.07.2025 16:51 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
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...

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...

13.07.2025 06:22 πŸ‘ 10 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Five dudes on a stage: Michael Pratt, Damien Neil, Michael Stapelberg, and Jonathan Amsterdam from the Go team, with Mat Ryer fielding questions

Five dudes on a stage: Michael Pratt, Damien Neil, Michael Stapelberg, and Jonathan Amsterdam from the Go team, with Mat Ryer fielding questions

Panel with the Go team at @gopherconeu.bsky.social !

#GopherconEU #Gophers #Golang

17.06.2025 10:01 πŸ‘ 8 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
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...

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

01.06.2025 06:26 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Go Cryptography Security Audit - The Go Programming Language Go's cryptography libraries underwent an audit by Trail of Bits.

"Go Cryptography Security Audit" by Roland Shoemaker β€” go.dev/blog/tob-crypto-audit

#golang

19.05.2025 17:14 πŸ‘ 38 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0
Preview
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

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

18.05.2025 09:12 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
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...

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

15.05.2025 13:50 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I usually keep the only remaining slot free for putting a GPU in to get a monitor signal, but I suppose I could put a Thunderbolt card in there and temporarily swap it with the GPU when needed.

Do you happen to have any recommendations for known-working Thunderbolt cards with low idle power draw?

11.05.2025 09:25 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Unfortunately, my internet router’s mainboard only has a USB 3.2 Gen 2x1 port (10 Gbps), not a USB 3.2 Gen 2x2 port (20 Gbps), otherwise that would have been a really cool way to bring a 20 Gbps connection to a normal laptop, without bulky extra hardware like SFP+ network cards.

11.05.2025 07:46 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Thunderbolt Networking Setup Thunderbolt Networking Setup. GitHub Gist: instantly share code, notes, and snippets.

The obvious follow-up question is: does thunderbolt networking work with Linux, too? The answer seems to be yes: gist.github.com/scyto/67fdc9...

#linux

11.05.2025 07:46 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
photo of the apple migration tool, showing how a thunderbolt connection can reach 3 GB/s

photo of the apple migration tool, showing how a thunderbolt connection can reach 3 GB/s

photo of the migration tool working at >> 500 MB/s

photo of the migration tool working at >> 500 MB/s

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):

11.05.2025 07:45 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
In praise of grobi for auto-configuring X11 monitors I have recently started using the grobi program by Alexander Neumann again and was delighted to discover that it makes using my fiddly (but wonderful) Dell 32-inch 8K monitor (UP3218K) monitor much mo...

New blog post! πŸŽ‰

In praise of grobi for auto-configuring X11 monitors

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

#linux #golang

10.05.2025 06:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
synthesizers on stage (Tangerine Dream 2025)

synthesizers on stage (Tangerine Dream 2025)

Bonus pic: stage setup up close

26.04.2025 21:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Tangerine Dream live in 2025

Tangerine Dream live in 2025

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...

26.04.2025 21:04 πŸ‘ 7 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Defend the Internet Archive.
Protect the Wayback Machine.
Tell the music labels: Drop the 78s lawsuit.
Sign our open letter on change.org

Defend the Internet Archive. Protect the Wayback Machine. Tell the music labels: Drop the 78s lawsuit. Sign our open letter on change.org

πŸ“’ 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...

πŸ§΅β¬‡οΈ

17.04.2025 16:51 πŸ‘ 19569 πŸ” 15725 πŸ’¬ 120 πŸ“Œ 459

Tom Payne shares how he fixed a #chezmoi regression in binary size and startup time with the help of Git Bisect and the Go Size Analyzer πŸ’ͺ

Thomas Gosteli gives an overview about what’s new in Go 1.24 πŸ“£

…and Roman Sharkov teaches us about the complexities of i18n ☝️ (3/3)

17.04.2025 15:49 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Go Meetup April 2025 - YouTube Go Meetup April 2025, held at Google ZΓΌrich

All the talks from the April 2025 ZΓΌrich πŸ‡¨πŸ‡­ Go Meetup can be found in this playlist:

www.youtube.com/playlist?lis...

Denys Vitali is talking about the self-built photo booth at his wedding (implemented with #linux & #golang of course!) 😍

(2/3)

17.04.2025 15:49 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Go Meetup April 2025 -  Go Protobuf
Go Meetup April 2025 - Go Protobuf YouTube video by Google TechTalks

My talk at the recent ZΓΌrich πŸ‡¨πŸ‡­ Go Meetup about Go Protobuf (specifically, the Opaque API) is now online:

youtu.be/QpLjj3yZ4R8?...

#golang

17.04.2025 15:48 πŸ‘ 11 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0
Post image

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...

19.03.2025 17:55 πŸ‘ 72 πŸ” 15 πŸ’¬ 2 πŸ“Œ 0
Preview
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' ...

@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...

18.03.2025 20:00 πŸ‘ 143 πŸ” 20 πŸ’¬ 2 πŸ“Œ 2
screenshot of my blog post

screenshot of my blog post

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...

19.03.2025 16:46 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
photo of zurich at night, showing trains parked on tracks

photo of zurich at night, showing trains parked on tracks

#zurich SBB #trains at night

(view from EuropabrΓΌcke)

14.03.2025 21:36 πŸ‘ 4 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

To be clear, this isn’t starting the samba rsync program in the background or anything like that; it’s a 100% Go implementation; memory-safe and fast! Standalone and cross-architecture! πŸš€

#golang

11.03.2025 19:53 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
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

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

11.03.2025 19:52 πŸ‘ 6 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0