Notes on .NET, XAF, and building things

Twenty years of XPO, application frameworks, and lately a lot of applied AI. 286 articles and counting.

Browse by topic

All topics →

Latest articles

View all →
Jun 24, 20268 min read

The Vision Model That Wasn't There: DeepSeek V4, a Vanished Paper, and a Recipe You Can Use Today

I set out to wire DeepSeek V4's much-described image-understanding into a side project — the model that 'calculates bounding boxes and relative dimensions step by step.' One problem: DeepSeek V4 can't see images at all. This is the detective story of how I found that out three different ways, the vanished research paper that explains where the claim came from, and the lesson that mattered most — a method is portable even when a model isn't. So I ported the recipe to Gemini and measured it.

Jun 20, 20264 min read

What Is OpenAI Codex Sites? Prompt-to-Hosted-App, With a Catch

OpenAI's Codex picked up a feature called Sites: describe an app in plain language and Codex builds it, runs it, deploys it, and hands you back a live hosted URL — no deploy pipeline of your own. It's a genuinely interesting glimpse of where agents are heading. It also ships with some walls worth knowing about before you get excited. Here's the honest rundown.

Jun 20, 20264 min read

LM Studio 0.4.16: Your Local Models Just Went Mobile

LM Studio is the app I reach for whenever I want to run a model on my own hardware, and the 0.4.16 release adds the thing I didn't know I wanted: a mobile app called Locally that lets me drive my big desktop models from my phone over LM Link. Here's what's new, and why this is a bigger deal than a point release sounds.

Jun 20, 20268 min read

Static Analyzers: How They Work and Why You Actually Need Them

A static analyzer reads your code without running it and tells you what's wrong — the bug you didn't see, the await you forgot, the disposable you leaked. After twenty years of .NET I treat them as non-negotiable. Here's what they actually are, how they work under the hood (with a peek at Roslyn), and why every serious project should have them turned on and turned up.

Jun 20, 20265 min read

What Is ACP? The Agent Client Protocol — LSP, but for AI Coding Agents

If you've watched the AI coding space lately, you've heard about MCP. Its quieter cousin is ACP — the Agent Client Protocol — and it solves a different problem: not how an agent talks to its tools, but how your editor talks to the agent. The one-line version: if MCP is USB-C for AI tools, ACP is LSP for AI agents. Here's what it is and why I think it matters.

More topics

All topics →
Jun 19, 20265 min read

What Is dotnetup? The .NET Version Manager We've Been Missing

If you've ever fought with which .NET SDK is on a machine — the one Visual Studio dragged in, the one winget installed, the one the install script dropped, the one your global.json actually wants — then dotnetup is for you. It's the official .NET SDK and runtime version manager, finally: rustup/nvm, but for .NET. Here's what it is and why I'm excited about it.

Jun 19, 20266 min read

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.

Jun 19, 20267 min read

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.

Jun 19, 20267 min read

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.

Jun 18, 20267 min read

One Command to Generate, Test, Rank, and Merge an Agent Fan-Out

Over the last three posts I built the pieces of a best-of-N agent pipeline one at a time: git worktrees for isolation, a fan-out script to generate N attempts in parallel, and a judging stage to find the winner. This is the capstone — one ~50-line orchestrate.sh that chains all of it into a single command. You give it a count, an agent command, and a test command; it fans out, eliminates the runs that fail the tests, ranks the survivors, shows you the winning diff, and merges it only if you say yes. I built it, ran it end to end, and pasted the real output — including the one rough edge worth knowing about.