-
My latest ergo design: the Solanum
-
The server has been brought to life
-
It's time for a new server
-
Adapting to just 34 keys
-
Expanding LVM PVs and LVs
-
Stick a trackball on your keyboard
-
Audio controls in Home Assistant using MQTT
-
It's really easy to make a bike electric
-
Introducing another split keyboard: the Chicklet
-
Blue tape or Kapton? Why not both?
-
A 60% ortho keyboard with a trackpad: tamago v2
-
Streaming QR code detection in Home Assistant
-
It's always DNS; or: why I closed my Comcast Business account
-
Geocircles
-
Moving to Hugo and Cloudflare Pages
-
The homelab post
-
I designed another weird keyboard: tamago60
-
I made my custom keyboard wireless
-
The intransmissible packet
-
Keycard door access in Home Assistant
-
Typing on a weird keyboard: a retrospective
-
Adapting CEC controls to RS-232
-
Zip tie to smartify: the dumbest way to upgrade your appliance
-
Scraping wildfire timeseries data with NLP
-
Designing a split keyboard: the egg58
-
A demonstration of TDOA multilateration
-
How not to build a gaming PC
-
Revised smart doorbell adapter circuit
-
Pulseaudio configuration for soundboard routing
-
Adapting a smart doorbell to an incompatible digital chime
-
Dependency and build management for sourcemod with sourceknight
-
Tools to check for compromised Keepass passwords
-
A highly customizable RGB controller implementation for Arduino
-
Timelapses from Landsat data
-
An automated workflow for fetching and mosaicing Landsat imagery
-
Generating terrain meshes for 3D printing
-
A graphical tool for configuring Alesis V-Series MIDI controllers on Linux.
-
Reverse engineering the Alesis V-series SysEx protocol.
-
Using black magic to make a fast circular buffer.
-
Proving a mathematical curiosity.
-
Generating spectrograms the hard way with numpy.
-
Integrating GitLab and Google Calendar.
-
Adding custom fields to packets in ndnSIM 2.3 without forking the entire repository.
-
An idiot's guide to fulltext search in PostgreSQL.
-
Fun with integer division optimizations.
-
The problem with Python's datetime class.
-
Using bcache to back a SSD with a HDD on Ubuntu.
-
Parallelizing single-threaded batch jobs using Python's multiprocessing library.
-
The fruits of some recent Arduino mischief.
-
Optimizing MySQL and Apache for a low-memory VPS.
-
Information-centric networking for laymen.
-
Why are tuples greater than lists?
-
Quick postfix & dovecot config with virtual hosts (Ubuntu 16.04)
-
An easy way to visualize git activity
-
Adventures in image glitching
-
What's inside a PEM file?
-
My first adventure with Let's Encrypt on nginx, dovecot, and postfix
-
Demonstrating the double-DES meet-in-the-middle attack
-
A fun experiment with Twilio
-
No, fingerprints are not secure
-
Time clocking at the command line
-
A C++ encapsulation of the Linux inotify API
-
RIOT OS ported to TI Tiva C Connected Launchpad
-
Roll your own dynamic DNS (Ubuntu)
-
Quick and easy OpenVPN server config (Ubuntu)