Notes on .NET, XAF, and building things
Twenty years of XPO, application frameworks, and lately a lot of applied AI. 259 articles and counting.
Browse by topic
All topics →Latest articles
View all →
Chat, Agent, Harness: The Three Layers of Building with AI
Three words get thrown around as if they were the same thing — chat, agent, harness — and they are not. They're three different layers, and once you see the boundaries between them, a lot of the AI-for-developers landscape suddenly makes sense. Here's how I think about the distinction, with small code sketches for each layer.

Microsoft Execution Containers (MXC): Build 2026's Answer to the Shared-Kernel Problem
A couple of days ago I wrote that namespaces are the operating-system feature AI agents were waiting for — and that the one real catch is the shared kernel. Turns out Microsoft spent Build 2026 answering exactly that. Microsoft Execution Containers (MXC) swap the shared kernel for hypervisor-enforced boundaries while keeping container-class speed: under 5% CPU overhead, 40–60 MB per container, dozens of agents on one workstation. Here's what it is and why I, a Windows person, am genuinely excited about it.

Namespaces: The Operating System Feature AI Agents Were Waiting For
Linux namespaces have been quietly sitting in the kernel since around 2008, powering every container you've ever run. I never thought much about them until I started running AI agents — and then it clicked. Namespaces are arguably a better fit for agents than they ever were for ordinary apps, because an agent is the one workload that is both cheap to spawn by the hundred and fundamentally untrustworthy.

Getting Started with Microsoft.Extensions.AI — Part 2: Messages & Strongly-Typed Output
Let's level up our AI interactions by building rich, multimodal messages and getting strongly-typed C# objects back from our models.

Microsoft's New AI Models from Build 2026: Aion and MAI, and How to Actually Use Them
At Build 2026 Microsoft shipped two very different kinds of AI model: Aion 1.0, a pair of small models that run on-device inside Windows, and the MAI family (Image-2.5, Transcribe-1.5), which live in the cloud. The interesting part isn't the benchmarks — it's where each one runs. Here's what they are and, more usefully, exactly how you can use each one depending on whether you're on a Mac, a Copilot+ PC, or just want a cloud API.
More topics
All topics →
EnvPane: How a Windows Person Manages Environment Variables on a Mac
I'm a Windows person at heart — Windows Terminal just feels right, especially how trivially you can bump the font size. The macOS Terminal never clicked for me, so I never settled into the 'edit your shell rc' way of managing environment variables. And I have a lot of them: API keys and secrets for AI agents and day-to-day dev. EnvPane is the little preference pane that solved it — a GUI list of variables, applied to every app instantly.

Getting Started with Microsoft.Extensions.AI — Part 1: One Interface, Any Model
Discover how `Microsoft.Extensions.AI` provides a single `IChatClient` interface to seamlessly swap between cloud and local LLM providers with just one line of code.

Microsoft VibeVoice: Frontier Open-Source Voice AI, and How to Run It Locally
VibeVoice is Microsoft's open-source frontier voice-AI family — long-form, multi-speaker podcasts from text, a real-time streaming TTS model, and a 60-minute ASR model. It's also a cautionary tale: the headline TTS model was pulled over deepfake misuse. Here's what it does, the clever 7.5 Hz architecture behind it, and exactly how to run the parts you still can locally — including on Apple Silicon.

Graphify: Turn Any Folder Into a Knowledge Graph Your LLM Can Actually Use
Pointing an AI coding assistant at a big codebase means it re-reads the same raw files over and over, burning tokens and blowing past the context window. Graphify does the expensive analysis once and compresses a whole folder — code, PDFs, screenshots, diagrams — into a queryable knowledge graph the LLM traverses instead. On a real mixed corpus: 71.5× fewer tokens per query.

Stop Feeding LLMs Raw Files: Save Tokens with Microsoft MarkItDown (CLI + MCP)
Every PDF, Word doc, spreadsheet, or web page you hand an LLM gets paid for in tokens — and raw formats are full of markup the model doesn't need. Microsoft's MarkItDown converts all of them to clean, token-efficient Markdown. I measured a real page: 793 KB of HTML became 304 KB of Markdown — about 62% fewer tokens. Here's the tool, its CLI, and its MCP server.