Michael Stapelberg 🐧🐹😺
@zekjur.bsky.social
📤 313
📥 31
📝 51
Mensch mit starkem Datendrang • Artisanal Open Source • latenz-unverträglich • ::) • he/him
New blog post! 🥳 Development shells with Nix: four quick examples → Read more:
michael.stapelberg.ch/posts/2025-0...
#Nix
#NixOS
loading . . .
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...
https://michael.stapelberg.ch/posts/2025-07-27-dev-shells-with-nix-4-quick-examples/
2 months ago
0
7
1
@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? :)
2 months ago
1
2
0
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...
loading . . .
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...
https://michael.stapelberg.ch/posts/2025-07-13-nixos-nas-network-storage-config/
3 months ago
1
9
0
reposted by
Michael Stapelberg 🐧🐹😺
Brittany Ellich
4 months ago
Panel with the Go team at
@gopherconeu.bsky.social
!
#GopherconEU
#Gophers
#Golang
0
8
3
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
loading . . .
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...
https://michael.stapelberg.ch/posts/2025-06-01-nixos-installation-declarative/
4 months ago
0
6
1
reposted by
Michael Stapelberg 🐧🐹😺
Go
5 months ago
"Go Cryptography Security Audit" by Roland Shoemaker —
go.dev/blog/tob-crypto-audit
#golang
loading . . .
Go Cryptography Security Audit - The Go Programming Language
Go's cryptography libraries underwent an audit by Trail of Bits.
https://go.dev/blog/tob-crypto-audit
0
38
6
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
loading . . .
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
https://github.com/gokrazy/rsync/
5 months ago
1
3
0
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
loading . . .
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...
https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/
5 months ago
0
1
0
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):
5 months ago
1
2
0
New blog post! 🎉 In praise of grobi for auto-configuring X11 monitors
michael.stapelberg.ch/posts/2025-0...
#linux
#golang
loading . . .
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...
https://michael.stapelberg.ch/posts/2025-05-10-grobi-x11-monitor-autoconfig/
5 months ago
1
1
0
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...
5 months ago
1
7
0
reposted by
Michael Stapelberg 🐧🐹😺
Internet Archive
6 months ago
📢 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...
🧵⬇️
125
19750
16350
My talk at the recent Zürich 🇨🇭 Go Meetup about Go Protobuf (specifically, the Opaque API) is now online:
youtu.be/QpLjj3yZ4R8?...
#golang
loading . . .
Go Meetup April 2025 - Go Protobuf
YouTube video by Google TechTalks
https://youtu.be/QpLjj3yZ4R8?si=Eax8Q6pf1E_tL-6i
6 months ago
1
11
2
reposted by
Michael Stapelberg 🐧🐹😺
Andrea Barisani
7 months ago
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...
2
72
15
reposted by
Michael Stapelberg 🐧🐹😺
Jake Bailey
7 months ago
@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...
loading . . .
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' ...
https://github.com/golang/go/issues/72815#issuecomment-2734547571
2
145
22
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...
7 months ago
1
2
0
#zurich
SBB
#trains
at night (view from Europabrücke)
7 months ago
0
4
0
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
loading . . .
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
https://github.com/gokrazy/rsync
7 months ago
1
6
0
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
loading . . .
About
Michael Stapelberg’s private website, containing articles about computers and programming, mostly focused on Linux.
https://michael.stapelberg.ch/
7 months ago
1
7
1
New blog post! 🎉 Tips to debug hanging Go programs
michael.stapelberg.ch/posts/2025-0...
#golang
7 months ago
0
25
7
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
loading . . .
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...
https://michael.stapelberg.ch/posts/2024-11-19-testing-with-go-and-postgresql-ephemeral-dbs/#go-test-process-model
8 months ago
1
3
0
reposted by
Michael Stapelberg 🐧🐹😺
Carlos Amédée
8 months ago
Shoutout to
@zekjur.bsky.social
for showing me the way. Magit really is great.
0
2
1
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...
loading . . .
How I Made A Laptop From Scratch - anyon_e
YouTube video by Byran
https://www.youtube.com/watch?v=fks3PBodyiE
8 months ago
0
1
0
it’s time
9 months ago
2
5
0
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). 🧵
loading . . .
https://github.com/apple-oss-distributions/rsync/blob/main/rsync.wrapper.c
9 months ago
1
4
0
Any last tips or recommendations before I click order on this PC build? This will be the replacement for
michael.stapelberg.ch/posts/2022-0...
, i.e. mostly doing compilation, browsing and similar. Goals are: silent, low idle power, fast. (I’ll keep using my current nVidia GPU for now.)
#linux
#pc
9 months ago
1
8
0
reposted by
Michael Stapelberg 🐧🐹😺
Michael Lynch
9 months ago
I often see developers make mistakes in their tutorials that trip up readers, so I thought a lot about what makes some tutorials effective and what makes others frustrating.
loading . . .
Rules for Writing Software Tutorials
It's easier than you think to write an exceptional software tutorial. You can stand out in a sea of mediocre guides by following a few simple rules.
https://refactoringenglish.com/chapters/rules-for-software-tutorials/
7
58
23
With commit
github.com/gokrazy/brea...
, you can use
#emacs
TRAMP with
gokrazy.org
devices 🎉 Maybe this makes other remote access solutions work, too, but I haven’t tried. Reports welcome!
loading . . .
try to install busybox into a tmpfs /bin (with fallback) · gokrazy/breakglass@c9528b4
This code path requires gokrazy/tools at this commit or newer: https://github.com/gokrazy/tools/commit/37e2f95c5cfc58554405cc615c5da8e4899b071a And gokrazy/serial-breakglass at this commit or newe...
https://github.com/gokrazy/breakglass/commit/c9528b4abb0249868978c4ad257aa88761e3519a
9 months ago
1
2
0
Did an analysis of the various go-mail packages in the
#golang
ecosystem. Instead of finding “the best fork”, it seems like I’ll need to switch to wneessen’s alternative (not a fork). Did I miss any significant development here?
10 months ago
1
6
0
reposted by
Michael Stapelberg 🐧🐹😺
Go
10 months ago
"Go Protobuf: The new Opaque API" by Michael Stapelberg (
@zekjur.bsky.social
) —
go.dev/blog/protobu...
loading . . .
Go Protobuf: The new Opaque API - The Go Programming Language
We are adding a new generated code API to Go Protobuf.
https://go.dev/blog/protobuf-opaque
1
93
18
reposted by
Michael Stapelberg 🐧🐹😺
Filippo Valsorda
10 months ago
Did you know you that you can run Go 1.24rc1 (or any other version) by just setting an environment variable? $ GOTOOLCHAIN=go1.24rc1 go version go: downloading go1.24rc1 (darwin/arm64) go version go1.24rc1 darwin/arm64 This is supported since Go 1.21 (August 2023).
go.dev/doc/toolchain
6
122
30
The Go Blog Go Protobuf: The new Opaque API Michael Stapelberg 16 December 2024
go.dev/blog/protobu...
#golang
loading . . .
Go Protobuf: The new Opaque API - The Go Programming Language
We are adding a new generated code API to Go Protobuf.
https://go.dev/blog/protobuf-opaque
10 months ago
0
27
11
Nicely done source code music track :D
www.youtube.com/watch?v=yup8...
loading . . .
NANOWAR OF STEEL - HelloWorld.java (Source Code Video) | Napalm Records
YouTube video by Napalm Records
https://www.youtube.com/watch?v=yup8gIXxWDU
10 months ago
0
0
0
New blog post: Get a solar panel for your balcony now ☀️ A year ago, I got a solar panel for my balcony — an easy way to vote with your wallet to convert more of the world’s energy usage to solar power.
michael.stapelberg.ch/posts/2024-1...
loading . . .
Get a solar panel for your balcony now ☀️
A year ago, I got a solar panel for my balcony — an easy way to vote with your wallet to convert more of the world’s energy usage to solar power. That was a great decision and I would recommend everyo...
https://michael.stapelberg.ch/posts/2024-12-10-solar-panel-for-your-balcony/
10 months ago
0
7
1
Found this article about a Linux gaming PC and I think this is quite a remarkable development:
www.golem.de/news/aus-dem...
10 months ago
0
2
0
New blog post! 🎉 Testing with Go and PostgreSQL: ephemeral DBs Let’s say you created a
#golang
program that needs a DB — you installed PostgreSQL, wrote the Go code, and everything works; great! But how do you best provide PostgreSQL to your automated tests?
michael.stapelberg.ch/posts/2024-1...
11 months ago
1
12
3
Here’s a great demo about a (game) dev env:
www.youtube.com/watch?v=72y2...
It starts with updating assets with live reload and it only gets better from here. I strongly recommend you watch this, and then compare your dev env! Maybe it will give you some inspiration/motivation!
loading . . .
Tomorrow Corporation Tech Demo
YouTube video by retrogameinternals
https://www.youtube.com/watch?v=72y2EC5fkcE
11 months ago
0
2
0
New blog post! Debug Go core dumps with delve: export byte slices Not all bugs can easily be reproduced. Sometimes, all you have is a core dump. I had trouble figuring out how to save byte slice contents from memory into a file for further analysis with delve…
michael.stapelberg.ch/posts/2024-1...
11 months ago
0
6
2
Blog post: A Signal run a day keeps the un-link away When I get a message (on my phone), I want to reply to it only to discover that Signal has un-linked my laptop because of inactivity and won’t sync history, making it impossible to quote-reply to messages…
michael.stapelberg.ch/posts/2024-0...
11 months ago
0
2
0
you reached the end!!
feeds!
log in