Scholar Profile: Nick Montfort

As part of ongoing research at MIT Libraries, I have been conducting interviews with scholars across campus who create, use, or reuse software to understand more about their scholarly practices.  Below are snippets from my interview with Nick Montfort, a professor of digital media in the Comparative Media Studies and Writing section at MIT.  Nick is also an interactive fiction writer, computational poet, and code studies scholar.    

On Reconstructing Code

“So software or creative computing programs or research programs….these are the areas I work in.  There are different sorts of outcomes and some of them are important software produced at MIT, like Joseph Weizenbaum’s Eliza which is a very frequently cited research system and highly influential – Janet Murray named it the first “computer character.” It’s a simulated parody of a Rogerian psychotherapist….asking for you to speak about yourself, and then reflecting that back for you to hear.

One of the interesting things about this system from my perspective is that the original code doesn’t exist, but there’s a paper that describes its function in great detail.  So there are many, many re-implementations of it.  You can run it on the Commodore 64 and BASIC – there are programs to implement an Eliza-like system for that. So there’s not really a canonical Eliza in the way that there is a canonical Adventure.   The lack of preservation for software doesn’t always mean that– if you don’t have the original code or object– it doesn’t always mean that its not influential, important, able to be cited, able to be part of the intellectual discourse.  Of course, it presumably doesn’t HURT to have access to those works in any case.”

On Emulation as Software Preservation

“An emulator is a software version of a computer. Some people find it very distasteful that the emulator is not the authentic hardware which is interesting to note….the way we see it, you can think about it as a particular edition OF a computer. In fact, the Commodore 64 that’s over there (points)  running that program right now is one edition but there are different editions of the C64 with different hardware.  So for example, there’s been a ROM revision to the Commodore 64, so it behaves a little bit differently depending upon which ROM revision you have.  So, in fact even when say, ‘the hardware,  it’s running on the hardware’…there’s more than one ‘the hardware!’ I think that’s even more obvious today.   So, for example, when you have a PlayStation 3 that is supposed to be compatible with a PlayStation 1 or 2 initially, but then that feature is dropped as they refine the production of it….”

A Close Reading of a Commodore 64 Keyboard

download

“You can see a lot about the layout of the keyboard which is different from modern keyboards.  So if you tried to type in this program that I initially typed in, one thing that you might find funny about it is that if you press shift plus…you need the shift to type plus on a modern typewriter…you get this large cross symbol that doesn’t work – it’s not a plus sign – it’s a special graphical character… the keyboard layout is different in several ways…you have a pi symbol on the keyboard, you don’t have curly braces, you have the arrow keys are in the bottom right and you need to press shift to move up and shift to move left….so maybe these are all curiosities, but when you start to use the system, they change your experience of it.  The other thing is that these graphical characters, including the ones you see on here, are characters you can just type, along with other graphical characters.  You can type them into a program or directly at the BASIC interpreter – you can deal with it quite easily…

The thing about the hardware version then is just from the standpoint of the keyboard, you can see the keyboard is different.  It wasn’t standardized in the way that our Mac and PC keyboards are today, but it also provided these extra facilities like the curious character set of the Commodore 64 was exposed to you because it was actually visible on the keyboard – you could see what the different characters were.  And when you work in an emulator….well, first of all you have to figure out how you want your key mappings to be.  For example, if you’re a Commodore 64 touch typist, you might want your keyboard to be set up in the same physical layout as the C64, but mostly people chose a logical layout where, for instance, if you press shift plus on your keyboard its going to correspond to the plus sign on the commodore 64.  So, you have these issues with setting up the keyboard – that’s one of the reasons why emulation is better suited for joystick games, where it’s a pretty straightforward mapping than using the keyboard in elaborate ways.  On the other hand, if you do want to use an emulator, it provides these extra facilities.  So, you can save the full state of the machine at any point.  So if you look at something more intricate and wanted to show how a word processor or GEOS (the Macintosh-like operating system for the C64) or an elaborate game that has a lot of state….if you want to show how these things worked, then you probably want to save a particular point and you might not always have the capability for doing this within the software itself, but the emulator would allow you to say, ‘Ok, we’ll just take the full machine state’ and will allow a classroom working together or students individually or scholars to come back to that.” 

