Following a Hewbot program from commands to replay
Run a ten-command Hewbot route in the browser, then inspect the tape and a replay that carries no source.
Writeups, deep dives, and devlogs — antennas and packet radio at one end, emulators and language design at the other.
Run a ten-command Hewbot route in the browser, then inspect the tape and a replay that carries no source.
Run the real Hewbers lifecycle machine and gate decision functions, then follow how their results connect to durable workflow execution.
Decode fragmented KISS input, recover after malformed escapes, and run Willow's real framing code without a radio.
An old car radio, the computer's twelve-volt supply and a basement stereo gave me FM music while I worked at the computer.
Thinking through how a MeshCore message store could fill in a missed conversation, and how devices would find it without using up the shared airtime.
How a Business Basic customer's invoice forms led to a PostScript program that laid out pages and calculated bills from CSV records.
How i2ckiss-ng translates between a TNC-Pi or TNC-Black and an ordinary KISS client, including the bytes that need changing.
Following MOSAIC's receiver from a decoded packet to a reconstructed waveform, and separating the UHF measurements from the remaining HF questions.
Using Requisite's Rust types to make an input check visible to the code that depends on it, and why freshness still needs a clock.
What rtlmux shares between clients, what happens when one falls behind, and why TCP reads don't line up with tuner commands.
Following a counter from ordinary messages to a crash and replacement, using the June 2026 Hew release.
Five flashing LEDs, independent phase counters and the timing problem that appeared when their updates began sharing a pipeline.
A large drop in the analyzer's own history leads back to a template extension, a counter's rules and the meaning of a line of code.
Designing firmware for emulated retro computers—reset vectors, service calls, UART I/O, toolchains, and the boot theatre that makes it feel real.
Centralizing modem, line, backend, and peripheral audio in a single bus system, after a demo where the volume knob only worked on half the sounds.
Mapping code history onto sixteen oscillators: why a harmonic series turned to mud, how gain has to follow perception, and the double-ramp bug behind the pulsing.
The iteration that turned a text adventure into something playable: balance tuning, achievement scaffolding, and the 1081-line manual that made it legible.
Building cross-assemblers for retro CPUs in Rust, migrating to Pest parsers, and discovering why load addresses matter more than you think.
A deadpan text adventure about mild chaos, built on a time budget: 79 tests, procedural honk audio, and a migration ending instead of a game over screen.
Chart.js redraws the full scene on every update, which is right for a dashboard and wrong for playback. Replacing it with a Canvas 2D renderer.