A One-Line Program as Book: 10PRINT

10print[This is a guest post by Kathi Inman Berens, who curates electronic literature and researches classroom interfaces. This year, she's co-curating e-lit exhibits at MLA and the first-ever e-lit show at the Library of Congress. She teaches at USC, where she's a Fellow at the Annenberg Innovation Lab. Follow her on Twitter at @kathiiberens.--JBJ]

Lifting up the 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 hardcover, one’s first impression is: I’d better use both hands. It’s a heavy art book compressed to the physical dimensions of a typical academic monograph, though it is anything but typical.

Designed by Casey Reas (one of 10PRINT‘s ten co-authors, many of whom have been collaborating recombinantly for years), this glorious hardback is not just a container, a div for prose, but a beautifully realized art object. Check out these images on Reas’ 10PRINT Flickr stream. Even the book’s paper edges seem aestheticized, marbled by cerulean ink meandering from the book’s seventy-plus monochromatic illustrations and chapter breaks.

10Print x 2

Tactile and visually rich, the 10PRINT aesthetic experience is compromised for readers of the free PDF. Book pages displaying four mazes (116-17, for example), entirely lose their effect when stacked in the .pdf as a vertical pair. Are the aesthetics of the 10PRINT book non-incidental — are they in fact crucial — to the book’s argument? I think so, but I can’t yet fully explain why. The book dropped four days ago. For humanists that’s a nanosecond.

But it’s enough time for some of the book’s other audiences to already have logged many hundreds of lines of code and conversation, to have created, even, a “cheaty ProcessingJS” emulation of the BASIC maze (authored by Ph.D. candidate Kevin Brock). Humanists’ tools aren’t like that. Interpretation takes a while to warm in the fire. 10PRINT knows this. The book’s deft thematic weaving, its meld of ten voices into one, bespeaks patience, slowness.

For those familiar with the Commodore 64′s output, 10PRINT‘s dust jacket might seem a simple remediation of the maze produced by the book’s “mouthful” of a title. The cover illustration seems to be a white maze overlaying a blue screen, but it’s not. The white bits are made of shapes, Xs that shatter into repeating squares and broken rectangles. The “real” maze, made of forward slashes [/] and back slashes [\], printed on the book’s endpapers, is made to look faded and pixelated as if traveling through time: visually distressed like faux antiques whipped with chains to chip away at veneer.

Such a book coaxes humanists to open it.

Sure, there’s a lot of code. But if you were expecting 10PRINT to read as like a View Source window, you might be delighted (comforted?) to find familiar contexts and theories anchored in medium-specific practice of all kinds. Where programmers see forward and back slashes forming shapes that are functionally distinct — a maze is multicursal, with many paths through it, a labyrinth unicusal — the 10PRINT authors ask “would programming be meditating, dancing, escaping, solving, or architecting a maze? Would the user be Theseus or Daedalus?” (49).

Such questions seem like “bullshit” to some of the programmers on the Slashdot and Reddit 10 PRINT threads. But trash talking seems an ordinary part of hacker culture. It’s too early in 10PRINT’s reception to gauge the book’s success in creating conversations that “transcend” (xi) Twittersmack — er — disciplinary borders.

At the very least the book’s sudden and surprisingly popular reception indicates that 10PRINT is poised to be this year’s Debates in DH: a book regarded as field-defining, and about which conversation might continue all year long. Amazon’s stock of 10PRINT sold out in 3 days (see this handy chart to find your own hardback copy). The free .pdf available at 10print.org has logged over 12,000 downloads as of yesterday morning.

Though some programmers may deride BASIC as the language of “children and amateurs” (159), the authors were right to travel back to the future. They anticipated the overlapping needs of their various audiences accurately and with gusto.

Photo “Spread from 10 PRINT CHR$(205.5+RND(1)); : GOTO 10″ by Flickr user Casey REAS / All rights reserved.

Using AppleScript to Automate Notetaking

