The Curious Engineer

All blogs / Linux / Unix

Michael Stapelbergs Website

michael.stapelberg.ch

Michael Stapelberg’s private website, containing articles about computers and programming, mostly focused on Linux.

Linux / UnixGoDev tools / editors / IDEs

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

  1. Debian Code Search: Fast TurboPFor with Go SIMD
  2. Tracking down a Zsh history data loss bug 🐞
  3. How my minimal, memory-safe Go rsync steers clear of vulnerabilities
  4. Stamp It! All Programs Must Report Their Version
  5. Coding Agent VMs on NixOS with microvm.nix
  6. Can I finally start using Wayland in 2026?

2025 12

  1. Self-hosting my photos with Immich
  2. My impressions of the MacBook Pro M4
  3. NixCon 2025 Trip Report 🐝
  4. Bye Intel, hi AMD! I’m done after 2 dead Intels
  5. Secret Management on NixOS with sops-nix
  6. Development shells with Nix: four quick examples
  7. Migrating my NAS from CoreOS/Flatcar Linux to NixOS
  8. How I like to install NixOS (declaratively)
  9. My 2025 high-end Linux PC 🐧
  10. Read more →
  11. In praise of grobi for auto-configuring X11 monitors
  12. Tips to debug hanging Go programs

2024 8

  1. Go Protobuf: The new Opaque API
  2. Get a solar panel for your balcony now ☀️
  3. Testing with Go and PostgreSQL: ephemeral DBs
  4. Debug Go core dumps with delve: export byte slices
  5. A Signal run a day keeps the un-link away
  6. Ryzen 7 Mini-PC makes a power-efficient VM host
  7. Minimal Linux Bootloader debugging story 🐞
  8. systemd: enable indefinite service restarts

2023 3

  1. My 2023 all-flash ZFS NAS (Network Storage) build
  2. Can Dell’s 6K monitor beat their 8K monitor?
  3. gokrazy: instance-centric configuration released 🎉

2022 10

  1. DIY out-of-band management: remote power button
  2. DIY out-of-band management: remote console server
  3. rsync, article 3: How does rsync work?
  4. rsync, article 2: Surroundings
  5. rsync, article 1: Scenarios
  6. rsync: Series Overview
  7. 25 Gbit/s HTTP and HTTPS download speeds
  8. My upgrade to 25 Gbit/s Fiber To The Home
  9. Smart Home components 🏠
  10. My 2022 high-end Linux PC 🐧

2021 15

  1. Fixing the Logitech MX Ergo Trackball mouse buttons
  2. MacBook Air M1: the best laptop?
  3. Silent HP Z440 workstation: replacing noisy fans
  4. 25 Gigabit Linux internet router PC build
  5. Laptop review: ThinkPad X1 Extreme (Gen 2)
  6. How I configured and then promptly returned a MikroTik CCR2004 router for Fiber7
  7. Home network 10 Gbit/s upgrade
  8. Measure and reduce keyboard input latency with QMK on the Kinesis Advantage
  9. Linux and USB virtual serial devices (CDC ACM)
  10. Emacs: overriding the project.el project directory
  11. Eclipse: Enabling Compilation Database (CDB, compile_commands.json) in NXP MCUXpresso v11.3
  12. Nuki Opener on SCS bus: Series Overview
  13. Make your intercom smarter with an MQTT backpack
  14. Debian Code Search: OpenAPI now available
  15. A quick introduction to MQTT for IOT

2020 10

  1. Fixing the Nuki Opener smart intercom IOT device (on the BTicino SCS bus intercom system)
  2. Nuki Opener with an SCS bus intercom (bTicino 344212)
  3. Adding a fiber link to my home network
  4. Introducing the kinT kinesis keyboard controller
  5. Using the iPhone camera as a Linux webcam with v4l2loopback
  6. stapelberg uses this: my 2020 desk setup
  7. a new distri linux (fast package management) release
  8. Hermetic packages (in distri)
  9. Readiness notifications in Go
  10. distri: 20x faster initramfs (initrd) from scratch

