Tags
3d
3d design
3d printing
alpine linux
android
apu
beam
blockchain
bluetooth
data
datahand
elixir
elm
elm spa
erlang
fun
fusion360
geometry
github
google drive
hawa
internet
ios shortcuts
java
javascript
jekyll
keyboards
latex
legacy software
making
meta
net loadtest
nintendo
non tech
odorik
php
programming
quickie
raspi
recovery
reversing
ruby
secureboot
security
switch
sysadm
unix
vpp
x509
yas 207
zfs
3d {feed}
Tinyrenderer in Elixir (part of it, anyway)
Cracking the three.js object fitting (to camera) nut
3d design {feed}
Adding a layer indicator light to Svalboard
Moving away from Autodesk Fusion 360... to where?
Improving physical security at a hotel
Fixing IKEA Trofast lid with a simple 3d model
3D printed curtain holder
Fixing an umbrella with 3D printing
Designing a curtain rod holder for 3D printing in Fusion 360
Designing a 3d-printed anti-gravity pen holder
Designing and 3d-printing a jacket button
Designing a flower stand for 3D printing
Designing a towel rack for 3D printing in Fusion 360
Designing a 3d printed vegetable peeler hook
3d printing {feed}
Adding a layer indicator light to Svalboard
Improving physical security at a hotel
Fixing IKEA Trofast lid with a simple 3d model
3D printed curtain holder
Fixing an umbrella with 3D printing
Designing a curtain rod holder for 3D printing in Fusion 360
Designing a 3d-printed anti-gravity pen holder
Designing and 3d-printing a jacket button
Designing a flower stand for 3D printing
Designing a towel rack for 3D printing in Fusion 360
Designing a 3d printed vegetable peeler hook
alpine linux {feed}
Grub 2.12 broke my secureboot setup (again)
How to ditch grub for UEFI (secure)booting
Upgrading grub on my alpine with secureboot setup
How to run an unattended install of Alpine Linux
Getting Erlang's observer working on Alpine Linux
Making AlpineLinux load ZFS keys for all pools on startup
Fixing grub 2.06 "error: verification requested but nobody cares"
Setting up secure boot with fully encrypted filesystems on Alpine Linux
android {feed}
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
apu {feed}
Three commands to make serial console awesome
Loadtesting bunch of routers
Failing at a network loadtest (for now)
beam {feed}
Tinyrenderer in Elixir (part of it, anyway)
BEAMitude: What if GenServer.call times out?
Getting Erlang's observer working on Alpine Linux
blockchain {feed}
How cryptocurrencies keep going to the moon
6 burning questions for the self-proclaimed blockchain singularity (dfinity)
Urbit :: the good, the bad, and the insane
bluetooth {feed}
Reversing Yamaha SR-C20A [by Michael Obst]
Putting an old digital clock (with an outdoor thermometer) on steroids
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
Multi-weekend project intro: Putting the fear of AirPlay into Yamaha YAS-207 soundbar
Comparison of USB Bluetooth adapters in Linux
datahand {feed}
Adding a layer indicator light to Svalboard
A love letter to the DataHand class of keyboards
elixir {feed}
Tinyrenderer in Elixir (part of it, anyway)
BEAMitude: What if GenServer.call times out?
erlang {feed}
BEAMitude: What if GenServer.call times out?
Getting Erlang's observer working on Alpine Linux
fun {feed}
Deep dive into Fibonacci computation in Ruby
The One True Way™ to handle temporary files
Implementing toy RSA in Ruby, on a dare
Tinyrenderer in Elixir (part of it, anyway)
Rethinking number formatting
How to call renameat2 syscall in Ruby
Controlling fan speed the right way
Making AlpineLinux load ZFS keys for all pools on startup
Fixing grub 2.06 "error: verification requested but nobody cares"
The evolution of (my) note taking
Setting up secure boot with fully encrypted filesystems on Alpine Linux
My email address
fusion360 {feed}
Adding a layer indicator light to Svalboard
Moving away from Autodesk Fusion 360... to where?
Fixing IKEA Trofast lid with a simple 3d model
3D printed curtain holder
Fixing an umbrella with 3D printing
Designing a curtain rod holder for 3D printing in Fusion 360
Designing a 3d-printed anti-gravity pen holder
Designing and 3d-printing a jacket button
Designing a flower stand for 3D printing
Designing a towel rack for 3D printing in Fusion 360
Designing a 3d printed vegetable peeler hook
google drive {feed}
How to recover deleted files from Google Drive
hawa {feed}
Easily hosting GIT repos on forgejo
Serving CA certificates on the cheap
Running traefik in a less braindead way
Installing Podman on Alpine Linux
Project intro: Going Cloud Native for internal services
internet {feed}
Easily hosting GIT repos on forgejo
Serving CA certificates on the cheap
Running traefik in a less braindead way
Installing Podman on Alpine Linux
Project intro: Going Cloud Native for internal services
Running one's own root Certificate Authority in 2023
6 burning questions for the self-proclaimed blockchain singularity (dfinity)
Urbit :: the good, the bad, and the insane
jekyll {feed}
Quickfixing the Jekyll SEO plugin (to ingest page description)
Graphviz plugin for Jekyll
legacy software {feed}
Traveling 20+ years back in time
How to install low dependency Let's Encrypt client
Upgrading SSL (TLS) on Kerio Workspace 2.1.4
meta {feed}
Quickfixing the Jekyll SEO plugin (to ingest page description)
A love letter to the DataHand class of keyboards
Beating procrastination with these 4 simple (but hard) techniques
Graphviz plugin for Jekyll
The evolution of (my) note taking
net loadtest {feed}
Loadtesting EdgeRouter 4 in more depth
Loadtesting bunch of routers
Succeeding at a network loadtest
Failing at a network loadtest (for now)
nintendo {feed}
How to split a big XCI/NSP file to store it on a FAT32
Understanding the Nintendo Switch secure boot vulnerabilities
programming {feed}
Extracting data from Goethe Zertifikat B1 Wortliste pdf
Implementing toy RSA in Ruby, on a dare
How to avoid having ssh mangle spaces in command-line args
Parallelize batch runs with style
Parallelize YouTube downloads
Making SVD-Loader for Ghidra play nice with RP2040
Nerdsniped: clang++-13 infinite loop bug
Traveling 20+ years back in time
Rethinking number formatting
Engineering a better Anagrammer, part II
Engineering a better Anagrammer, part I
Arbitrary workflows with GitHub Actions for fun and pages
Cracking the three.js object fitting (to camera) nut
Convert arbitrary IP range to a set of CIDR
Flush INBOX via IMAP
How to fix the `AC_LIB_PREPARE_PREFIX is m4_require'd but not m4_defun'd`
Wordpress leading whitespace fix
A HTTP(S) healthcheck script
Why I LOVE Apache httpd hooks and pools
A simple Ruby-based HTTP request tracer
GeoIP update client + server
Apache patch to optionally disable Partial Content
Spec.rb, a saner alternative to Markdown
Conway's Game of Life redefined
On file change run...
quickie {feed}
Safely aborting long running shell scripts
Grub 2.12 broke my secureboot setup (again)
How to ditch grub for UEFI (secure)booting
Deep dive into Fibonacci computation in Ruby
Quickfixing the Jekyll SEO plugin (to ingest page description)
Easily hosting GIT repos on forgejo
The One True Way™ to handle temporary files
Implementing toy RSA in Ruby, on a dare
Upgrading grub on my alpine with secureboot setup
How to avoid having ssh mangle spaces in command-line args
Parallelize batch runs with style
How to split a big XCI/NSP file to store it on a FAT32
Parallelize YouTube downloads
Nerdsniped: clang++-13 infinite loop bug
IPv6 Unique Local Addresses (ULA) for the win
Three common Regular Expression gotchas
Fixing IPv6 on UniFi guest wireless network
Improving physical security at a hotel
How to run an unattended install of Alpine Linux
Tinyrenderer in Elixir (part of it, anyway)
Generating birthday party invitations
How to install low dependency Let's Encrypt client
Three commands to make serial console awesome
Replacing pkexec with sudo
Configuring IPv6 on EdgeRouter for Fiber7 and PiHole
Fixing memif's poor performance in a VPP tutorial
Getting Erlang's observer working on Alpine Linux
Making AlpineLinux load ZFS keys for all pools on startup
raspi {feed}
Making SVD-Loader for Ghidra play nice with RP2040
Yamaha YAS-207 vs. Shairport Sync over TOSLINK
Multi-weekend project intro: Putting the fear of AirPlay into Yamaha YAS-207 soundbar
reversing {feed}
Making SVD-Loader for Ghidra play nice with RP2040
Reversing Yamaha SR-C20A [by Michael Obst]
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
ruby {feed}
Deep dive into Fibonacci computation in Ruby
Quickfixing the Jekyll SEO plugin (to ingest page description)
Implementing toy RSA in Ruby, on a dare
How to avoid having ssh mangle spaces in command-line args
Parallelize batch runs with style
Rethinking number formatting
How to call renameat2 syscall in Ruby
Engineering a better Anagrammer, part II
Engineering a better Anagrammer, part I
Graphviz plugin for Jekyll
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)
secureboot {feed}
Grub 2.12 broke my secureboot setup (again)
How to ditch grub for UEFI (secure)booting
Upgrading grub on my alpine with secureboot setup
Fixing grub 2.06 "error: verification requested but nobody cares"
Setting up secure boot with fully encrypted filesystems on Alpine Linux
security {feed}
Running one's own root Certificate Authority in 2023
Understanding the Nintendo Switch secure boot vulnerabilities
Improving physical security at a hotel
switch {feed}
How to split a big XCI/NSP file to store it on a FAT32
Understanding the Nintendo Switch secure boot vulnerabilities
sysadm {feed}
Safely aborting long running shell scripts
Grub 2.12 broke my secureboot setup (again)
How to ditch grub for UEFI (secure)booting
Easily hosting GIT repos on forgejo
The One True Way™ to handle temporary files
Serving CA certificates on the cheap
Running traefik in a less braindead way
Installing Podman on Alpine Linux
Project intro: Going Cloud Native for internal services
Running one's own root Certificate Authority in 2023
Upgrading grub on my alpine with secureboot setup
IPv6 Unique Local Addresses (ULA) for the win
Three common Regular Expression gotchas
Fixing IPv6 on UniFi guest wireless network
Setting Xorg screen layout by display serial numbers
How to run an unattended install of Alpine Linux
How to install low dependency Let's Encrypt client
Upgrading SSL (TLS) on Kerio Workspace 2.1.4
Three commands to make serial console awesome
Replacing pkexec with sudo
Configuring IPv6 on EdgeRouter for Fiber7 and PiHole
Fixing memif's poor performance in a VPP tutorial
Controlling fan speed the right way
Loadtesting EdgeRouter 4 in more depth
Making AlpineLinux load ZFS keys for all pools on startup
Fixing grub 2.06 "error: verification requested but nobody cares"
Loadtesting bunch of routers
Succeeding at a network loadtest
Failing at a network loadtest (for now)
Adding capacity to an existing ext3-on-luks-on-LVM-on-raid1 setup
How to make a USB cable for APC Smart-UPS SC450RMI1U
Setting up secure boot with fully encrypted filesystems on Alpine Linux
Convert arbitrary IP range to a set of CIDR
How to setup passwordless disk encryption in Debian Etch
A HTTP(S) healthcheck script
A simple Ruby-based HTTP request tracer
GeoIP update client + server
Apache patch to optionally disable Partial Content
How to hunt for kernel memory leaks
Guard free space and status of your RAID devices
Eicar and Gtube are your friends
How to prevent hotlinking without mod_rewrite
unix {feed}
Safely aborting long running shell scripts
Grub 2.12 broke my secureboot setup (again)
How to ditch grub for UEFI (secure)booting
Easily hosting GIT repos on forgejo
The One True Way™ to handle temporary files
Serving CA certificates on the cheap
Extracting data from Goethe Zertifikat B1 Wortliste pdf
Running traefik in a less braindead way
Installing Podman on Alpine Linux
Project intro: Going Cloud Native for internal services
Running one's own root Certificate Authority in 2023
Upgrading grub on my alpine with secureboot setup
How to avoid having ssh mangle spaces in command-line args
Parallelize batch runs with style
How to split a big XCI/NSP file to store it on a FAT32
Parallelize YouTube downloads
IPv6 Unique Local Addresses (ULA) for the win
Three common Regular Expression gotchas
Fixing IPv6 on UniFi guest wireless network
Setting Xorg screen layout by display serial numbers
How to run an unattended install of Alpine Linux
Generating birthday party invitations
How to install low dependency Let's Encrypt client
Upgrading SSL (TLS) on Kerio Workspace 2.1.4
Three commands to make serial console awesome
Replacing pkexec with sudo
Configuring IPv6 on EdgeRouter for Fiber7 and PiHole
Fixing memif's poor performance in a VPP tutorial
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
Loadtesting bunch of routers
Succeeding at a network loadtest
Failing at a network loadtest (for now)
Adding capacity to an existing ext3-on-luks-on-LVM-on-raid1 setup
6 burning questions for the self-proclaimed blockchain singularity (dfinity)
Putting an old digital clock (with an outdoor thermometer) on steroids
Multi-weekend project intro: Putting the fear of AirPlay into Yamaha YAS-207 soundbar
Comparison of USB Bluetooth adapters in Linux
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
Convert arbitrary IP range to a set of CIDR
Flush INBOX via IMAP
How to fix the `AC_LIB_PREPARE_PREFIX is m4_require'd but not m4_defun'd`
How to setup passwordless disk encryption in Debian Etch
A HTTP(S) healthcheck script
Why I LOVE Apache httpd hooks and pools
A simple Ruby-based HTTP request tracer
GeoIP update client + server
Apache patch to optionally disable Partial Content
How to hunt for kernel memory leaks
Spec.rb, a saner alternative to Markdown
Guard free space and status of your RAID devices
Eicar and Gtube are your friends
How to prevent hotlinking without mod_rewrite
Conway's Game of Life redefined
On file change run...
yas 207 {feed}
Reversing Yamaha SR-C20A [by Michael Obst]
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