Writing setup at London Library[This guest post reprints, with permission, Jason Heppler's post from Saturday. Jason is a Ph.D. candidate in history at the University of Nebraska, Lincoln, where he is also project manager for the William F. Cody Archive. He's also the author of The Rubyist Historian. You can follow him on Twitter at @jaheppler.--JBJ]

On a recent episode of Gabe Weatherhead‘s Generational podcast he spoke with Walton Jones, professor of Behavioral Neurobiology at Korea Advanced Institute of Science and Technology. They talk about Professor Jones’ system for annotating and summarizing academic papers about twenty minutes into the podcast. He’s further detailed his academic workflow on his blog, so be sure to give his explanation a read.

I’ve noted before how I manage my PDFs using the filesystem and Open Meta tagging. I’ve tended to maintain my notes in plain text written directly into DEVONthink, but after listening to Weatherhead’s talk with Jones and reading his post I’ve decided to adopt part of his system.

As a scientist Jones spends much of his time synthesizing the latest research that normally comes to him as a PDF from journals. Where I became interested in his system was 1) his color coded annotations and 2) his method of extracting those annotations to plain text. His system uses colors for different notes, green for references, red for summaries, and so on. Where the system really inspired me was his AppleScript that can process the PDF he has marked up (either in Skim or iAnnotate that scans the PDF and extracts notes based on his categorization using Markdown syntax. He then dumps the notes into VoodooPad. Be sure to read his explanation of his system as my summary doesn’t do it complete justice. [Update: I was remiss in pointing out that the original AppleScript adapted by Walton Jones came from John Sidiropoulos at his blog OrganoGnosi. His blog has lots of advice on using digital tools for academic research.]

The system relies on an AppleScript that looks for annotations in the PDF and extracts the text into Markdown-formatted plain text. I modified the script slightly for my own needs, and made it available here via GitHub’s Gist service. [JBJ: We can't yet embed Gists directly, alas! Apologies for any inconvenience.] For the curious, here’s a partial screenshot of the code:

Screenshot of gist

I take my notes in Skim, which would result in something like:

Skim notes

When the script is run on a PDF, it results in a note formatted in Markdown that looks similar to this:

Screenshot of Markdown output

That’s where the other half of the magic comes in Jones’s system. The note not only includes the text I wanted but also a hyperlink to the page of a particular reference. Transformed into Markdown, the note allows me to click on the reference and be taken back to the source. My notes used to appear similarly, often taking a form such as:

[3] Noting the page number in brackets followed by my notes, thoughts, direct quotes, and so on from a PDF or book.

As I mentioned, my notes were previously entered directly into DEVONthink. But with this new system I’ll be keeping my notes in the same directory as the document I’m taking notes on. From there, DEVONthink will index the directory for easy searching and organizing.

Update on 11/29: Readers have pointed out that the hyperlinking to specific pages isn’t working the way it should. The solution, near as I’ve been able to replicate the problem, points to just how unrobust this system is, unfortunately.

Walton Jones had to work around the problem by writing his own custom URL scheme. You may need to adopt his system to get everything working. But Skim seems to handle page numbers without any problems, at least for me. There are a few things to bear in mind when using the script: 1) The notes must appear in the same directory as the PDF, and 2) the file must match exactly the text in the note (which the script should handle for you). So, for example, example-article.pdf#page=3 must correspond exactly to example-article.pdf and reside in the same directory as the notes, otherwise it doesn’t know where the file is located. Also, be sure that no spaces are included in the filename, otherwise the Markdown linking will not work.

The other area that makes the system tricky to use is the way I’m using it. When I transform the text notes into Markdown, I save the resulting markup as a PDF (either transformed in Marked.app or fed through wkpdf). The PDF file of my notes is opened in Skim, which can handle linking back to the article because all of these actions are happening within the same application. In other words, if you are planning on using the hyperlinking system as I use it, you will need to contain all activity in Skim. Otherwise, you may need to look into Walton Jones’s custom URL scheme. Relatedly, you might check out John Sidiropoulos’s brilliant post on DEVONthink and hyperlinks.

Photo “Writing setup at London Library” by Flickr user TheCreativePenn / Creative Commons licensed BY-2.0