2019 9

  1. Network Storage PC Hardware (2019)
  2. Debian Code Search: positional index, TurboPFor-compressed
  3. distri: a Linux distribution to research fast package management
  4. Linux package managers are slow
  5. Linux distributions: Can we do without hooks and triggers?
  6. Optional dependencies don’t work
  7. Winding down my Debian involvement
  8. Debugging experience in Debian
  9. TurboPFor: an analysis

2018 14

  1. Docker and IPv6
  2. Network setup for our retro computing event RGB2Rv18
  3. Looking for a new Raspberry Pi image maintainer
  4. Installing Dell’s Ubuntu image on an XPS 9360
  5. kinX: latency measurement
  6. kinX: USB Hub
  7. kinX: keyboard controller with <0.33ms input latency
  8. kinX: overview
  9. sbuild-debian-developer-setup(1)
  10. cpu(1) with Linux
  11. dput usability changes
  12. pristine-tar considered harmful
  13. Off-site backups with an apu2c4
  14. Debian buster on the Raspberry Pi 3 (update)

2017 15

  1. Dell 8K4K monitor (Dell UP3218K)
  2. Network setup for our retro computing event RGB2Rv17
  3. Which VCS do Debian’s Go package upstreams use?
  4. Making GitLab authenticate against dex
  5. pk4: a new tool to avail the Debian source package producing the specified package
  6. Debian stretch on the Raspberry Pi 3 (update)
  7. Why Go is my favorite programming language
  8. Auto-opening portal pages with NetworkManager
  9. HomeMatic re-implementation
  10. Review: Turris Omnia (with Fiber7)
  11. Debian stretch on the Raspberry Pi 3 (update)
  12. Atomically writing files in Go
  13. Webfont loading with FOUT
  14. Read more →
  15. manpages.debian.org has been modernized

2016 9

  1. Debian package build tools
  2. Debian stretch on the Raspberry Pi 3
  3. Gigabit NAS (running CoreOS)
  4. Debian Code Search: improving client-side latency
  5. mergebot: easily merging contributions
  6. Conditionally tunneling SSH connections
  7. Supermicro X11SSZ-QF workstation mainboard
  8. Docker on Travis for new tools and fast runs
  9. Prometheus: Using the blackbox exporter

2015 6

  1. (Not?) Hosting small projects on Container Engine
  2. Configuring locales on Linux
  3. Prometheus Alertmanager meta-monitoring
  4. ratt: Rebuild All The Things!
  5. dh-make-golang: creating Debian packages from Go packages
  6. ViewSonic VX2475Smhl-4K HiDPI display on Linux

2014 13

  1. Debian Code Search: taming the latency tail
  2. Announcing the new Debian Code Search Instant
  3. Upcoming Debian Code Search features
  4. Fiber7 performance
  5. Replicated PostgreSQL with pgpool2
  6. Configuring a Ubiquiti EdgeRouter Lite (Erlite-3) for Fiber7
  7. Don’t type WiFi passwords again: use a yubikey
  8. Horrible WiFi in hotels
  9. Using your TPM for SSH authentication
  10. Wake-On-LAN with Debian on a qnap TS-119P2+
  11. Securing SuperMicro’s IPMI with OpenVPN
  12. debmirror 6x speed-up, or how to fill a 1 GBps Rackspace link
  13. Building a SuperMicro 1U server (with IPMI)

2013 35

  1. Hosting for Debian Code Search provided by Rackspace
  2. CoreOS and Docker: first steps
  3. let’s disable pdiffs already!
  4. First Debian meetup in Zürich
  5. OpenWrt WAN watchdog
  6. Remote kernel logs with netconsole and rsyslog
  7. How git performs when you throw all of Debian at it
  8. My DebConf13 talks are online
  9. Going to DebConf
  10. dh-golang in unstable
  11. grep(1) with line continuations
  12. Looking for a USB WLAN stick
  13. systemd 204 in Debian experimental
  14. Systemd support in Debian packages: how to help
  15. How many packages does Debian Code Search contain?
  16. Survey answers part 3: systemd is not portable and what this means for our ports
  17. Survey answers part 2: the transition
  18. Anecdotes about getting a DSL connection
  19. Talk about Debian Code Search
  20. Survey answers part 1: systemd has too many dependencies, or it is bloated, or it does too many things, or is too complex
  21. Uploading packages via SFTP
  22. Results of the Debian systemd survey
  23. Cloning git-buildpackage repositories
  24. Debian systemd survey
  25. Galaxy Nexus slowness
  26. Analyzing RC bug messages
  27. Hacking your own Kinesis keyboard controller
  28. OpenWrt: Backup/Restore
  29. configfiles in git
  30. DavSync for Android
  31. Replying to Debian BTS messages in notmuch
  32. RC bugs
  33. RC bugs
  34. The C write() pattern
  35. WIT in Debian

