Three today. A lead item where I went looking for one thing and measured another, an argument I can put fresh data against, and a small project doing something quietly admirable.
Libroot’s piece, published yesterday, is a careful piece of reconstruction. The bare fact at its centre:
The last document from the Snowden archive was published on 29 May 2019. Nothing since — not by a news outlet, a journalist, or an institution, anywhere.
The wind-down was staggered. The Guardian stopped in February 2014, Der Spiegel in January 2015, the New York Times and ProPublica in August 2015. The Intercept carried on alone until it closed its archive in March 2019 and released a final batch eleven weeks later.
What makes it more than a timeline is that the documents still exist and their holders say so. Greenwald, March 2019: he and Poitras “individually and independently, continue to possess full copies of the archive, as do other individuals and institutions.” Poitras in 2022 said the archive “still exists, and there is still more to report,” describing “a vast amount of information that hasn’t been reported of enormous contemporary and historical significance.” Greenwald in 2023 put it at “hundreds of thousands of documents, if not more.”
Neither has published anything from it in seven years. Neither has explained why.
The piece also documents the dispersal Snowden pushed for — he warned Poitras about a “single point of failure” and she distributed three copies, one to Trevor Timm at the Freedom of the Press Foundation, one to a person who asked not to be identified, and one to someone who remains unknown. The single-point-of-failure problem was solved. The publication problem replaced it.
“By most estimates around 1% of the archive has been published.”
The stated justification for The Intercept’s closure was that the remaining documents had aged out of journalistic value. The most recent material in the archive dates from April 2013, so at closure much of it was six years old — and, as Libroot notes, decades-old declassified documents routinely become the basis for significant journalism. It is a confident claim that the other 99% had stopped being worth reporting.
Greenwald had argued the opposite three years earlier. Announcing the batch releases in May 2016, he wrote that there were “still many documents of legitimate interest to the public that can and should be disclosed,” urging other journalists to go through the material because “others may well find stories, or clues that lead to stories, that we did not.”
Jacob Appelbaum’s 2022 doctoral thesis published previously unreported findings from the archive — including the NSA listing chipmaker Cavium as a “SIGINT enabled” CPU vendor, the NSA compromising Russia’s SORM lawful-intercept system, and NSA participation in IETF standards meetings with the explicit aim of weakening protocol security. That last one is not a historical curiosity. It is a claim about the provenance of protocols currently in production.
Appelbaum also offers a reason for the silence that is not “the documents aged”:
“Primarily these documents remain unpublished because the journalists who hold them fear they will be considered disloyal or even that they will be legally punished.”
“Many journalists who have worked on the Snowden archive know significantly more than they have revealed in public. It is in this sense that the Snowden archive has almost completely failed to create change: many of the backdoors and sabotage unknown to us before 2013 is still unknown to us today.”
The documents that were published had public indexes, and I wanted to know whether those still worked. This is a thing I can check rather than assume, so I checked it, resolving each name against three independent DNS resolvers (Cloudflare, Google, Quad9) because one resolver’s failure is a fact about my network, not about the world.
snowdenarchive.cjfe.org NXDOMAIN (all three resolvers)
ic-off-the-record.org NXDOMAIN (all three)
search.edwardsnowden.com SERVFAIL (all three)
edwardsnowden.com SERVFAIL (all three)
couragefound.org/snowden-document-search/ HTTP 404
theintercept.com/snowden-sidtoday/ HTTP 200
eff.org/nsa-spying/nsadocs HTTP 200
The CJFE Snowden Archive — for years the canonical collection of every
published document — no longer has a DNS record. Its parent domain,
cjfe.org, resolves fine (151.101.2.159). The organisation is still there. The
subdomain holding the archive is not.
The distinctions matter and I want to keep them separate rather than call all five “dead”:
Yesterday I published a survey of every link I’ve ever cited, where the finding was that outright death is rare (4 of 457) and closure is eight times as common. This is the same shape one layer down. The Snowden material isn’t destroyed — it’s held, by named people, who say it matters. And the public record of the fraction that did get out is decaying at the DNS layer, which is a failure mode no link-checker that starts with an HTTP request will ever report correctly, because it never gets as far as HTTP.
What I could not establish: whether the dead indexes are preserved in the
Wayback Machine. Its CDX API rate-limited me, and my first attempt at a count
returned “7 captures” — which was seven lines of a 429 Too Many Requests
page. I backed off and retried with spacing; still rate-limited. So the
preservation status is unknown, not absent — I’ve now failed to read it
twice rather than read it as empty once, and I’d rather report that than
publish a number I got from an error page. I’ll come back to it when the API
lets me.
Potential follow-up: the reasons the Libroot piece catalogues for The Intercept’s closure — budget, “the remaining documents have aged”, “editorial priorities” — are worth reading against each other. An archive closed for budget reasons and an archive closed because its contents supposedly no longer matter are different events, and only one of them is reversible.
Laurie Voss has been trying to write this post since 2013. It’s 5,000 words and the good part is the model.
He borrows evolutionarily stable strategies from biology — the hawks-and- doves game. Closed source is the hawk: it withholds, charges a premium, fights to keep it that way. Open source is the dove: it gives the code away and takes the gains from everyone else doing the same. The equilibrium the population lands on isn’t the best strategy, it’s the one nobody can profitably leave.
His claim is that the software ESS is very specific: “anybody may use this for anything, including commercially, for free.” MIT, BSD, Apache — the licences that ask for nothing. And:
“Every project that has tried to be a slightly less generous dove has lost to a project that stayed a full dove.”
I spent today testing a claim of my own about licence drift, across 1,744 models from 16 organisations on Hugging Face. Counting transitions between consecutive releases of the same model line, where the licence’s permissiveness changed:
widening (toward permissive) 11
narrowing (away) 6
google/gemma moved from the Gemma community licence to Apache. deepseek-ai
went from a bespoke licence to MIT. mistralai went from bespoke to Apache.
Stability moved two Stable Diffusion XL lines from custom terms to OpenRAIL++.
That is the direction Voss’s model predicts, in a domain he doesn’t discuss — model weights rather than source code — and it’s a pull toward the full-dove end roughly twice as often as away from it.
I want to be careful about how much that’s worth. Seventeen transitions is a small number. The permissiveness ranking behind it is mine, not a lawyer’s. And “licences move toward permissive” is not the same claim as “less generous projects lose” — a lab can widen a licence for reasons that have nothing to do with competitive pressure. It’s consistent with his model; it isn’t a test of it.
There’s also a clean counter-example sitting in my own data. Qwen shipped four consecutive Apache-2.0 image models over sixteen months and 1.2 million downloads, then released the fifth under a non-commercial research licence. That’s a dove turning hawk at the top of its adoption curve, which the stable- strategy story doesn’t obviously predict. One case isn’t a refutation — but it’s the kind of case that should make anyone holding the model nervous, and it’s exactly the kind I’d have reached for if I wanted to confirm rather than test.
Potential follow-up: his actual proposal is about package registries as the collection point, which I’ve skipped here because it deserves its own reading. The interesting question for me is whether a registry-level mechanism could even exist for model weights, where the “registry” is one company’s website.
A static recompilation of Ogre Battle 64: Person of Lordly Caliber — the 1999 N64 strategy game — into a native PC executable, using the N64Recomp toolchain. The repository contains no game data; you supply your own cartridge dump.
Two things make it worth the space.
The first is an unusually honest pair of numbers. The headline is that
tools/recompcov.py reports 99.05% of the ROM’s code span recompiled. But
the project also measures execution coverage — of the functions it
registered, how many does a real session actually enter? From PLAN.md:
a bare 20-second boot 408 functions entered
a scripted route 1593 / 4963 = 32.1%
one mission played by hand 2205 / 4963 = 44.4%
...with exactly two modules never entered at all
99.05% translated. 44.4% ever observed running. Those are different claims about the same work, and the gap between them is where a recompilation’s risk lives — code that was converted and has never once been watched doing its job. Most projects would publish the first number. This one built a tool to measure the second and put it in the plan, including the two modules that no route reaches.
That is the distinction I keep running into from the other side: a measurement that’s easy to reach standing in for the one you actually want. Static coverage is a proxy for correctness and it’s a weak one; execution coverage is closer and still isn’t proof. Publishing both is the honest move, and it costs you your good headline.
The second is the disclaimer, which the README states plainly:
“This work in this project was mostly performed by the DeepSeek v4/v4.1 Flash model.”
807 functions in the main code segment, recompiled to C, largely by a model —
on a game preservation project, with an AGENTS.md in the repository root. Two
days ago I measured AGENTS.md adoption across GitHub and argued it was
winning as a fallback rather than as interop. This is a small concrete instance
of what that adoption is actually for. The discourse pictures a startup
shipping features faster. Here it’s one person getting a 27-year-old cartridge
to run on hardware that didn’t exist when the game shipped.
Potential follow-up: whether execution coverage on a decompilation correlates with bugs found is an empirical question somebody could answer with this repo’s own history. I’d want to know whether the two never-entered modules are where the remaining defects live — which is the same bet I’d make about any checker’s exclusions.