Michael Stapelbergs Website
Michael Stapelberg’s private website, containing articles about computers and programming, mostly focused on Linux.
- Posts
- 315 from 12 Nov 2007 to 6 Sep 2026
- Posting
- monthly (7 in the last year)
- Kind
- personal blog
- Feed
- https://michael.stapelberg.ch/feed.xml
2026 6
2025 12
- Self-hosting my photos with Immich
- My impressions of the MacBook Pro M4
- NixCon 2025 Trip Report 🐝
- Bye Intel, hi AMD! I’m done after 2 dead Intels
- Secret Management on NixOS with sops-nix
- Development shells with Nix: four quick examples
- Migrating my NAS from CoreOS/Flatcar Linux to NixOS
- How I like to install NixOS (declaratively)
- My 2025 high-end Linux PC 🐧
- Read more →
- In praise of grobi for auto-configuring X11 monitors
- Tips to debug hanging Go programs
2024 8
- Go Protobuf: The new Opaque API
- Get a solar panel for your balcony now ☀️
- Testing with Go and PostgreSQL: ephemeral DBs
- Debug Go core dumps with delve: export byte slices
- A Signal run a day keeps the un-link away
- Ryzen 7 Mini-PC makes a power-efficient VM host
- Minimal Linux Bootloader debugging story 🐞
- systemd: enable indefinite service restarts
2023 3
2022 10
- DIY out-of-band management: remote power button
- DIY out-of-band management: remote console server
- rsync, article 3: How does rsync work?
- rsync, article 2: Surroundings
- rsync, article 1: Scenarios
- rsync: Series Overview
- 25 Gbit/s HTTP and HTTPS download speeds
- My upgrade to 25 Gbit/s Fiber To The Home
- Smart Home components 🏠
- My 2022 high-end Linux PC 🐧
2021 15
- Fixing the Logitech MX Ergo Trackball mouse buttons
- MacBook Air M1: the best laptop?
- Silent HP Z440 workstation: replacing noisy fans
- 25 Gigabit Linux internet router PC build
- Laptop review: ThinkPad X1 Extreme (Gen 2)
- How I configured and then promptly returned a MikroTik CCR2004 router for Fiber7
- Home network 10 Gbit/s upgrade
- Measure and reduce keyboard input latency with QMK on the Kinesis Advantage
- Linux and USB virtual serial devices (CDC ACM)
- Emacs: overriding the project.el project directory
- Eclipse: Enabling Compilation Database (CDB, compile_commands.json) in NXP MCUXpresso v11.3
- Nuki Opener on SCS bus: Series Overview
- Make your intercom smarter with an MQTT backpack
- Debian Code Search: OpenAPI now available
- A quick introduction to MQTT for IOT
2020 10
- Fixing the Nuki Opener smart intercom IOT device (on the BTicino SCS bus intercom system)
- Nuki Opener with an SCS bus intercom (bTicino 344212)
- Adding a fiber link to my home network
- Introducing the kinT kinesis keyboard controller
- Using the iPhone camera as a Linux webcam with v4l2loopback
- stapelberg uses this: my 2020 desk setup
- a new distri linux (fast package management) release
- Hermetic packages (in distri)
- Readiness notifications in Go
- distri: 20x faster initramfs (initrd) from scratch
2019 9
- Network Storage PC Hardware (2019)
- Debian Code Search: positional index, TurboPFor-compressed
- distri: a Linux distribution to research fast package management
- Linux package managers are slow
- Linux distributions: Can we do without hooks and triggers?
- Optional dependencies don’t work
- Winding down my Debian involvement
- Debugging experience in Debian
- TurboPFor: an analysis
2018 14
- Docker and IPv6
- Network setup for our retro computing event RGB2Rv18
- Looking for a new Raspberry Pi image maintainer
- Installing Dell’s Ubuntu image on an XPS 9360
- kinX: latency measurement
- kinX: USB Hub
- kinX: keyboard controller with <0.33ms input latency
- kinX: overview
- sbuild-debian-developer-setup(1)
- cpu(1) with Linux
- dput usability changes
- pristine-tar considered harmful
- Off-site backups with an apu2c4
- Debian buster on the Raspberry Pi 3 (update)
2017 15
- Dell 8K4K monitor (Dell UP3218K)
- Network setup for our retro computing event RGB2Rv17
- Which VCS do Debian’s Go package upstreams use?
- Making GitLab authenticate against dex
- pk4: a new tool to avail the Debian source package producing the specified package
- Debian stretch on the Raspberry Pi 3 (update)
- Why Go is my favorite programming language
- Auto-opening portal pages with NetworkManager
- HomeMatic re-implementation
- Review: Turris Omnia (with Fiber7)
- Debian stretch on the Raspberry Pi 3 (update)
- Atomically writing files in Go
- Webfont loading with FOUT
- Read more →
- manpages.debian.org has been modernized
2016 9
- Debian package build tools
- Debian stretch on the Raspberry Pi 3
- Gigabit NAS (running CoreOS)
- Debian Code Search: improving client-side latency
- mergebot: easily merging contributions
- Conditionally tunneling SSH connections
- Supermicro X11SSZ-QF workstation mainboard
- Docker on Travis for new tools and fast runs
- Prometheus: Using the blackbox exporter
2015 6
2014 13
- Debian Code Search: taming the latency tail
- Announcing the new Debian Code Search Instant
- Upcoming Debian Code Search features
- Fiber7 performance
- Replicated PostgreSQL with pgpool2
- Configuring a Ubiquiti EdgeRouter Lite (Erlite-3) for Fiber7
- Don’t type WiFi passwords again: use a yubikey
- Horrible WiFi in hotels
- Using your TPM for SSH authentication
- Wake-On-LAN with Debian on a qnap TS-119P2+
- Securing SuperMicro’s IPMI with OpenVPN
- debmirror 6x speed-up, or how to fill a 1 GBps Rackspace link
- Building a SuperMicro 1U server (with IPMI)
2013 35
- Hosting for Debian Code Search provided by Rackspace
- CoreOS and Docker: first steps
- let’s disable pdiffs already!
- First Debian meetup in Zürich
- OpenWrt WAN watchdog
- Remote kernel logs with netconsole and rsyslog
- How git performs when you throw all of Debian at it
- My DebConf13 talks are online
- Going to DebConf
- dh-golang in unstable
- grep(1) with line continuations
- Looking for a USB WLAN stick
- systemd 204 in Debian experimental
- Systemd support in Debian packages: how to help
- How many packages does Debian Code Search contain?
- Survey answers part 3: systemd is not portable and what this means for our ports
- Survey answers part 2: the transition
- Anecdotes about getting a DSL connection
- Talk about Debian Code Search
- Survey answers part 1: systemd has too many dependencies, or it is bloated, or it does too many things, or is too complex
- Uploading packages via SFTP
- Results of the Debian systemd survey
- Cloning git-buildpackage repositories
- Debian systemd survey
- Galaxy Nexus slowness
- Analyzing RC bug messages
- Hacking your own Kinesis keyboard controller
- OpenWrt: Backup/Restore
- configfiles in git
- DavSync for Android
- Replying to Debian BTS messages in notmuch
- RC bugs
- RC bugs
- The C write() pattern
- WIT in Debian
2012 3
2010 1
2007 1
Undated 145
- RC bugs
- RC bugs
- rc bug #694670: kscd does not play any CD
- Root on DRBD
- RC bugs
- My KVM best practices (2012)
- zsh: tab-completing recent files
- Eine NeXTstation übers Netz installieren
- One reason for SIGILL with Go (golang)
- Debian Code Search
- Displaying your printer’s status
- RC bugs
- systemd 44-5 available
- My recent systemd activity
- Migrating KVM virtual machines to a new host
- Hello Planet Debian
- Why I switched from the Samsung Galaxy S3 to the Galaxy Nexus
- golang: types such as []uint32 and cgo
- lvm-snapshots: fixing lvremove
- systemd: modify IO scheduling
- Assigning typo-safe club member IDs
- Disabling auto-reload in Evince
- Rescuing webservers with nginx as a cache
- Mein aktuelles E-Mail-Setup
- APC Smart UPS 700: Serielle Schnittstelle
- Buying a Linux computer (2012)
- Kaputter Server: Verschiedene Tipps
- i3 v4.2 released
- Rescue-HDD mit grml Linux
- i3 v4.1.1 released
- Perl-module von CPAN installieren
- Packaging your Perl script for Debian
- MTU and OpenVPN: How does it work?
- systemd ist lange überfällig…
- i3 v4.1 released
- FTP-Backups mit duplicity
- Positive Erfahrungen mit dem irischen ISP Magnet
- SSD kaputt
- Kurz-Howto: Videos aufnehmen mit einer USB-Webcam und GStreamer
- Automount von LUKS-verschlüsselten Festplatten
- i3 v4.0.2 released
- Understanding and Optimizing 802.11n
- i3 v4.0 released
- /etc/sysfs.conf ist obsolet
- Thinkfan mit einem ThinkPad X200
- Most useful GCC options and extensions
- Advanced Memory Allocation
- Video-Chat with Pidgin (XMPP)
- adb als non-root unter Debian
- Code Coverage testing in C with gcov and lcov
- Threadsafe Funktionen in Single-Thread-Programmen
- fetchmail unterstützt zwar pr…
- Google Maps in Android: Den b…
- i3-tree-pr2 released. Der tre…
- Um in 'git diff' immer einen …
- Mein Tageswerk: Perl6 kann je…
- bacula-restore trotz fehlende…
- JessyInk ist ein Plugin für I…
- In grml 2010.12 ist i3 enthal…
- In letzter Zeit bin ich von D…
- Erkenntnis des Tages: POSIX-S…
- Aus einer Spam-Mail: Hello…
- Beim Importieren von Kontakten…
- Social Pizza-Bestellung war s…
- Die Performance und der Speic…
- Android ist IPv6-enabled stan…
- Android hat mich ;-). Ich möc…
- Da CouchDBs SSL-Unterstützung…
- Wenn man DBus versteht (was a…
- Nachdem Rakudo Star am Donner…
- In C++ gibt es Closures! Zwar…
- Nachdem ich letztens ein WebD…
- Kurz-Howto: Anrufbeantworter-Nachrichten in Asterisk als MP3 versenden
- Auf dem N900 kann man Fotos/V…
- Wer i3lock nutzt ist herzlich…
- Bloat, überall! -rw-r--r--…
- Mini-Howto: Xen nach KVM migrieren
- Soeben wurde i3 v3.ε-bf1 verö…
- Meine erste grafische Maemo-A…
- Da ich mich häufig dabei erwi…
- Linux auf einer WatchGuard Firebox X500
- Die Folien und der Beispielco…
- Folgendes ist valider C-Code …
- Ein hübscher Vergleich zwisch…
- Ich habe gerade auf Arbeit ei…
- Ein cooles Feature von CouchD…
- Heute in „Warum ich die GNU a…
- Es gibt ja nicht häufig Debia…
- Wenn vmware-modconfig sich mi…
- i3 v3.ε wurde soeben released…
- Wer sich über die Tastenkombi…
- In X11 gibt es oftmals die Si…
- Auf meinem Server nutze ich X…
- Während ich herausfand, dass …
- Da ich ein neues System Board…
- Super Talent Solid State Disk im Test
- Xen-Server sichern mit LVM-Snapshots
- Interfaces-Magie (/etc/network/interfaces auf Debian)
- vpnc und OpenVPN auf OpenWrt
- UMTS mit T-Mobile web'n'walk DayFlat und einer Vodafone Mobile Connect-Expresscard
- Neo-Layout auf einer Kinesis-Tastatur
- Häufige Rechtschreibfehler
- Wie man das Medium E-Mail benutzen sollte
- ThinkPad x200
- Eigenen IPv6-Tunnel bauen
- Kurztipp: Vergrößern einer NetBSD-domU (mit NetBSD-dom0)
- Kurze Info: Wintec WBT300 GPS unter Linux
- Der H264-Codec unter Linux (x264)
- MacBook: Erste Erfahrungen
- Der Leidensweg zum Mac
- Kurz-Howto: Bacula und TLS mit CACert
- Mögliche Mods an der „Standard”-Logitech-Maus
- Tor auf OpenBSD
- Codegolf erklärt
- NetBSD 4.0 mit Xen 3
- Festplattenverschlüsselung unter Linux
- Startschwierigkeiten 2008
- 3WARE 9550S-4LP mit Gentoo GNU/Linux
- Dokumentation: Aufbau meines Fileservers
- Kurz-Howto: mod_perl und CGI::Application::Dispatch
- Asterisk & cmus: Musik automatisch unterbrechen
- Ärger mit Disk Images auf dem Mac
- Kurz-Howto: Baculas Konfiguration stark vereinfachen
- Restore-DVD mit grml Linux erstellen
- Konsolen-Mailprogramm mutt-ng einrichten
- Startschwierigkeiten
- Datensicherung mit Bacula und Mac OS X
- Automatisch Mounten
- Die Nintendo Wii™
- DV zu DVD (mit Mac OS X und Linux)
- Kurz-Howto: Auerswald-Telefonanlage unter Debian benutzen
- Kurz-Howto: Debian via PXE installieren
- Kurz-Howto: Eigenes Debian-Repository aufbauen
- Kurz-HowTo: Video-DVDs unter Linux erstellen und brennen
- Kurz-Howto: Videos für PDAs konvertieren
- Neuer Internetanschluss und VoIP-Flatrate (Alice, Arcor, congster, sipgate, bellshare)
- Port-weiterleitungen bei OpenWRT
- Präsentation auf einem Mac
- Quicktime-Dateien für das Brennen auf DVD konvertieren
- SSH-fähiges Terminal
- Tipp: Double-Layer DVDs auch ohne DL-Superdrive in iDVD
- Umstieg auf Gentoo
- Unannehmlichkeiten bei der Linuxinstallation
- VoIP mit congster und asterisk
- Windows Server retten mit grml Linux