My captcha never protected against spam, only against laziness
A second spam comment sailed straight past my captcha, honeypot and rate-limiting. Why those layers only stop lazy bots, and the content-based filter that closes the real gap.
Lessons learned, problems and solutions
A second spam comment sailed straight past my captcha, honeypot and rate-limiting. Why those layers only stop lazy bots, and the content-based filter that closes the real gap.
Every 24 hours a script asks a model to sweep the news and return JSON. One morning it ships a two-week-old announcement as verified fact, and the cause is one word of JavaScript.
Blank page for humans, spam for Googlebot, and an antivirus silent on 373 files. Tracing the entry point through eighteen seconds of logs, then making the intrusion impossible to replay.
An LLM invents plausible citations then confirms they're real. The only fix: resolve every source against an external API. A three-filter pipeline.
Wrap at every layer or once at the boundary? Even Dave Cheney changed his mind. The real criterion: the API contract %w creates with the caller.
An LLM reviewing its own code over-rates it: a measured bias. Blind reviewer, finding with a receipt, refute panel: the architecture of an AI review that holds.
An AI-generated test that passes proves nothing until it can go red. Mutation testing exposes the phantom tests, with a Go example to prove it.
My global Claude Code config in four layers, reinstallable in one command, and one rule running through all of it: the only rigor that counts is the one a model can't grant itself.
How I optimized torrent title matching using 39,000 real filenames and an AI assistant — and the silent bug my green benchmark never tested.
time.Sleep in concurrent tests is a gamble. testing/synctest replaces the real clock with a virtual one inside an isolated bubble — deterministic, instant, no more CI timing failures.