2026
-
A window AC without the app
Controlling a Midea window unit over the LAN with a self-hosted web UI: the cloud-only key problem, a device that allows exactly one TCP connection, and why a simulator that lies to you is worse than no simulator.
-
The print queue that reported success and printed nothing
A Canon imageRUNNER with Department ID Management accepts your job, discards it, and tells CUPS everything went fine. The fix is two lines of undocumented Canon PJL; the lesson is that a raw socket queue has no idea whether it printed.
-
A tablet as a second Hyprland monitor, or: 235 ms of good intentions
The tool built specifically for turning an Android tablet into a Linux second monitor measured 235 ms of host-side latency. A game-streaming stack nobody designed for this measured 10. Along the way: a capture loop capped at 10 fps by one constant, an AppImage that silently fell back to software encoding, and a firewall rule that made the problem look like an application bug.
-
Dragging a reMarkable 2 forward three years of OS releases
A hand-modded rM2 stuck on OS 3.2.3 with rm2fb and a compiled-in swipe script, moved to 3.27.3.0 and Oxide in two stages. The launcher fails to start until you notice it is blocking on wpa_supplicant, the same bug returns after a reboot with no screen left to fix it from, and three of the fonts involved default to a weight nobody wants.
-
WWAN on the P14s, continued: data works, voice never will
A follow-up to the eSIM post. The CMLink profile finally carries data on APN 3gnet, the boot-time radio warning turns out to be a red herring, and the RM520N-GL cannot place a phone call at all.
-
A standby authenticator, and the backup I decided not to automate
Self-hosting Ente Auth as a cold standby for TOTP codes: why it needs three containers instead of five, where the login code goes when there is no SMTP, the registration window a fresh certificate opens, and why automating the backup would have been the wrong call.
-
Self-hosting Vaultwarden, and the one path that ruins it
Deploying Vaultwarden behind nginx on a small VPS: closing signups properly, why disabling the web vault is worth the inconvenience, and the client-server version skew that produces a completely useless error message.
-
Metrics and a Homepage
VictoriaMetrics instead of Prometheus, why host networking is the simpler choice for a loopback-only metrics stack, and validating a homepage dashboard config before it takes the service down.
-
Encrypted offsite backups that verify themselves
Nightly age-encrypted backups from a small VPS to consumer cloud storage: why two different mechanisms for two shapes of data, why every run restores its own output, and the circular dependency that makes an encrypted backup useless.
-
PGP and SSH keys on a YubiKey
Moving a PGP key onto a YubiKey, restoring it on a second machine, wiring pass-git-helper into git, and generating FIDO2-backed SSH keys. Including which of it GitHub and GitLab refuse to support.
-
eSIM and WWAN on a ThinkPad P14s under Arch
Getting the Quectel RM520N-GL 5G modem, FCC unlock, and an eSIM profile working on Arch: firmware, lpac, and the AT commands in between. Ends with the one part that still does not work.
-
Linux tips and tricks
An Arch grab bag worth writing down: a three-branch dotfiles model with skip-worktree, dnsmasq under NetworkManager, keyd, amd_pstate, and the small fixes that are annoying to rediscover.
-
Forgejo on a small VPS: a backup forge
A complete self-hosted Forgejo deployment on a small VPS, pull-mirroring Codeberg, GitLab and GitHub. Every config file and script, plus the memory tuning that does not transfer between machines.
2025
-
MATLAB
Two MATLAB releases, two different glibc crashes on Arch, both diagnosed by reading the crash rather than guessing. Includes the R2026a WebGL fallback fix.
-
nixos
A short reference of the NixOS store, garbage collection and rebuild commands worth keeping to hand.
-
Networking in linux
WireGuard, GlobalProtect and eduroam 802.1X connections set up from the command line with nmcli.