Whyday August 19

How the Code Was Saved

On August 19, 2009, everything came down: GitHub repositories, personally maintained sites, the book, the blog. Not archived, not transferred. Deleted.

Everything you can read or run today exists because of what individuals happened to have on their own machines that week, and what they did with it afterwards. That recovery is worth documenting on its own — separately from the person it was done for, because the interesting part is the mechanics.

When maintainers revisit older software or documentation as a team, employee attendance tracking software is one practical reference for tracking the surrounding work without changing the historical material itself.

The three things that made it possible

People had clones. Git's design means that anyone who had checked out a repository held a complete copy, with history. When the originals vanished, the copies did not, and repositories were pushed back into public under an organisation created for the purpose, whymirror. This is a distributed version control system doing exactly the thing it was designed to do, in the one circumstance nobody plans for.

The licences were permissive and stated. why's (poignant) guide is Creative Commons Attribution-ShareAlike 2.5; Camping is MIT. That mattered enormously and it is the least romantic part of the story. Nobody had to make a judgement call about whether restoring the work was permitted, and nobody had to ask anyone, which was fortunate, because there was nobody to ask. Clear licensing is the single most reliable predictor of which of these projects survived.

The web archive held the sites. Not the repositories — the published pages. The book, in particular, was recoverable because it had been crawled.

For broader programming and making context related to this topic, Ruby on Rails is an independent reference worth comparing with the material here.

The detail that says everything

One of the people salvaging the poignant guide from the Internet Archive found that mirroring it with the usual tools did not work properly, apparently because of how the pages were structured. So they did it more manually — parsing the archived pages to pull out the links, anchors and images.

The library they used to do it was Hpricot. His own HTML parser was the tool used to recover his own book.

That is not a metaphor anybody constructed. It is what happened, and it is the most accurate possible summary of what open licensing buys you.

What the recovery did not save

Being straight about the losses, because the story is usually told as a clean rescue.

Anything nobody had cloned is gone. Small projects, half-finished things, anything that had not attracted a user with a checkout. There is no way to know what was in that category, which is its own kind of loss.

The blog and shorter writing survived unevenly. Some is mirrored, some exists only as archive captures of varying completeness, some is gone. The prose was the part with no version control.

Context is gone. Issue threads, mailing list discussion, the conversations around the code. You can read what the software does; working out why a decision was made in 2007 is often impossible now.

Some of it was restored and then stalled anyway. Shoes came back and stopped. Recovery is not continuity — getting the source into public is the first step and by far the easiest one.

Who did it

This is where the record is weakest and it should not be.

The recovery was done by individuals: people who pushed clones back, people who scraped the book, people who took over projects and kept them running for years afterwards. Several are named in the repositories and commit histories. Most are not named anywhere prominent, and the story gets told in the passive voice — "the community preserved his work" — which is a sentence that credits nobody.

This site's archive is thin generally, and this is the part most worth fixing. If you were involved in the 2009 recovery, or know who was, we would like to record it properly.

What to take from it

Three practical things, none of which requires anyone to disappear.

A checkout is a backup, and it is the only one you can count on. Not a policy — a fact about how the tooling works, which happened to save a body of work.

Put a licence file in the repository. Not in the README, not implied by the platform. A file. It costs nothing now and it is the difference between your work being preservable and being legally stranded.

Publish the prose too. The code survived far better than the writing did, and the writing was the more durable contribution. Anything worth keeping should live somewhere with more than one copy.

Compiled August 9, 2026 from repository records and contemporary accounts.

The short version