Week 32: a subway that ate its passengers, and a project I talked myself out of
mc-serverarduinogame-labmoneybtn2toothygramhomelabsdrstockflow weeknotes
Short week — Monday to Thursday, because this is the first one of these and I wanted to see what it looked like before the week was over. Eleven repos touched. The two things worth reading about are both failures.
This is the index: a paragraph per project, and a link where there’s more.
The metro opened, trapped everyone, reopened
The Minecraft server got a subway — server-side on Paper minecarts, so nobody has to install anything to ride it. I picked a plugin, built Line 1 as a test, got it rendering on the web map, then walked into a station and could not get out. The walls a station generates are perfectly sensible for something arriving on rails and a sealed box for something arriving on foot.
Fixed, and written down as a lesson with teeth: if I generate geometry from config again, a human may approach it from an angle the config never considered.
→ mc-server, week 32 — the plugin choice, the web-map caveat, and a bake-off with no verdict yet.
StockFlow, scoped down to almost nothing
New repo on Monday. By Thursday I’d written the case against most of it.
There is no contributor earnings API — not rate-limited, not partner-gated, absent. The numbers I wanted to analyse are visible to a human in a dashboard and nowhere else, and everything I’d sketched on top of that assumption goes with it. Four days spent to avoid four weeks, which is the right trade and still doesn’t feel like a win.
→ stockflow, week 32 — what survives, and what I actually checked before concluding that.
The traffic light is real
The kids’ electronics track has its first finished project on actual hardware. Three LEDs, then five interchangeable programs on the same circuit so the wiring gets built once and the payoff repeats. One is a seven-pattern light show. One is deliberately calm — a single slow drift, nothing to react to — and it’s the one I keep running.
→ arduino, week 32 — the toolchain decision, and why the tutorials are generated rather than written twice.
Four lines that changed how a game feels
metamorph-ball gained a jelly form that squeezes through a grate,
squash-and-stretch and spark bursts fired on the same cues as its audio, and
synthesised sound instead of samples. None of that is the change that
mattered. The camera now follows the ball instead of waiting to be dragged,
and before that, playing it felt like operating a diagram.
→ game-lab, week 32 — the route, the forms, and a deploy key that can only write to one directory.
The homelab grew a control plane
Host provisioning is Ansible now and has actually been applied, not just written — a distinction that matters, because half-finished infrastructure-as-code is worse than none. It tells you the machine is in a state it isn’t. Monitoring went up, bound to the private network only, and the fleet configuration moved out into its own repo.
→ homelab, week 32 — including two things learned about drives that I’d have preferred to learn earlier.
A baseline taken before the antenna
The SDR receiver got characterised with nothing connected to it. That sounds like a non-experiment and it’s the opposite — once an antenna is attached, every number is the radio and the antenna and the room, with no way to separate them afterwards.
→ sdr, week 32 — and the full write-up is going to be this blog’s first proper article.
Everything else, briefly
ToothyGram stopped presenting itself as an official Telegram product, which it never should have. Otherwise: adopted a new upstream base, mapped where a fork can attach to it, and proved the cheapest attachment point costs exactly one modified upstream file. There’s a divergence log now, and a sync runbook, because the alternative is rediscovering all of it in six months.
The money project landed three long-lived branches — candle storage, chart event overlays, an ops detail popup. → moneybtn2, week 32.
Two repos were born: this blog, and the content-studio one that is deliberately not this blog. Both are still a README and an argument. The conventions repo gained one rule, which is that a repo must have a description at creation time — because nothing populates that field automatically and you notice eleven blank ones at once, months later.
Nothing happened on the academy project. One commit, recording a test result on the Mac and listing the iPad checks still to run. It’s on the list and it didn’t get attention, because the metro and the traffic light did.
The bit that made me laugh
Two branches on the money project both created decision record 0089.
Renumbering to 0107 and 0108 fixed it — except 0089 had also been
claimed on main in the meantime, so the survivor became 0109, followed by
a commit to index it and fix a stale reference that had survived the first two
renames.
Three commits of bookkeeping to land one document about something else entirely. Sequentially-numbered append-only records are a good convention right up to the point where you have parallel branches, and I don’t have a fix beyond noticing early.
Where this came from
Assembled from work between Monday 3 and Thursday 6 August 2026: roughly 90 commits across eleven repositories, plus the decision records written in that window. The repositories are private, so there is nothing to link to here — what’s above summarises things that are recorded, not recollected.
Load-bearing sources: mc-server 0015–0017 and its walkable-tunnel and
web-map notes; stockflow’s build-vs-buy case and platform data-access
research; arduino’s toolchain decision and tutorial 02; game-lab’s
metamorph-ball iteration C; homelab-infra 0015–0018; moneybtn2 0107–0109.
Nothing above describes something that wasn’t actually run or committed. The TrainCarts bake-off has no result yet and is reported as unfinished; the satellite and drone SDR work is a plan, not a result.