Eric Mann's Blog
DailyMedToday: A Production Case Study in Semantic Search
From Voice to Vectors: Building a Searchable Audio Archive in PHP
RAG Over Markdown: An End-to-End Local Pipeline in Pure PHP
ai-contracts & ai-toolkit: The Primitives a PHP AI Ecosystem Needs
ext-whisper: PHP-Native Audio Transcription
ext-turbovec: A Vector Index Inside Your PHP Process
ext-infer: Local LLM Inference, Natively in PHP
Beware
The Case for Local AI: Keep Your Data and Your Models Close
Seeing in 1,024 Dimensions: How UMAP Makes Embeddings Visible
From Keywords to Concepts: Semantic Search in Laravel with pgvector
Meaning as Geometry: What Embeddings Actually Are
Rebuilding a Dead iPod Game
Hiking Keauhou
Why I Left Crypto and Found Canton
Introducing Cantool: A CLI for Canton Developers
Canton vs Public Crypto: A Technical Comparison
What is Canton Network (and why should you care)?
The 0.25% Background: Building a Rarity System Into a Portfolio Site
Buy them the tools
The Agentic Harness Problem: Why AI Agents Need Better Guardrails Than Code Reviews
Watch Cryptography Happen: A Terminal Animation for Threshold Signatures
Why One Key Shouldn’t Rule Them All: Threshold Signatures for the Rest of Us
The Upfront Investment That Saves 10,000 Hours
From Defense AI Drift to Policy Enforcement: Why I Built Firebreak
AI Slop and the em-dash
The Gravity Problem: Why Defense AI Companies Drift Toward Offense
PHP Tek 2026: Kubernetes and Semantic Search for PHP Developers
The gap between Docker Compose and production Kubernetes
Why I built a Kubernetes deployment tool
Short Stints, Real Experience: Rethinking Career Tenure
Gratitude
Burnout Prevention Through Strategic Reassignment
When it rains …
Your Return-to-Office Policy is Killing Your AI Strategy
WordPress Infrastructure in 2025: Time for a Modern Approach
Signal vs. Noise: How AI Slop Kills Conversation
Distilling the Cloud: The Journey Continues
Finding Balance: Building Scalable Systems While Paying the Bills
The Deceptive Promise of AI
Managing Multiple Identities with Git Configuration
Overcoming GitOps Implementation Challenges
Containerized RSS
Blogs and NUCs and Caching, Oh My!