Mark Reveley

Personal blogs

36 quotes from Writing / Personal blogs, newest first.

The convenience of MCP comes with a price, stemming from two architectural attributes of an MCP-driven application. MCP creates incoherent toolsets and separate runtimes.
Since tools are drawn from arbitrary sources, they are not aware of what other tools are available to the agent. Their instructions can't account for the rest of the toolbox.
The second issue stems from different toolsets having their own runtimes.

MCP is a Fad · hn · Tom Bedor · 12 December 2025

HN discussion

MCP allows any client (Claude, Cursor, IDEs) to dynamically discover and interact with any resource (Postgres, Slack) without custom glue code. Comparing it to local scripts is like calling USB a fad because parallel ports worked for printers. The power is standardization: write once, support every AI client.

This post is about using contracts to enforce semantic correctness of a generative process. I will explain how contracts work in symbolicai, the benefits they offer, and the challenges ahead. Most interestingly, I think contracts could be a promising approach to alleviating hallucinations. There’s still a lot to refine, but the potential here is too compelling to ignore.

Taming Uncertainty: Contracts · Leo · 1 March 2025

But here is the thing: if you showed a video generation model enough footage of people using spreadsheets, it would produce the exact same result. You type =A5+1, and a 2 appears. Not because anything was computed. Because the model knows what happens next. It has seen this scene ten thousand times. The 2 is not the output of arithmetic. It is the output of pattern recognition so thorough that it becomes indistinguishable from arithmetic. I mean, nothing really crazy if you think about it. It’s the same principle that allows ChatGPT to write you a perfectly functional Python script despite having never, in any meaningful sense, learned to program. It just knows what code looks like when it’s going well.

Nobody wrote the Matrix · Dario Farzati · 11 September 2026

For humans, cleverness and intelligence are correlated; for machines they are largely decoupled, and today's tools are best viewed as stochastic generators of sometimes-clever, often-useful outputs — which yields the characteristic "useful yet unsatisfying" feeling of a magic trick once explained. He resists a one-dimensional picture entirely: the space of cognitive tasks is extremely high-dimensional, so no "sub-human to super-human" scale captures it, and the frontier that still eludes machines is data-scarce reasoning — extrapolating from five or six facts and a vague analogy, exactly where human mathematicians excel.

Terence Tao on AI in mathematics (and beyond) · Claude (reviewed and corrected by Terence Tao)

Standards will catch up. I’ve been out of the web standards space for a couple years now, so this is pure speculation on my part. But I imagine that a lot of the efforts to improve the ergonomics of building websites – better CSS shorthands, terser JavaScript syntax, etc. – will become perceived as less important relative to things that actually move the needle on performance, capabilities, etc. At the end of the day, it’s just not very different for an agent to write 3 lines of CSS instead of 1, and anyway using the newer syntax might actually be harder because you have to coach the agent about things that aren’t in its training weights.

The asteroid currently hitting frontend web development · Nolan Lawson · 23 August 2026

The solution is to write tests for features in such a way that they are independent of the code. I like to use the neural network test for this: Can you re-use the test suite if your entire software is replaced with an opaque neural network?

How to Test · Alex Kladov · 31 May 2021

Pure test do little-to-no IO, they are independent of timings and environment. Less pure tests do more of the impure things. Purity is correlated with performance, repeatability and stability. Test purity is non-binary, but it is mostly discrete. Threads, time, file-system, network, processes are the notches to think about.

Unit and Integration Tests · Alex Kladov · 4 July 2022

Don’t think about tests in terms of opposition between unit and integration, whatever that means. Instead,
Think in terms of test’s purity and extent.
Purity corresponds to the amount of generalized IO the test is doing and is correlated with desirable metrics, namely performance and resilience.
Extent corresponds to the amount of code the test exercises. Extent somewhat correlates with impurity, but generally does not directly affect performance.

Unit and Integration Tests · Alex Kladov · 4 July 2022

Architecture the software to keep as much as possible sans io. Let the caller do input and output, and let the callee do compute. It doesn’t matter if the callee is large and complex. Even if it is the whole compiler, testing is fast and easy as long as no IO is involved.

How to Test · Alex Kladov · 31 May 2021

Ruthlessly optimize purity, moving one step down on the ladder of impurity gives huge impact.
Generally, just let the tests have their natural extent. Extent isn’t worth optimizing by itself, but it can tell you something about your application’s architecture.

Unit and Integration Tests · Alex Kladov · 4 July 2022

I used to load the full Oh My Zsh framework. Then I profiled my shell and found I was pulling in 150+ files to use maybe 10 features. The chef overcooks 👨‍🍳
So I stripped things back. Now I cherry-pick the OMZ plugins I need via Zinit, and fill the gaps with tools that do one thing well. The terminal is Ghostty with a six-line config, the shell is Zsh, and everything below is what makes it feel like home.

My Fast Zsh Setup Without Oh My Zsh (But With Its Best Plugins) · Matt Wicks · 5 March 2026

And so generating code is not necessarily the part that you need to worry about the most. Given enough context, agents can write the implementation and run the tests and inspect failure and revise code for us. We need to get to a place where we feel like there is enough of human taste encoded in the environment that we can trust what is being built, so that our human attention can be focused on the places where it’s needed most.

Human judgment doesn't leave the software factory. It relocates. · Addy Osmani · 21 August 2026

Global workspace theory,4 or GWT, describes the human brain as a collection of specialized modules sharing data through a central, limited capacity bottleneck. Most machine learning architectures already satisfy the first three indicators5 of this theory. However, they consistently fail to implement GWT-4, the requirement for temporal persistence. To address this, we use the framework of computational self-availability, or CSA. This describes a system where internal processing is available as an input to the system itself.

Architecting Awareness: The Hybrid Diffusion-Transformer · Michelle Tilley · 3 April 2026

Cognitive debt, a term gaining traction recently, instead communicates the notion that the debt compounded from going fast lives in the brains of the developers and affects their lived experiences and abilities to “go fast” or to make changes. Even if AI agents produce code that could be easy to understand, the humans involved may have simply lost the plot and may not understand what the program is supposed to do, how their intentions were implemented, or how to possibly change it.

How Generative and Agentic AI Shift Concern from Technical Debt to Cognitive Debt · Margaret-Anne Storey · 9 February 2026

Reviewing AI generated code can be tough, especially if the code generated is solving a particularly complex problem. Even if the code is correct, it can be hard to understand how exactly it works. When working with other human programmers, I would generally ask them to walk me through their code, and I would ask questions about why they made certain decisions as we go. I wanted a similar process for reviewing AI generated code. After a lot of exploring, I've found a combination that works well for me.

Lowering the Cognitive Burden of Reviewing AI Code · Michelle Tilley · 2 June 2026

I get pushback that falling inference prices will eventually bring us back to sending everything through the largest models. But I’m not so sure: those same gains will benefit the K3s and Qwens, and as we continue to develop better harnesses it will be easier to provide weaker (but still great) models with sufficient context to perform well.

Fable & The End of the Free Lunch · Drew Breunig · 23 August 2026