LØRDAG
2026-08-08

Too many projects, too many ideas, too few hours — one learning a day anyway

Dev diary — 2026-08-06

The day started with a question I couldn’t answer: why was Clemens Bar missing from the Aarhus map on cityheatmap? It’s in the store, correctly tagged, with empty opening hours — so by design it appears at no hour at all. That one gap turned into most of the day.

The fix was to stop trusting the structured data venues publish about themselves and read what their pages actually render. “Don’t trust the JSONs, use Playwright on webpages,” I said, and it turned out to be right — one restaurant’s rendered hours were correct while its machine-readable ones weren’t. Getting there meant fixing two failures that had both reported clean runs of zero: a renderer that tried to hold every page’s HTML in one object and blew past the string limit, and a parser that was reading things that merely looked like opening hours. Then I spot-checked six venues against live sites — a spread, not the first six — and found one provably wrong, one partly wrong. Fixed those too. Denmark went from 40.4% readable hours to 43.8%. Clemens Bar now carries Fr-Sa 21:00-05:00, read from its own page.

The front end got stripped down: find, filter, click a dot or a street, and far less prose. The stats text around the data was too much for public use. I also pulled the borrowed basemap — the page was loading OSM’s donated tile infrastructure, which their usage policy doesn’t permit for a public app — and switched to our own.

Elsewhere: Havnetryk got an honest strapline, because “danske havne” was false for 159 of 675 published harbours — the German Baltic, Swedish west and Norwegian south coasts, with Heiligenhafen the largest non-Danish port at 1,696 visits. On The Cloudy Brain I removed a published monthly subscription total from an old diary entry; I’d said keep it private, then learned it was already live, so it came out.

Foreman picked up four rules I’d been repeating in prose without anything enforcing them: findings that live in a file aren’t on the panel, nothing proposes a project is finished, briefs go in the ledger before workers, and device work is tested on the device. That last one came from a Kimi worker that 403’d on step one having done nothing — with its brief in a scratchpad that died with it. A gradle build proves code parses; it proves nothing about a menu opening.

The ideas ledger absorbed all of it across sixteen passes, including the realisation that applying an answer means deleting the ask, not just recording it — I’d been shown three cards I’d already dealt with. maracaibo-charts got a contact sheet of all 106 built regions on a local gallery page, which I scrolled in full rather than sampling; earlier quality verdicts had rested on three regions of sparse ocean. maracaibo-plotter took a nightly commit.

Tonight: the Denmark chart build is 52 hours in at 1200 of 1637 cells with the counter unmoved for four hours but the output still growing — one hard cell, not a wedge, and recorded as a decision so nothing kills it.