Turn a video collection into a simulated broadcast or cable TV system
Turn a video collection into a simulated broadcast or cable TV system
Clear prose as a defense against vague and dishonest thought
A controlled language for writing unambiguous technical instructions
Units, dependencies, activation, process supervision, and everyday service management
Privilege modes, address spaces, system calls, and the boundary around the Linux kernel
Turning directed graphs into readable hierarchical diagrams
Finding and ranking snap candidates during interactive transforms
Generating and shrinking inputs that challenge general claims about code
Setting per-path behavior for line endings, diffs, merges, and archives
How GitHub detects repository languages and accepts overrides
Choosing graph storage and algorithms in Rust
A JSON-RPC interface between code editors and coding agents
Using overlapping three-character sequences for substring and fuzzy text search
Cache validation and conditional updates with ETag, If-None-Match, and If-Match
How hiding from exposure can preserve the shame it briefly relieves
Peers, cryptokey routing, handshakes, key rotation, and protocol boundaries
A framework for reasoning about an agent's memory, actions, and decision loop
Regenerating disposable implementations from durable intent and evaluations
Process selection, custom output, state codes, and portability across Unix systems
Cooperative cancellation for asynchronous and long-running work
How AI can support, displace, or bypass human deliberation
Connecting agents to capabilities and teaching them how to use those capabilities
Inwardness as a way of existing, choosing, and remaining committed
How understanding becomes a commitment that gives a life direction
How vectors represent data and make similarity search possible
Learned vector representations of meaning and similarity
Grounding language-model answers in retrieved source material
The settlement that created compensation processes and the TRC
Documenting the history and legacy of residential schools
The career, life, and legacy of the Yankees captain
Tangled's diskless, API-only AppView
An understandable consensus algorithm for replicated state machines
code to video with React
Relaxed Radix Balanced Vector
open-social publishing
Dev Log 58: 2026-06-22
Dev Log 57: 2026-06-21
Dev Log 56: 2026-06-17
Dev Log 55: 2026-06-14
A walkthrough of parsing markdown with a Zig library
Dev Log 54: 2026-06-10
Dev Log 53: 2026-05-13
Dev Log 52: 2026-05-08
v1.0.0-alpha.5
Dev Log 51: 2026-05-05
Firefox for Android users rejoice!
v1.0.0-alpha.3
v1.0.0-alpha
Dev Log 50: 2026-04-15
Dev Log 49: 2026-04-14
Dev Log 48: 2026-04-11
Writer is now called Commonplace!
Dev Log 47: 2026-03-26
First release of the Twister API
Release Notes!
Dev Log 46: 2026-03-07
Dev Log 45: 2026-01-27
Dev Log 44: 2026-01-23
Dev Log 43: 2026-01-09
Dev Log 42: 2026-01-05
Dev Log 41: 2025-12-31
Dev Log 40: 2025-12-25
Dev Log 39: 2025-12-23
Dev Log 38: 2025-12-18
For the F# advent calendar this year, I wrote a KDL parser.
Dev Log 37: 2025-12-16
Dev Log 36: 2025-12-14
Dev Log 35: 2025-12-09
Dev Log 34: 2025-12-08
Dev Log 33: 2025-12-07
Dev Log 32: 2025-12-04
Dev Log 31: 2025-12-03
Dev Log 30: 2025-12-02
Dev Log 29: 2025-12-01
Owais gets a little emotional at the end
my arch nemesis is the act of release planning
procrastinating productively & v0.4.0 of beacon!
More pictures in this one!
Released v0.3.0 of Beacon
Feedback is a gift
In a funk
Easing my own expectations of myself with better planning
BLARGH
I need more eyes on my code
A little delayed, and a little short today.
Is my life just walking along abstract syntax trees now?
In which I try to write more
It's all CLIs & TUIs
Don't you just love sharing your work with folks?
Word of the day: READING
Papers papers papers