In progress · Technology
PHP-Native AI Tooling
Local AI for PHP developers, built from the ground up: what embeddings are, semantic search and RAG over your own data, and three native extensions (ext-infer, ext-turbovec, ext-whisper) that run models inside the PHP process. No Python, no remote API.
- 01 Meaning as Geometry: What Embeddings Actually Are Embeddings turn language into coordinates, where distance equals meaning. This is the foundation everything else in this series builds on — explained without the math degree. Sept 8
- 02 From Keywords to Concepts: Semantic Search in Laravel with pgvector The post version of my PHP Tek talk: retrofitting meaning-aware search into a Laravel app with PostgreSQL and pgvector — architecture, code, and production lessons from DailyMedToday. Sept 10
- 03 Seeing in 1,024 Dimensions: How UMAP Makes Embeddings Visible Embeddings live in a thousand dimensions; your screen has two. How UMAP flattens embedding space into a readable map — what it preserves, what it distorts, and how to read it honestly. Sept 15
- 04 The Case for Local AI: Keep Your Data and Your Models Close The default AI architecture ships your data to someone else's computer. The case for local-first AI — governance, economics, latency — and why PHP is finally ready for it. Sept 17
- 05 ext-infer: Local LLM Inference, Natively in PHP ext-infer is a PHP extension that runs GGUF models inside the PHP process — chat, completions, and embeddings with no Python sidecar and no remote API. Here's the tour. Sept 22
- 06 ext-turbovec: A Vector Index Inside Your PHP Process ext-turbovec brings quantized vector search inside the PHP process — TurboQuant 4-bit compression, SIMD kernels, SQL-friendly ids, and filtered search that gets faster, not worse. Sept 23
- 07 ext-whisper: PHP-Native Audio Transcription ext-whisper runs Whisper speech-to-text inside the PHP process via whisper.cpp — transcripts plus timestamped segments, no Python, no API, no audio leaving your machine. Sept 24
- 08 ai-contracts & ai-toolkit: The Primitives a PHP AI Ecosystem Needs Five interfaces and a toolkit of pipeline utilities — the thin pure-PHP layer that makes native AI extensions composable and turns PHP's AI frameworks into allies instead of competitors. Sept 25
- 09 RAG Over Markdown: An End-to-End Local Pipeline in Pure PHP RAG without the vendor mystique: chunk, embed, index, retrieve, generate — a complete question-answering pipeline over markdown docs, every stage running locally in PHP. Sept 29
- 10 From Voice to Vectors: Building a Searchable Audio Archive in PHP Transcribe, embed, search: turning hours of opaque audio into a semantically searchable archive that deep-links to the exact moment — ext-whisper, ext-infer, and ext-turbovec composed. Oct 1
- 11 DailyMedToday: A Production Case Study in Semantic Search Nov 9
- 12 What the Embeddings Reveal: A Map of Meaning Nov 12
Other series
The Great Migration
In 2024 I moved my blog, a secrets service and a Mastodon server out of the cloud and onto a Linux box in my home office. How I configured the server, moved each service and kept it all off the open internet.
4 parts
Complete
Cryptopals
Working through the Cryptopals crypto challenges in PHP, one per post: encodings, XOR, frequency analysis and breaking real ciphers, with value objects and tests along the way.
9 parts
Complete
Basic cryptography
Three short lessons in how encryption works, from the Caesar and Vigenère ciphers to the Diffie-Hellman key exchange that lets two strangers agree on a secret over an open line.
3 parts
Complete
Cracking the Uncrackable
A client once paid me in Bitcoin and I lost the wallet. So I bought a stranger's forgotten, password-locked one instead. Five posts on how wallet recovery works, from password guessing to Hashcat.
5 parts
Complete