The Quality Paradox: Why Search Improved for Google While It Degraded for Publishers
Three layers of evidence (publisher traffic decay, Alphabet's revenue mix, the leaked Google ranking schema) showing why no algorithmic recovery is coming.
Original-data research, technical investigations, engineering notes, and build logs from systems I build or study.
Three layers of evidence (publisher traffic decay, Alphabet's revenue mix, the leaked Google ranking schema) showing why no algorithmic recovery is coming.
Every year the same articles. Counterfactual valuations, the road-trip rumor, the man-bites-pizza headline. Nobody traces the actual coins. So I did. Here is what the chain shows and what 'those specific bitcoins' even means.
Anthropic calls it a character tic. I went looking for what was actually producing it and ended up reading the published system prompt, the character training paper, and the emotion-concepts paper. The behavior is what the stack makes likely.
On June 15, programmatic Claude usage moves to a separate $20–$200 API-priced credit. The email arrived this morning. Here is what it actually means and what it teaches about building on someone else's compute.
Excel and Word cells were captured as screenshots instead of values. Microsoft Store autostart was silently broken. Image thumbnails ate gigabytes of RAM. v1.6.6 fixes all three, plus a stack of security and reliability work after the big 1.6.5 AI Vision release.
Paid Chrome extensions are mostly paywall and analytics. With an AI agent you can rebuild any of them in one evening: 30 KB, no subscription.
Beetroot v1.6.5: AI Vision lets your clipboard read images (OCR, describe, extract, translate). Background AI job queue. All providers in native Rust.
Tauri-action signing key kept failing after 20 working releases. The fix: a literal backslash hidden inside the password by shell-quote escaping.
Beetroot v1.6.4: customizable copy overlay (position, duration, animation) and three content-aware preview modes for text, code, and images.
OSC 52 clipboard doesn't work in xterm.js through tmux. The fix isn't set-clipboard or terminal-features — it's allow-passthrough.
System-wide 'Copied' overlay confirms every clipboard capture. Fixed images copied from Explorer. OpenAI models upgraded to GPT-5.4. Security hardening.
A hotfix for v1.6.1's content truncation — AI transforms, preview, and copy were silently working with partial text. Plus Alt+T toggle and filter count fixes.
Beetroot v1.6.1: keyboard input rewritten for no-focus mode, refreshed preview panel with arrow navigation, fixes for v1.6.0 regressions.
Beetroot's search engine moved to Rust — accent folding, typo tolerance, prefix matching. Plus a no-focus window that doesn't interrupt your workflow.
Why Fuse.js fails on clipboard data and how I rewrote search in Rust over 8 iterations: same-field matching, Unicode word boundaries, scored merge.
Beetroot v1.5.1: VS Code's TensorFlow.js model detects 54 languages. Rewritten search engine — 'local v' returns 9 results instead of 98.
Multi-provider AI in Tauri: OpenAI, Claude, Gemini, DeepSeek, Ollama. Three integration patterns and a Rust proxy that solves localhost CORS.
Beetroot now supports OpenAI, Gemini, Claude, DeepSeek, and local models. Plus AI sparkles, Ollama presets, and smarter source app tracking.