2012 3

  1. RC bugs
  2. RC bugs
  3. Einladung RGB2R vom 2012-11-01 bis 2012-11-04

2010 1

  1. Read more →

2007 1

  1. Read more →

Undated 145

  1. RC bugs
  2. RC bugs
  3. rc bug #694670: kscd does not play any CD
  4. Root on DRBD
  5. RC bugs
  6. My KVM best practices (2012)
  7. zsh: tab-completing recent files
  8. Eine NeXTstation übers Netz installieren
  9. One reason for SIGILL with Go (golang)
  10. Debian Code Search
  11. Displaying your printer’s status
  12. RC bugs
  13. systemd 44-5 available
  14. My recent systemd activity
  15. Migrating KVM virtual machines to a new host
  16. Hello Planet Debian
  17. Why I switched from the Samsung Galaxy S3 to the Galaxy Nexus
  18. golang: types such as []uint32 and cgo
  19. lvm-snapshots: fixing lvremove
  20. systemd: modify IO scheduling
  21. Assigning typo-safe club member IDs
  22. Disabling auto-reload in Evince
  23. Rescuing webservers with nginx as a cache
  24. Mein aktuelles E-Mail-Setup
  25. APC Smart UPS 700: Serielle Schnittstelle
  26. Buying a Linux computer (2012)
  27. Kaputter Server: Verschiedene Tipps
  28. i3 v4.2 released
  29. Rescue-HDD mit grml Linux
  30. i3 v4.1.1 released
  31. Perl-module von CPAN installieren
  32. Packaging your Perl script for Debian
  33. MTU and OpenVPN: How does it work?
  34. systemd ist lange überfällig…
  35. i3 v4.1 released
  36. FTP-Backups mit duplicity
  37. Positive Erfahrungen mit dem irischen ISP Magnet
  38. SSD kaputt
  39. Kurz-Howto: Videos aufnehmen mit einer USB-Webcam und GStreamer
  40. Automount von LUKS-verschlüsselten Festplatten
  41. i3 v4.0.2 released
  42. Understanding and Optimizing 802.11n
  43. i3 v4.0 released
  44. /etc/sysfs.conf ist obsolet
  45. Thinkfan mit einem ThinkPad X200
  46. Most useful GCC options and extensions
  47. Advanced Memory Allocation
  48. Video-Chat with Pidgin (XMPP)
  49. adb als non-root unter Debian
  50. Code Coverage testing in C with gcov and lcov
  51. Threadsafe Funktionen in Single-Thread-Programmen
  52. fetchmail unterstützt zwar pr…
  53. Google Maps in Android: Den b…
  54. i3-tree-pr2 released. Der tre…
  55. Um in 'git diff' immer einen …
  56. Mein Tageswerk: Perl6 kann je…
  57. bacula-restore trotz fehlende…
  58. JessyInk ist ein Plugin für I…
  59. In grml 2010.12 ist i3 enthal…
  60. In letzter Zeit bin ich von D…
  61. Erkenntnis des Tages: POSIX-S…
  62. Aus einer Spam-Mail: Hello…
  63. Beim Importieren von Kontakten…
  64. Social Pizza-Bestellung war s…
  65. Die Performance und der Speic…
  66. Android ist IPv6-enabled stan…
  67. Android hat mich ;-). Ich möc…
  68. Da CouchDBs SSL-Unterstützung…
  69. Wenn man DBus versteht (was a…
  70. Nachdem Rakudo Star am Donner…
  71. In C++ gibt es Closures! Zwar…
  72. Nachdem ich letztens ein WebD…
  73. Kurz-Howto: Anrufbeantworter-Nachrichten in Asterisk als MP3 versenden
  74. Auf dem N900 kann man Fotos/V…
  75. Wer i3lock nutzt ist herzlich…
  76. Bloat, überall! -rw-r--r--…
  77. Mini-Howto: Xen nach KVM migrieren
  78. Soeben wurde i3 v3.ε-bf1 verö…
  79. Meine erste grafische Maemo-A…
  80. Da ich mich häufig dabei erwi…
  81. Linux auf einer WatchGuard Firebox X500
  82. Die Folien und der Beispielco…
  83. Folgendes ist valider C-Code …
  84. Ein hübscher Vergleich zwisch…
  85. Ich habe gerade auf Arbeit ei…
  86. Ein cooles Feature von CouchD…
  87. Heute in „Warum ich die GNU a…
  88. Es gibt ja nicht häufig Debia…
  89. Wenn vmware-modconfig sich mi…
  90. i3 v3.ε wurde soeben released…
  91. Wer sich über die Tastenkombi…
  92. In X11 gibt es oftmals die Si…
  93. Auf meinem Server nutze ich X…
  94. Während ich herausfand, dass …
  95. Da ich ein neues System Board…
  96. Super Talent Solid State Disk im Test
  97. Xen-Server sichern mit LVM-Snapshots
  98. Interfaces-Magie (/etc/network/interfaces auf Debian)
  99. vpnc und OpenVPN auf OpenWrt
  100. UMTS mit T-Mobile web'n'walk DayFlat und einer Vodafone Mobile Connect-Expresscard
  101. Neo-Layout auf einer Kinesis-Tastatur
  102. Häufige Rechtschreibfehler
  103. Wie man das Medium E-Mail benutzen sollte
  104. ThinkPad x200
  105. Eigenen IPv6-Tunnel bauen
  106. Kurztipp: Vergrößern einer NetBSD-domU (mit NetBSD-dom0)
  107. Kurze Info: Wintec WBT300 GPS unter Linux
  108. Der H264-Codec unter Linux (x264)
  109. MacBook: Erste Erfahrungen
  110. Der Leidensweg zum Mac
  111. Kurz-Howto: Bacula und TLS mit CACert
  112. Mögliche Mods an der „Standard”-Logitech-Maus
  113. Tor auf OpenBSD
  114. Codegolf erklärt
  115. NetBSD 4.0 mit Xen 3
  116. Festplattenverschlüsselung unter Linux
  117. Startschwierigkeiten 2008
  118. 3WARE 9550S-4LP mit Gentoo GNU/Linux
  119. Dokumentation: Aufbau meines Fileservers
  120. Kurz-Howto: mod_perl und CGI::Application::Dispatch
  121. Asterisk & cmus: Musik automatisch unterbrechen
  122. Ärger mit Disk Images auf dem Mac
  123. Kurz-Howto: Baculas Konfiguration stark vereinfachen
  124. Restore-DVD mit grml Linux erstellen
  125. Konsolen-Mailprogramm mutt-ng einrichten
  126. Startschwierigkeiten
  127. Datensicherung mit Bacula und Mac OS X
  128. Automatisch Mounten
  129. Die Nintendo Wii™
  130. DV zu DVD (mit Mac OS X und Linux)
  131. Kurz-Howto: Auerswald-Telefonanlage unter Debian benutzen
  132. Kurz-Howto: Debian via PXE installieren
  133. Kurz-Howto: Eigenes Debian-Repository aufbauen
  134. Kurz-HowTo: Video-DVDs unter Linux erstellen und brennen
  135. Kurz-Howto: Videos für PDAs konvertieren
  136. Neuer Internetanschluss und VoIP-Flatrate (Alice, Arcor, congster, sipgate, bellshare)
  137. Port-weiterleitungen bei OpenWRT
  138. Präsentation auf einem Mac
  139. Quicktime-Dateien für das Brennen auf DVD konvertieren
  140. SSH-fähiges Terminal
  141. Tipp: Double-Layer DVDs auch ohne DL-Superdrive in iDVD
  142. Umstieg auf Gentoo
  143. Unannehmlichkeiten bei der Linuxinstallation
  144. VoIP mit congster und asterisk
  145. Windows Server retten mit grml Linux