Happy New Year!
The website for the book is ready at shifthappens.site. I’m really excited about it:
I’m very happy with how this turned out. Please, check it out, send me your feedback, and tell your friends and even selected enemies.
I also wanted to share a little story from making that site.
If I go into my database and click on a folder called Animals and keyboards, I can find a collection of dogs and cats, some of them going back quite a while:
But, save for an occasional gimmick from a typewriter manufacturer…
…the animal most associated with typewriters is monkeys.
You probably heard of this in one form or another (even if through the jokes). The premise originated in the 1910s, posing this question: if you put a huge number of monkeys in front of a huge number of typewriters, and give them a huge amount of time, would you at some point arrive at the works of Shakespeare, completely by chance?
The whole idea was a theoretical exercise meant for us to reflect on the power of big numbers, and of course ignored a bunch of practicalities: who’d switch their pages and ribbons? who’d supervise the monkeys to find Shakespeare among trash? would they use QWERTY or Dvorak? (too soon)
And the end message was simple. It’s kinda fascinating, this possibility, but in practice, the numbers are so tiny that this is no way to get to Shakespeare. At some point improbable becomes impossible.
What I wanted to accomplish in my book was spotlighting the transition from typewriters to computers. So let’s check the folder again, but move forward in time. First of all, yes, cats and dogs are still here:
And, save for an occasional gimmick from an Iceland’s travel bureau…
…so are the monkeys. But their chaotic energy is spent in other ways. While the typewriter monkeys were tools of improbable creation, the computer monkeys are tools of responsible destruction.
In 1983, while working on the first Macintosh, the team realized that if they were to give their still-half-baked computer to “an incredibly fast, somewhat angry monkey, banging away at the mouse and keyboard, generating clicks and drags at random positions with wild abandon,” this would actually be helpful in catching some bugs and in seeing how resilient the system can be. It didn’t matter if the output is Shakespeare or garbage; the act of doing a lot of things quickly, in random order, could stress-test the system that was so limited it seemed it was always on the verge of collapse.
Of course, this being a computer, the team didn’t have to get a monkey. They could instead program one. The Monkey app could “run all night, or even longer, driving the application through every possible situation,” helping find all sorts of broken states that could then be fixed. The only catch was that the Macintosh had to be equipped with a secret flag, called Monkey Lives, that would ignore ⌘Q… otherwise the Monkey would inevitably quit the app being tested rather quickly.
You didn’t even have to watch the Monkey do its wild thing. Since computer randomness is really pseudorandomness, you could always re-run the Monkey with the same initial setup, it’d do exactly the same thing once more, and you could pinpoint which of its keystrokes caused trouble.
There are some other examples of doing more, even much more with this idea. Wikipedia erroneously starts only in 2011, giving credit to Netflix for building an entire evolutionary tree of helpful, chaotic simians: simulated monkeys to disable servers, kongs to mess with regions, gorillas to destroy entire continents.
The connection to keyboard(s) was, ostensibly, gone – the creators talked about “a monkey entering a data center,” randomly ripping cables, destroying devices, and flinging poo everywhere. But I don’t buy it. The code that actually powers Netflix’s Simian Army? Of course it starts and ends with typing.
One of the pieces of the book’s website I am proud of most is the little 3D viewer of the book in its slipcase, aiming to make it feel much more real and exciting.
But as you might remember from me complaining last time, I didn’t have as much good time working on it.
I am familiar with Photoshop, InDesign, and Figma – but for better or worse, many of my creative pursuits happen in code. Coding a 3D environment can give you a lot of control and automation, but it requires your brain to operate in abstract spaces, and that can backfire. It did many times, and this is the latest of these times.
My problem was: I wanted to have a nice highlight that shows off the varnish on the cover, used to print the title. But for that, I needed a light positioned exactly in the right place, at a right angle.
I saw only two options:
The challenge? I was too stupid for the first part, and too lazy for the second.
But then it hit me: what I needed was a hybrid typewriter/computer monkey. One that would start at a programmed chaos, but one whose chaos could be put to good use.
Instead of carefully positioning the light in the right place, I’d randomly put it in a million places, and then pick the best one. It took a whole 15 lines of code. Any time I pressed Tab, the light would move to a new random position. In effect, I could hold the Tab key, and wait to see the highlight on varnish. (Our eyes are so good at spotting things quickly.) Of course, my finger reaction would lag behind but, again, pseudorandomness! I could just press Shift+Tab a few times to go back and retrieve the right number.
It looked something like this…
…and I got where I wanted within a minute. I copied the randomly generated numbers that gave me the right reflection, cleaned them slightly to 2.0, 2.9, 2.5, and this is how it looks now:
With the rise of tools like GPT-3 the nature of writing will change. But this is yet to come. The book’s writing has otherwise been very precise. It was edited countless times by me, my editor Glenn, and the proofreader. We debated many nuances and we developed three subsequent versions of the style guide. Nothing was left to chance.
And so it was fun that, for this one moment of the website, I let the chaos fully take over. But it was more than that. I strongly believe building a Tab-masher, and then mashing the Tab key to get to my mini-Shakespeare was the only realistic way I could’ve achieved this.
Oh, and I never took out that code. Once you open the 3D viewer, you can still hold Tab or Shift+Tab to get the light to move to a random new position. Somewhere within the small depths of this small site, the monkey lives.
Marcin
PS Thank you to Ezra and Glenn for helping to test the site. Also, if any of you are interested to see the earlier versions of the site being built, check out this and this and this. A monkey will not be included.