// THE LONG VERSION

Archive

This site has been around since 2018. Here is roughly what I was doing along the way.

2018

Printers, CI and too many projects

I started the site with posts about its own CI setup, printer gantry revisions, OctoPrint, the pick-and-place machine and increasingly ambitious FPV hardware.

2019

Mostly flying

I spent considerably more time flying the three-inch FPV builds than writing about them. Most of these posts are a video and one sentence.

2020

Self-hosted streaming

I tried Owncast, put the video behind a CDN and ended up operating the streaming stack as another small infrastructure project.

// EVERYTHING DATED

Full index

2026

Taking SkyeEngine Fabric to 10 Gigabitsblog What the Preview Token Actually Approvesnotebook The State File Was Right. The Route Was Wrong.notebook When the WAN Failover Script Tripped Over Its Own Lockblog Three Judges Looked at the GLaDOS 3.0 Corpusblog Three-Way Agreement Across the GLaDOS Judgesnotebook Why a GLaDOS Metaphor Triggered the Safety Reviewnotebook The Tunnel Wasn't Down in Both Directionsnotebook Moving the KNET Queue Onto the Routernotebook Making KNET Behave Under Loadblog Building the GLaDOS 3.0 Corpusblog Monitoring KNET and HubNblog Importing the Network That Already Existedblog Moving KNET and HubN to Ansibleblog Four Dead Nodes and a Flat Graphnotebook Testing the HubN Peering Workflowblog When Generated BGP Config Parsed but Routing Failednotebook My Fast Disk Was Compressing Zeroesnotebook Testing SkyeEngine Fabricblog The Five-Millisecond Timernotebook Preventing Registry Read Failures From Withdrawing Every ROAnotebook Making HubN Registry Updates Durableblog Finding the Broken Delegation Above a Signed Zonenotebook Fixing HubN's DNSSEC and RPKI Publicationblog Revoicing the Whole Assistant Sidenotebook A SkyeEngine Updateblog The 120B Model Learned the Bad Parts Toonotebook What Belongs in SkyeEnginenotebook Why Filenames Weren't Enoughnotebook Stopping a Rewrite When Its Source Has Changednotebook What Counts as a Conversation?notebook Handling Contract Changes Without Retrying Old Worknotebook Tracking Agent Work Outside the Chat Windowblog Handling Partial Output After an Agent Crashnotebook Running a Multi-Agent Investigation in SkyeEngine Codeblog The SkyLight Test That Made the Control Worsenotebook Restoring a Player on Another Moonblog Recording EvidenceRunner Artifacts in the Manifestnotebook Turning a Debugging Ritual Into a Toolblog The Moon Disappeared Because Its Pixels Were in the Wrong Placeblog Finding the Wrong Receiver Point in the Lighting Shadernotebook Lighting One World With Anotherblog I Was the Message Busblog Why I Stopped Routing Agent Work by Handnotebook Scars Are Currencynotebook Building a Multi-World Coordinate System in Unreal Engineblog Per-Client Floating Origins for Planetary Multiplayernotebook World Down Stops Working on a Planetblog Body-Relative Gravity on a Spherical Worldnotebook Giving Ashes of the Unbound a Visual Languageblog Adding Dedicated-Server Persistence to Ashes of the Unboundblog Building Ashes of the Unbound's Gameplay Frameworkblog Versioning Save Data as Ordered Chunksnotebook Preserving RPKI Manifest Counters Across Restartsnotebook New Certificates and Clock Skewnotebook