You search for “deploy an application in a container”. The article you need is called “Getting Started with Docker”. A useful search system should connect those ideas, even when the words don't match exactly. NOTE: Updated 5 November 2026. Rebuilt for .NET 10…
What centuries of payments, promises and disputes can teach developers building systems in the AI age. Traditional banking didn't evolve on the assumption that humans were trustworthy. Much of its machinery exists because they aren't. People lie, forget,…
Behavioural inference, controlled decoys, and some rather sneaky 404s. Someone requests a PHP file from your site. It doesn't exist. You return a 404. A little later, someone else requests the same file. Different address, different user agent. Same small…
Updated - 27 October 2026. Original was published Nov 2025 - Corrected bundle options and added current EF Core 9/10 guidance, Aspire integration and clearly marked EF Core 11 preview features. See the errata at the end for corrections to the original version.…
COMING SOON - Working on the nuget package, stay tuned! In Part 4, the recommendation became an intervention. We characterised a proposed change, applied it under an experiment and learned from the observed response. An email could be a candidate in the same…
The “mind control” in the title is a joke about a familiar ambition: put the right thing in front of someone at the right moment and change what they do next. Most of us have ignored enough perfectly timed marketing emails to know how unreliable that ambition…
In Part 2, we turned an entity's characterisation into recommendations. We could watch a session change, find eligible products, and explain which representations contributed to the ranking. Now we want to use that history to answer a more useful business…
I've been writing about systems whose interesting behaviour happens over time. A shopper compares something, adds it to their basket, then disappears. A gateway observes a request, accumulates evidence, and decides whether the origin application should ever…
“How do I vectorise this?” This is an optional bridge between Part 1 and Part 2. It focuses on producing coordinates for properties we cannot read directly from a database field or event counter. Take a voice message. Is this message aggressive? The transcript…
In Part 1, we looked at how to characterise an entity. We chose observations, encoded the relationships we cared about, and used vectors and centroids to summarise what we had seen. That entity could be a shopper, a service or a device. Now we can ask the next…