On Temporality and Games

A_Mind_Forever_Voyaging_Coverart.png“I don’t go very often to play old games, actually…I fear I’m more of a collector (laughs) although I am interested in the ability for people to use these, rather than for their preciousness and economic value.  When people came to play A Mind Forever Voyaging, we did some videography.  It’s a 1985 InfoCom game and it’s very easily played on modern day computers.  But what I did is I set up for a group of four people the first official Infocom edition of the game to run on the Apple IIC.  And then over on this large screen, I connected a computer with the most recent (although it’s pretty old) official Infocom release.  Activision released this Masterpieces of Infocom for MS-DOS Windows 3.1/ Windows 95 at some point in the late 90s.  And I had this running in DOSBox essentially.  So they had their choice between playing these…or both of these…and the group decided they wanted to play on the Apple II and they remarked on some specific material differences there.

One of the things that’s interesting is that the pace of play is different – you don’t have a multi-tasking machine, it’s not connected to the internet, you can’t go and look for hints…you can go and look on your phone, of course, but you don’t have it easily available to you. Additionally, you don’t have the same very rapid pace.  I watched students playing interactive fiction recently and not stopping to read the text outputs, just sort of powering through typing commands.   On the Apple II when you type a command, there would be a little pause before you get a response.  If you type something that’s completely not understood or not useful, you would get a response back fairly quickly.  And then if you did something interesting that changed the state of the game or required disk access, then there would be a longer pause — the disk would spin up, and for players, what I remember and what people report is that there is this moment of anticipation – like ‘Oh Something Is Going to Happen Now! It’s So Exciting!’ So the material qualities of the system there make some sort of difference in play.  I think it’s also why people would play interactive fiction pieces that took maybe ten or twelve hours to work through in the 1980s.  People spend that much time playing games, but interactive fiction specifically is much more abbreviated in comparison to that.  Now people make 2 hour 15 minute games that are for briefer play – people still enjoy engaging with the form – eighty games were released at the IF Competition this year.”

On Authenticity and Networked Everything

“At a classic gaming expo, there was this setup with a big wood-grained cathode ray tube television, and like a really ugly 1970s couch with Atari cartridges on a coffee table and a system in front… and of course it’s in the middle of a convention center, not in someone’s house and you could sit down and play the games in this reconstructed sort of context. So people can always build more or less context around things, to give different sorts of ideas.  We can’t reconstruct even the 70s or 80s in great detail and certainly as you go further back in the history of material texts or literary or gaming or cultural history, its very tough to do.  So I think that there are certain things that people are going to encounter because of historical interest and as scholars.  Their engagement with it might be limited and that’s fine, they also might bring ideas back into the mainstream. So for instance, one of my points in showing people the Commodore 64 is that you can turn it on, you can write a one line program like this… it’s not just historical curiosity about the Commodore 64.  There are a bunch of reasons for this.  It didn’t come with a disk drive, you needed to purchase it separately which allowed for the up-selling of it.  And it allowed for lower cost of that one unit that didn’t have moving parts and so forth.  But it did have BASIC built in, which was the case with essentially all home computers at the time and that programming language did facilitate this immediate exploration of what you could do with computing, being able to do very small scale programs.  Some people would type in pages-long programs from magazines or books and not have any way to save them! So when you turned off your computer it was gone! But it took a long time to type this in, and you might make mistakes and have to go correct it, and then you could play the game afterwards, but as soon as you turned the computer off it was gone but the whole process of doing this engaged you with programming and computing in ways that aren’t as possible now.  

