Notes on the things that broke, and what fixed them.
Subscribe via RSSPart 5 of HazShield AI. I put a "run a simulation" button on a public control room and had to solve the real problem behind it: how do you let anyone trigger an expensive, resource-hungry plume without letting them take the whole system down?
Part 3 of HazShield AI: an async worker cluster folds thousands of alarms into incidents, hands hazard context to a local LLM, and learns the hard way that a model can write perfect JSON and still misdiagnose a methane leak.
An end-to-end build log: a bare GMKtec mini PC to a public-facing OpenStack cloud you can SSH into, with no public IP and no port forwarding — including every wall I hit and how I got past it.