Rethinking number formatting
How to call renameat2 syscall in Ruby
Controlling fan speed the right way
Loadtesting EdgeRouter 4 in more depth
Making AlpineLinux load ZFS keys for all pools on startup
Reversing Yamaha SR-C20A [by Michael Obst]
Engineering a better Anagrammer, part II
Fixing grub 2.06 "error: verification requested but nobody cares"
Engineering a better Anagrammer, part I
Beating procrastination with these 4 simple (but hard) techniques
Arbitrary workflows with GitHub Actions for fun and pages
Loadtesting bunch of routers
Succeeding at a network loadtest
Failing at a network loadtest (for now)
Graphviz plugin for Jekyll
Adding capacity to an existing ext3-on-luks-on-LVM-on-raid1 setup
Making an iOS custom dialer app with Shortcuts and elm-spa
Cancel Shadow banning culture is alive and well at Hacker News
How cryptocurrencies keep going to the moon
6 burning questions for the self-proclaimed blockchain singularity (dfinity)
Putting an old digital clock (with an outdoor thermometer) on steroids
Yamaha YAS-207 vs. Shairport Sync over TOSLINK
Yamaha YAS-207's Minimal Client (and a Soundbar Fake)
Yamaha YAS-207's Bluetooth protocol reversed
Yamaha YAS-207's Bluetooth protocol: first real progress
Streaming Bluetooth Capture Data to Wireshark without Btsnoop Net Support Enabled
Yamaha YAS-207's Bluetooth protocol: basic recon
Reversing the Yamaha YAS-207 infrared remote protocol
Multi-weekend project intro: Putting the fear of AirPlay into Yamaha YAS-207 soundbar
Comparison of USB Bluetooth adapters in Linux
The evolution of (my) note taking
Urbit :: the good, the bad, and the insane
How to make a USB cable for APC Smart-UPS SC450RMI1U
Setting up secure boot with fully encrypted filesystems on Alpine Linux
Fixing IKEA Trofast lid with a simple 3d model