Of course, there are people who did engage with the early World Wide Web that way, they went to ‘view source’,  they looked at how HTML was put together and that’s how they learned.  There’s no view source in the App store…there was ‘view source’ in the 90s, there still is, and this ability to turn something on and immediately type in a short program and make changes to it, work with it, is not something that I bring up…when people come in and sometimes students say I’d like to take your course and it says no programming experience is required but I’m worried that I don’t have programming experience, and I say, ‘Well, sit down at the Commodore 64 and let’s program some.’ And in fact it’s not that much of a challenge when it’s posed that way.  So, it’s still something that is useful today and it’s still also useful as a design critique of current computers. While we’ve added a lot of capabilities, certainly the Commodore 64 is not better at accessing social networks, video editing, etc… but we’ve lost some of the ability to work with computation in direct and useful and powerful ways.  And I’m not sure that an emulator accomplishes that – I think sitting down at a Commodore 64 accomplishes that in a different way, because by the time you have installed the emulator and opened it up and your keyboard doesn’t match etc., you now have made things into a much harder problem then they originally were.”  

On Curating Software-Driven Works: Autofolio Babel 

“This is Autofolio Babel or Portfolio Babel, you could also say, it’s based on Jorge Luis Borges’ Library of Babel – there are a lot of computational projects on this.  One of the things about this piece is that Borges defines quite specifically how the books are supposed to look: that they are 80 characters wide and 40 characters tall, arranged in a square… and Borges specifies a 24-character alphabet with some punctuation symbols. Instead of using this alphabet, I used a unigram distribution of Borges’ story itself in Spanish.  So the most likely thing that one would see coming up on the screen would be a page from Borges’ story, and if you look closely you can probably see, because of accent marks maybe if you study it for a while,  you can tell that it’s Spanish language text in its origin.

 

babel_montfort_screen_shot_2017-03-25_at_13.48.21

Screenshot, Una página de Babel

So there’s a piece of software, each of these screens is driven by a Rasperry Pi Zero and this is just a program, it goes much slower than if it runs on a standard, much larger computer – I’ve rotated the screen at the HTML level – the material aspects of this are a bit different – we have a folio here (two screens), and here (two computers), it’s one folio that generates another folio, although this folio is powering this folio down here. They really generate each other.

One of the ways in which this work might be presented is on a table, possibly in front of a chair, or at a lectern, in a way that is suitable to its nature as a book object rather than some other type of screen.  So it would be similar to the kind of curation that people do with video art and to have that kind of care with a piece like this.  There are elements of these pieces that will wear out.  And thinking about if you were curating [Nam June Paik’s] Electronic Superhighway – it has like 170 CRTs and you can’t just say I’ll throw in a flat panel if one of them goes out…most people can, but not people who curate video art.

It’s not really a software concern at this point, but rather a system concern for a system that includes software.  And having Babel as the software component work – that’s more or less a subset.  I wouldn’t want someone to take video of this and put that video out as a ‘preservation method.’  This needs to be a functioning computing machine for this to work, so the software preservation would be part of it from my standpoint.

So I would want the ability to actively compute and recombine…and then one could do various things…in the same way that if your book wears out, you have some type of manuscript or print codex that is damaged or something, you can think about how you would restore this if it were a book? So you can obviously rebind books, in this example, maybe it would be the opposite of binding — maybe you replace the screens, but keep the casing and power apparatus if there were some problem there.  Certainly, if you needed to replace capacitors, most people wouldn’t say that would be problematic. It sort of gets into being a Ship of Theseus problem… of how much replacement effaces the original. This is an interesting case, but it’s something I would consider within book arts/art curation.  I would say librarians and special collections have a particular perspective on it, and art curators would have another.”  

Describing Autofolio Babel (currently in the Trope Tank at MIT)

