• Beware

    Beware

    The other day while catching up on social media, I came across a bizarre ad on Facebook. It claimed there was a survey hosted by Dick’s Sporting Goods that would give you a fancy cooler backpack for free. Given this particular Yeti backpack usually goes for $350, I was intrigued. There’s no way this could be legitimate and, despite living in the age of AI slop ads, the ad copy didn’t immediately feel like slop. Maybe there was something here… Down the rabbit hole The very first thing I noticed when clicking through to the survey was the expiration timer.…

  • The Case for Local AI: Keep Your Data and Your Models Close

    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.

  • Seeing in 1,024 Dimensions: How UMAP Makes Embeddings Visible

    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.

  • From Keywords to Concepts: Semantic Search in Laravel with pgvector

    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.

  • Meaning as Geometry: What Embeddings Actually Are

    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.

  • Rebuilding a Dead iPod Game

    Rebuilding a Dead iPod Game

    I loved a 2009 game called Artificial Life. It simulated real-time evolution of protozoa. I took a crack at rebuilding a modern, in-browser version based on that experience. The new version features emergent behaviors, predator-prey dynamics, and a dynamic ecosystem.

  • Hiking Keauhou

    Hiking Keauhou

    I took 2 nights out of a family vacation to backpack across the Ka‘ū Desert Wilderness on the slopes of Kilauea in Hawai’i Volcanoes National Park. It was totally worth it.

  • Why I Left Crypto and Found Canton

    Why I Left Crypto and Found Canton

    I was initially skeptical of blockchain, so I investigated a cross-chain DeFi protocol. I found its engineering compelling and joined up. After a series of ethical concerns pulled me away, I pivoted to Canton, drawn by its robust privacy architecture and established institutional support.

  • Introducing Cantool: A CLI for Canton Developers

    Introducing Cantool: A CLI for Canton Developers

    Cantool is a new Go CLI tool designed to streamline application development on the Canton Network, unifying the process from project initiation to deployment. It integrates existing tools for a smoother workflow, introduces an AI-assisted MCP server for enhanced development, and boasts extensibility through a plugin system.

  • Canton vs Public Crypto: A Technical Comparison

    Canton vs Public Crypto: A Technical Comparison

    Canton differs significantly from Ethereum and other L2s, focusing on local agreement and privacy. Transactions involve only relevant parties, enhancing scalability and confidentiality. Its declarative smart contracts reduce bugs, and the utility token model ensures predictable fees. Developers must adapt to this new architecture, emphasizing business logic over state management.