ai
Technical notes on web development, DevOps, and AI integration.
67 articles
- 11:31ai
Duplicate-Gate Blind Spot: Vector Coverage and 0.50
A cosine-similarity duplicate gate is only as good as its vector coverage. Lessons from a 32-article blind spot and a self-measured 0.50 cutoff.
TL;DR: I nearly trusted a duplicate check running on a half-populated index, since 164 of 196 articles had vectors and the missing 16% never showed up. The fix was a backfill plus a self-check confirming each article's own title returns its slug. The 0.50 cutoff isn't universal either; measure your corpus's own score distribution first.
#embedding#python#automation - 16:18ai
Automate Browser AI: Delegating Article Drafts to Free Qwen Chat
Building a free article draft generator from chat.qwen.ai via automated browser: mechanics, pitfalls, and fallback that make it cron-worthy.
#qwen#browser-automation#content-pipeline - 22:38ai
Why My Internal Prompts Are All in English
Machine prompts on my cron pipeline moved to English for one reason: one control variable across a router of very different models.
#prompt#prompt-engineering#llm - 10:36devops
One API Key Just Stops Research at 429
A 429 rate limit froze my research pipeline. Designing multi-key rotation: per-HTTP-status cooldown, single-pass failover, and errors that should not rotate.
TL;DR: The pipeline hit 429 rate limits, so the author added key rotation with per-status cooldowns: 60s for 429, 300s for 402, an hour for auth errors. Rotation is single-pass to avoid infinite loops, and request errors like 404 throw immediately. The author stresses rotation only raises ceilings; fix wasteful requests first.
#firecrawl#python#automation - 14:45writing
Prompt vs Verify: Two Layers of Anti-AI Writing That Actually Work
Last week, my blog article pipeline failed completely. I thought pasting a 100KB skill containing hundreds of style rules into the prompt would solve the...
#anti-ai-writing#prompt-engineering#burstiness - 16:57frontend
Badge [2] in the Sidebar Isn't the Second Card You See
Citation badges in the sidebar list are computed with indexOf from the original array, not the filtered iteration position, so numbers stay truthful.
TL;DR: While refactoring a chat sources sidebar, badge numbers were computed over a filtered array, so dropping knowledge entries shifted every web source's number and broke reference links. The fix: compute numbers with indexOf on the original turn.sources, so badges always match answer references. Lesson: reference numbers must come from original data, not filtered display order.
#react#frontend#ux - 16:41frontend
It's Never Just a Re-Render
Knowledge cards now render inline below the chat answer; reusing the card component takes a named export, unique per-panel ids, and its own expand state.
TL;DR: Moving knowledge cards inline into the chat answer panel sounded trivial but broke two hidden contracts. SourceCard became a named export, and card ids got a prefix to avoid duplicate ids across the document. Expanded state now lives locally per panel, keyed by turn and slug, so opening a card in one panel doesn't leak into the other.
#react#frontend#ux - 11:10ai
OpenHands in 2026: From CLI to the Agent Canvas Platform
The OpenHands CLI is officially deprecated in 2026. Meet Agent Canvas, learn the right way to use it, and see how it pairs with Hermes Agent.
TL;DR: OpenHands dropped its pip CLI and pivoted to Agent Canvas, a canvas-based platform installable via npm or a safer Docker sandbox scoped by PROJECTS_PATH. The SDK adds security risk levels, LiteLLM provider flexibility, and named LLM configs for cost tiering. Pair it with Hermes Agent as an orchestrator that verifies diffs before anything gets merged.
#openhands#agent-canvas#hermes - 21:57ai
Query Rewriting: The Small Brain Before Agent Search
Told to search for "nano banana", an agent without query rewriting gets two worlds of meaning. Here are the 5 rewrite patterns I installed.
TL;DR: The author's fix for ambiguous agent searches: expand every query into five variants—literal, contextual, English, industry synonym, full question—before searching. All five run and merge, so "nano banana" resolves correctly as Google's image model rather than a fruit. The approach costs almost nothing—no extra API calls—though the author honestly admits no benchmark data exists yet.
#query-rewriting#ai-agent#rag