“Autofoilo Babel consists of these two Dell displays. They are the same model, logos in the front are covered with gaffers tape, these are salvaged…everything here is salvaged…I bought the Raspberry Pis at some point but not for the purpose of making this particular piece. So this is a type of bricolage maybe…one of the ways you could describe the media of the piece is reused electronics.  These have two monitors that are detachable from these stands, but they are both on the stands that come with them. There are two Mini-HDMI to HDMI male to male cables. There are two micro USB to USB male to male cables. There are two Raspberry Pi Zeros – a very early model.  There’s 8 GB SD cards, two of those.  There’s two of everything because it’s a folio.  And these are bound together with two wire twist ties – and there are two power cords which go from the monitors to a standard 125 volt power supply.  So the SD card has a Raspberry Pi image and that’s an image that is set up to automatically start.  It’s a fairly standard image, but there are a few important changes that are made so it starts a browser.  In this case, it starts Chromium in a particular mode where it doesn’t pester and ask you about unlocking your password and stuff; and it sets it to full screen and runs. It also turns off screen blanking, power saving, and screen saving.  So this will run as long as this is on and then the piece itself that’s in there is a free software piece – it’s a single webpage that is almost the same as the one that’s online at nickm.com –the change really is just rotating this page. 

If I were to sell this to a collector, for instance, they would….I’m trying to think of what the licensing situation would be…there is a slight customization I’ve made to a free software piece, but there’s nothing that the collector would be able to do that would restrict the basic software from being freely available as it is now…and also able to be modified.  People can make their own versions, they can make their own work out of it, as has happened at least once.  So I’ll just show you…..this is just an operating system, that’s Chromium… I haven’t hooked up a mouse, just hooked up a keyboard, but in fact you don’t really need a mouse because you can get to most things on the keyboard here.  So this doesn’t have networking – it’s not on the network and this particular piece is to be read in a certain way for certain values of reading.  This is easier to manage since this is not a networked artifact – it doesn’t receive updates – there are not security issues with it – you can go in and mount this card read only and go through the whole image if you wanted and get the information you wanted or copy it and go through that it.”

On Authorship and Code Modification

“For my dissertation, I created a research interactive fiction system called Curveship with its own domain – so you could do everything you expect to do with interactive fiction, but it wasn’t deployable.  You couldn’t make a game you could give to other people.  So for that reason or other reasons, it never took off for people to use.  But that’s a larger system with thousands of lines of code – in theory it would be a platform for work.  Most of my work is considerably smaller- a page or line of code – these are online for people to use and modify.   Taroko Gorge is an example of something I wrote in Python when I was in Taiwan years ago, and after that made a JavaScript version of it.  And people began to modify that JavaScript version and put in their own words, without having a lot of expertise as programmers or identifying as programmers.  And they started to make their own “remixes” of that work, so there’s dozens of those that are available online.   To me, they don’t really threaten the integrity of the original work. I suppose there’s a possibility that someone could be confused that someone’s later modification might be something I did somehow.  But given the whole context of computing, the real concern is that people are intimidated and don’t think that things are open to modification – I see that it’s much more urgent to make that work available.  

I have a project called Memory Slam which is a slowly-growing collection of classic systems – classic and simple versions that I’ve re-implemented.  So, I’ve made Python versions and I’ve made JavaScript versions…there’s six of those pieces now.  I created this so that people could study and modify these systems but they are not close material re-makings of the systems.  So David Link took an exhibit on tour where he rebuilt Ferranti Mark 1 (the world’s first commercially-available electronic computer) and had things functioning very much like the original Christopher Strachey Loveletter Generator and for the people who got to go to that exhibit, great, but there’s another experience to be able to study and modify the way that code like that functions.  So, for example, could you make a love-letter generator into something that expresses dislike or hatred of someone? Could you make a love-letter generator about food? To what extent are the formal properties of the system susceptible to various changes?  

Capture

Screenshot, Love Letter Generator, http://www.gingerbeardman.com/loveletter/

So when I redid these, the point was mainly to make them available for that type of study, modification, play…I think they are good formal models of those original systems, but they are not capturing all the material qualities.  And the reason I mention all this about Memory Slam is that probably it would make sense to put new versions of that code up – I have Python 2 code – and it might be useful to add Python 3 or somehow find something that could work in both versions.  I could make cleaner html and JavaScript versions. And if I do this – is there a point to keeping the original version and how would that be kept?”  

Dear Reader, I Was Hoping He Would Tell Me

