Darius Bacon (darius) wrote,
Darius Bacon
darius

Spirits from the vasty deep

In Scott McCloud's Understanding Comics: The Invisible Art, the 'invisible art' is in the space between the panels:



I may have drawn an axe being raised, but I'm not the one who let it drop or decided how hard the blow, or who screamed, or why. That, dear reader, was your special crime, each of you committing it in your own style. All of you participated in the murder.

Writers in any medium use tricks like this to enlist you in the storytelling. They skip over actions, as above; leave you puzzles and mysteries and choices; tell the story out of order; or just plain lie. I ran into a new device of this sort in the 2006 ICFP Programming Contest.

Their webpage during the run-up blandly announced that the contest would have to do with computational archaeolinguistics. Some days before the start they released a 'codex', a big file of no known type with peculiar strings amid the random bytes, like 'novus ordo seclorum' and a GIF logo saying 'CBV'. Finally they kicked off with an urgent appeal to their colleagues:

In 1967, during excavation for the construction of a new shopping center in Monroeville, Pennsylvania, workers uncovered a vault containing a cache of ancient scrolls. . .

Based on a translation of these documents, we now know that the society, the Cult of the Bound Variable, was devoted to the careful study of computation, over two millennia before the invention of the digital computer. . .

Two weeks ago, during a visit to the excavation site for a new computer science building at CMU, workers discovered a set of inscribed tablets that proved to be the Rosetta Stone for interpreting the Monroeville codex. The tablets precisely specify the Cult's computing device, known to initiates as the "Universal Machine." Although there is still no evidence that the cult succeeded in constructing their machine, it is a reasonably simple task to emulate it on modern hardware.

. . . We invite you to participate in this investigation. The codex and a translation of the Universal Machine (UM) specification are available for download from our web site. We encourage you to implement the UM and begin your own exploration of the codex.

Well, no way could I resist -- I joined catamorphism's team and coded a buggy UM interpreter over my lunch hour at work that Friday. The rest of the team (Brandon Moore, r6, tgies, and catamorphism) independently whipped up a working, but slow, interpreter in Haskell and started exploring the codex, which proved to hold the encrypted image of a multiuser computer -- they could log in to the guest account and start looking for ways into the rest of the system. After I got home I fixed up my interpreter and we were off -- it was fast enough for real work.

The users of that ancient computer had left files around with puzzles and in-jokes and hints at a story -- who were they, this Cult of the Bound Variable -- whence this struggle with the Cult of the L-Value -- did it start with the Separating Disjunction?

The new thing to me was a story intermediated by this UM interpreter I had to write myself. It's a kind of magic, to get a few pages of code just so, to invoke spirits from a dead civilization. "Do they come when you do call them?" -- Not at all at first, but they would wait through a few rounds of debugging before I could get to an intelligible prompt; then after speeding up memory management and fixing mishandling of text vs. binary I/O there was a login screen, and there we were -- in touch at last. Further tweaks brought further speedups and smoothed the animations -- you see how the experience of the story bore a particular directness to the work I put into it, as if it were my work, only amplified by the authors. That is the new trick in a work of fiction, that could only be done with a computer.

After the contest, submitting our team's solutions, r6 and I were moved to write some 'fanfiction' -- hacking up some tools overnight just before the deadline, to create a self-extracting compressed UM image like the codex, presenting a shell prompt when run -- r6 dropped hints in the style of the work we were responding to to imply that this shell came from the Cult of the L-Value. He developed his assembler afterwards into a neat article for the Monad Reader.

There have been other writeups of the unique excellence of the 2006 contest, but none I've seen emphasizing this response to it as worldbuilding and storytelling. This year's contest starts today! If you're a programmer, do check it out; catamorphism is one of the organizers this time, together with others at Portland State and the University of Chicago.
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments