bytes.zone
Should we design for iffy internet?
LFFS update, June 2025
a dilemma, or is it a conundrum? Maybe it's a dilendrum!
some time tracking results
Local-First Foundations
LFFS: both a TUI and a GUI?
Depth Year - January
early thoughts on using beeps
LFFS: Simplicity vs Efficiency
Local-First From Scratch, part 1
Local-First From Scratch
CRDTs for tinyping
doing in a day what I could not in 6 months
you can try tinyping, if you want
platform engineers work on the meta-product
what is platform engineering?
platform engineer at PayNearMe
Notes from setting up Nomad
Kubernetes whoops
tinyping's stack
tinyping and scrub moves
tinyping
elm-duet 0.1.0
Stopping thing-a-month
elm-duet
tinyping month 2
Kratky in the basement
elm-duet
seeing the forest through the trees
app architecture
what's between two pings?
messing around with statistics
wrapping up month 0
thing-a-month (awareness)
sourcing secrets from 1Password
running this blog on Kubernetes
Ukulele seems nice
getting back off the CI train
getting on the CI train
moving Kubernetes to New Jersey
first light on HTTP
a Kubernetes shopping list
shopping for a scheduler
thing-a-month
kicking off thing-a-month
meta: micro posts are in the feed now
thing-a-month (meta)
modeling CRDTs in Alloy - counters
sticky table headers with bottom borders
engineering design systems at Vendr
modeling CRDTs in Alloy - introduction and the importance of idempotence
Modeling in-flight requests in Alloy
growing hydroponic lettuce
tsort
Trying and Failing to Implement Artificial Ignorance
crunch_str
once p is true, it's always true
montage
launch ftw, part 13
moving genrules to library rules
buck2 basics
Do I want to learn Dafny?
launch ftw, part 12
launch ftw, part 11
launch ftw, part 10
launch ftw, part 9
launch ftw, part 8
launch ftw, part 7
launch ftw, part 6
launch ftw, part 5
launch ftw, part 4
launch ftw, part 3
launch ftw, part 2
launch ftw, part 1
Modeling Git Internals in Alloy, Part 3: Operations on Blobs and Trees
Modeling Git Internals in Alloy, Part 2: Commits and Tags
Modeling Git Internals in Alloy, Part 1: Blobs and Trees
aligning Markdown tables in Helix
how to add weak fairness on actions
give aliases when inverting relations
what is the randomart image for?
fields as sets
signing commits with SSH keys
What does expect 1 mean in Alloy?
advice you might as well take
pagerank for my Obsidian notes
The Value of a Model is More Making than Having
Modeling Database Tables in Alloy
Digital Gardening in Obsidian
Scope in the TH element
Projects
bold
Alloy
learning Alloy
home recycling
being the wandering toolmaker
tree-grepper
The Four Rules of Simple Design: In Conclusion
Rule 4: Code for Now
Rule 3: Centralize Behavior
Rule 2: Clarify Your Intent
Rule 1: Simplify When the Program Works
My Take on the Four Rules of Simple Design
rbt
Trying (and Failing) to Speed Up String.startsWith
nix-script
elm-csv, package and talk
elm-csv: be as boring—and as fast—as possible
elm-csv
Should Elm files be long or short?
Learning Requires Effort
Tracking and Lasting
time-to-horse
Phantom ID Types
Bang Shortcuts
the hyper key
elo-anything
Tradeoffs of Custom ID Types in Elm
Renaming Files with Braces
state-transition tables
clown computing
Fuzzy Finding with Levenstein Distance
callCabal2nix
git root
bad-datalog
tmux-session
Reducing Asset Size With Subsetting
a batch at the Recurse Center
Robot Buttons from Mars
Joyful Particles in Elm
The State of Elm 2017 (Extended Edition)