“So one thing I could do is include the git repository in the directory itself that’s available to anyone – so if you really care to know the history of it…you can review that.  When I worked on Curveship, I used Subversion.  Sometimes, it’s rather heavy and sometimes you don’t know whether you will be done with something in 30 minutes or whether it might be a project of several weeks. And you don’t know with a small scale work, do you want to create a branch where you are exploring that you might merge in? This version control perspective is often quite elaborate for very small scale projects.”

On Distributional Poetics

“This 10-print program, which is a random maze generator, is an example of a particular type of distributional poetics, where you see there’s two symbols and in this case, picking from them is equally likely… and that’s a concrete poem or visual art piece that’s made that way. You can make things with words or with lines or syntactically with phrases as well.  There is a shift both as a reader or appreciator of this work from an aesthetic perspective, and as a maker of this work.  It’s that both perspectives need to be…it’s only meaningful if they are attuned to the distributional nature of the work.

10PRINT_06-640x480

Inside 10 PRINT, https://cmsw.mit.edu/slate-reviews-10-print/

So Borges’ description of the Library of Babel is one in which you have an exhaustive library and some pages might be ripped but there’s always a page that is one character different somewhere else in the library, right? So the idea of an exhaustive library in which every possible page like this, every volume containing these pages is represented, and this is a distribution of analog…it’s important also that even though you don’t see this in the work, on the web it makes more sense but these are pages…they are web-pages…so that is something that metaphorically connects through the web to Borges’ idea. So if you come to this thinking ‘it’s a loop of video’ rather than ‘its producing every possible arrangement of these letters’ then I don’t see how your aesthetic perspective on it would be particularly useful – or would allow you the fullest appreciation of it.  I think there are ways in which we are readers of distributions and ways in which we are writers of distributions, and this is keeping things fairly simple, because if you start with existing stores of text and process them, that’s something else. But here we are just talking about a simple distribution system and just processing them right? So the poetics question is – how do we present this in such a way and how do we make this in such a way that it has the inter-textual connections and the metaphorical connections? It is a page, it connects to the description, it implements the specification of Borges’ story in one way but not in another way…and so forth.

So the poetics of this piece have to do with the physical organization of it, what’s shown to someone who is viewing it.  There are certain things… it has a title that evokes something about book arts, for instance, and so a person who knows something about digital media art and something about book arts might know there are things that appear on screens that aren’t videos and might be more aesthetically prepared to receive this.” 

Preservation as Play Back?

“So there’s also the ability to document things.  Compared to documenting a play, it would be significantly harder to have video documentation of a play in part because when you get video documentation it interferes with the production of the play – with the actors putting it on. Here you can just go and take video of this and see what the piece looks like, pretty much, as documentation, but you are not preserving the object any more than taking a good photograph of a painting is preserving a painting.  The archival perspective is often coming from record keeping…in this case, the informational content or the record content is maybe not the main thing going on.”

What is the Scholarly Object? What Should we Preserve? 

“Let’s make a distinction between traditional scholarship and creative practice – so in this piece (Una página de Babel) the software component is referred to by Álvaro Seiça in his PhD and some of his work was actually modifying this piece. So from that standpoint, it enters traditional scholarship, just as there has been practice-based scholarship with other pieces of mine. So in order to follow the arguments that Álvaro makes, in order to follow the discussions in the “great conversation” – what types of software preservation should be done….well, this goes back to Joseph Weizenbaum. The version we have for his system is a LISP implementation that some people call the original, but he didn’t write it in LISP, he wrote it in Michigan Algorithm Decoder, this system called MAD, the code may be around….it might be in the archives….but the core of what was needed was his representation of how that system worked in his paper.  Now could we learn more about the specifics of this — the type of implementation he did, what his process of development was–  if we had that code….yes, of course, that would be very useful.  And we have snippets of example interactions.  But at some point there were lots of these and they were on Teletypes so they were actually in a medium that, if that hadn’t been discarded…there could be a box of transcripts with Eliza that is sitting in the Institute Archives right now.”

  

Leave a comment