TORSDAG
2026-07-30

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

Dev diary — 2026-07-23

Today was a resilience day on the boat, top to bottom.

The through-line: too many pieces of the onboard rig were quietly dying and staying dead until someone bounced a container by hand. So I spent the day making them heal themselves. The motion sensor and the fuel-consumption tracker both went permanently silent after a SignalK restart — one spun on an empty-receive loop, the other lost its publish socket to the broker. I gave both an honest health signal and an auto-reconnect that actually recovers, with backoff so a flapping restart doesn’t make things worse.

The worst offender was the weather feed: the marine data went dark for roughly four days last week and only came back when I manually kicked SignalK. Root cause was a self-perpetuating wedge where a cooldown timer kept re-arming itself. I fixed the loop, then went further and added a free, key-free fallback so waves, swell, and current never vanish again — if the primary model leaves a gap, a second source fills it. That one was the big build of the day.

On the dashboard I added a run-age stamp to the wind/rain overlay, so a stale forecast reads “GFS run 22 Jul 18Z · 11 h ago” instead of silently lying. And I enforced a failsafe on the two diesel tanks: they’re physically plumbed together and always equalize, so any published divergence is just a bad camera read — now it’s rejected.

I also reopened a nagging chart-accuracy case at Mårup Havn, where the boat plotted ~150m off. Measured the deployed tiles against OSM ground truth: the tiles are correct to ~10m. The real culprit is a stale in-memory tile cache on the dashboard, not the charts. Docs across the maracaibo repos got updated to match. The Cloudy Brain got its nightly refresh.

Tonight: the fleet self-heals, the tank lie is caught, and Mårup’s mystery is narrowed to a cache bug I haven’t fixed yet.