“Skip is at least a quiet fool, but Chad is an active one.”
That’s Prince Vasili, now Vince, sizing up his two sons on page one of War and Peace. In Tolstoy’s version they’re Hippolyte and Anatole. In mine they’re Skip and Chad, and honestly it explains them better.
This post is about a small, silly, long-running open source project: an “Americanized” War and Peace. It lives in a Git repo, it has a CI pipeline, and it has a reading site with a synthwave theme. None of that was necessary. All of it was fun.
A joke that’s been running since 2012
The project started on January 31, 2012, with one commit: “Pierre is now known as John, and Natasha is now known as Debbie.” The README sets the tone in one line: An ‘americanized’ version of war and peace. Which pretty much means an ‘enhanced’ version.
My friend Steve Krzysiak kept it alive for years, one find-and-replace at a time. A soiree became a hootenanny. “Ecclesiastical” became “religious” (“what a silly word”). Natasha stopped being Debbie and became Janet. In 2016 the Rostovs became the Tysons.
Then it sat for almost a decade. I forked it, and this fall I went through the whole cast.
How it works
The whole novel is one plain text file, war_and_peace.txt: about 3.2 MB, taken from the Project Gutenberg translation. Every change is a commit. That turns the Git log into a running list of what got renamed:
- Bezukhov is now known as Buckley.
- Dolokhov is now known as Doyle.
- Platon Karataev is now known as Pat Carter.
- Cossacks are now cowboys.
The hard part isn’t the first rename. It’s the stragglers. Russian names come in a lot of forms: Anna Pavlovna, Annette, Scherer. A blind search-and-replace misses some forms and breaks others, so I made a second pass of “stragglers are now …” commits to catch what the first pass missed. One of those fixed a 14-year-old bug: the 2012 swap of “conversation” for “talk” had also hit “conversational”, leaving Anna’s party running a “talkal machine.”
There’s also a small GitHub Actions workflow. It checks that the text still exists, is plain UTF-8 and has no Windows line endings. It’s overkill for a joke, and that’s part of the joke.
The last piece is a reader site on GitHub Pages, so nobody has to scroll a 3 MB text file. It has a “Miami day” light theme, a “synthwave night” dark theme, and neon title type, because if you’re turning Tolstoy into an American it might as well be 1986.
Some favorites
| Tolstoy | American edition |
|---|---|
| Pierre Bezukhov | John Buckley |
| Natasha Rostova | Janet Tyson |
| Prince Andrew Bolkonski | Andy Baker |
| Hippolyte and Anatole Kuragin | Skip and Chad Kramer |
| Helene | Heather |
| Anna Pavlovna Scherer | Anna Schroeder |
| Marya Dmitrievna | Martha Dixon |
| A soiree | A hootenanny |
| Rubles / imperials | Dollars / gold dollars |
| Vodka, kvass, a samovar | Whiskey, root beer, a coffee pot |
| A troyka | A stagecoach |
| “Mon cher” / “Bonjour” | “Buddy” / “Howdy” |
It reads better than it should. Here’s Doyle on a windowsill with a bottle of rum:
“I bet fifty gold dollars… or do you wish to make it a hundred?”
And Martha Dixon greeting a young Janet:
“Well,” said she, “how’s my cowboy?”
Read it, or make it worse
- Read it: zkm.github.io/american_war_and_peace
- The repo: github.com/zkm/american_war_and_peace
- The original: Steve’s repo, where my cast changes are waiting in pull request #3
The README has invited pull requests with your own “enhancements” since 2015, and the offer still stands. There are plenty of Russians left: Kutuzov alone shows up 525 times, Bagration 155, and there are still about 50 different patronymics in there. One rule: make one change per commit, with a commit message that reads like a press release.
It’s a dumb project, and I like it more than most of the serious ones. Fourteen years, two maintainers, one 1,200-page novel, and Chad is still the active fool.