Blog
The following is a list of articles I've written. This is also available in RSS format.
2023
- 2023-07-07: Building a VPN with an AMPRNet BGP allocation
- 2023-07-05: Setting up a static DNF repository
- 2023-06-15: Rainbow keyboard
- 2023-05-01: I performed a button swap on my mouse
- 2023-03-21: A script that hides AI topics from Hacker News
- 2023-02-15: Some lesser known WireGuard settings
- 2023-02-07: Blatant self-advertising on the IPv6 Canvas
- 2023-01-17: Lazy search for Mastodon accounts
2022
- 2022-12-07: I re-implemented ls to query the Steam API
- 2022-10-02: An analysis of personal ASNs in the wild
- 2022-09-09: Website updates
- 2022-06-26: Rickrolling the internet
- 2022-06-23: Using a Steam Controller with the Nintendo Switch
- 2022-06-13: Getting Visual Paradigm to launch on Fedora 36
- 2022-05-21: Field Log: First look at the NanoVNA
- 2022-05-18: Commit syncing across hosted GIT instances
- 2022-04-06: Making my UDM-Pro scream
- 2022-01-19: Monocular depth mapping in Blender
- 2022-01-06: Unfinished projects and failed ideas
2021
- 2021-12-03: A rusty guide to quaternions
- 2021-11-14: Adventures in BGP: routing my own public IPv4 address space
- 2021-09-28: An overview of the tech on a complex FRC robot
- 2021-07-07: Configuring a native SSH server on Windows 10
- 2021-04-20: Building a cheap APRS digipeater
- 2021-03-14: How I flashed QMK to my Vortex Core
- 2021-02-25: Using KBFS as a makeshift maven server
- 2021-01-16: Tunneling a printer from a home network to a VPN
2020
- 2020-12-31: 2020 Wrap-Up
- 2020-12-19: How I have tweaked my Minecraft client to be 'just right'
- 2020-12-04: Upgrading my chromebook
- 2020-11-21: Connecting to a Minecraft server over IRC
- 2020-11-06: My first mechanical keyboard: The Vortex Core
- 2020-10-24: Using Bazel to create Minecraft modpacks
- 2020-10-15: Mounting Google Drive accounts as network drives
- 2020-10-01: Reading metadata from a bitmap file
- 2020-09-24: My workflow: video conference edition
- 2020-09-17: Building a mini maven server
- 2020-09-10: Integrating GitHub Codespaces with FRC
- 2020-09-03: Compiling AVR-C code with a modern build system
- 2020-08-23: Taking notes with Markdown and LaTeX
- 2020-08-13: Notes from FRC: Autonomous point-to-point navigation
- 2020-08-03: Notes from FRC: Converting joystick data to tank-drive outputs
- 2020-06-05: Flashing code to a 32u4 chip
- 2020-05-19: Running RoboRIO firmware inside Docker
- 2020-04-20: Ludum Dare 46: Jamming with friends
- 2020-02-21: Robot reveal: Darth Raider
- 2020-01-20: Compiling BrainFuck with a shell script
2019
- 2019-12-11: I used cron for the first time
- 2019-11-20: Programming a live robot
- 2019-10-05: Using an RNN to generate Bill Wurtz notes
- 2019-09-11: Building images from binary data
- 2019-09-07: Doing Python OOP the wrong way
- 2019-08-27: I did some cleaning
- 2019-08-24: Keyed data encoding with Python
- 2019-08-10: My weird piece of EDC
- 2019-07-15: Mind map generation with Python
- 2019-07-13: Taking a look back at GMAD
- 2019-07-06: Scraping FRC team's GitHub accounts to gather large amounts of data
- 2019-07-01: devDNS
- 2019-06-27: I had some fun with a router
- 2019-06-27: Hunting snakes with a shotgun
- 2019-06-26: BashSmash
- 2019-06-24: The language hunt: Part 2
- 2019-06-23: I gave Google's CTF a short try and learned a thing or two
- 2019-06-21: What I have learned from 2 years of FRC programming
- 2019-06-16: Graphing the relation between wheels and awards for FRC
- 2019-06-12: GitHub's CSS is boring. So I refreshed the design
- 2019-04-30: The language hunt
- 2019-02-20: Robot reveal: HATCHField
2018
- 2018-06-27: Using a python script to create devRant posts based on the style and content of another user
2017
- 2017-11-24: We lost a weather balloon in another country