C64 BASIC Workshop at MIT, January 29, 2-5pm

I am moved by the holiday spirit of MIT’s Independent Activities Period (IAP) to announce a Commodore 64 BASIC programming workshop using original hardware.

[Update: The workshop is now fully subscribed, but I will try to arrange for spectators who would like to join us around 4:30pm to see the results of our work.]

C64 BASIC Code running in the Trope Tank

Beginning at 2pm on Wednesday January 29, we will spend about two and half hours working on short BASIC programs. Collaboration will be strongly encouraged; there will be one Commodore 64 provided for each pair of programmers. (If you negotiate with your partner, you may write something individually, however.) It is fine to proceed by modifying programs, and some will be provided for this exact purpose. Programs need not be interactive, but can be. Visual and textual effects will be our focus, but programmers are welcome to work with sound, to develop simple games, or even (gasp!) to write a program that does something useful.

No programming experience (in BASIC, on the Commodore 64, or otherwise) is required. Those who are new to programming can be paired with experienced programmers, if this is suitable to both people. Also, the essentials of BASIC on the Commodore 64 will be described during the workshop. Finally, new programmers can do very interesting work by modifying programs, changing data and parameters and then getting into changing and adding code.

At about 4:30pm we will have a presentation, screening, showcase, or compos of sorts for Commodore 64 BASIC programs in the following three categories:

– One-liner
– (max) 10-line program
– (max) 25-line program

After this workshop, the code developed will be presented and shared on the Web, where it can be run in emulation or by people who have Commodore 64s.

The workshop will take place in my lab at MIT, The Trope Tank, room 14N-233. The site for the lab includes directions for getting there.

The time for the workshop, again, is:

January 29 (Wednesday)

I can accommodate 8-10 people, programming in pairs. Reserve a place by sending me an email. Because space is limited, please promise to come to the workshop if you write to reserve a space.

No Code: Null Programs

Just posted: **TROPE-13-03 – No Code: Null Programs** by Nick Montfort, in the Trope Report series (technical reports from my lab the Trope Tank at MIT).

>To continue the productive discussion of uninscribed artworks in Craig Dworkin’s _No Medium,_ this report discusses, in detail, those computer programs that have no code, and are thus empty or null. Several specific examples that have been offered in different contexts (the demoscene, obfuscated coding, a programming challenge, etc.) are analyzed. The concept of a null program is discussed with reference to null strings and files. This limit case of computing shows that both technical and cultural means of analysis are important to a complete understanding of programs – even in the unusual case that they lack code.

Please share and enjoy. And do feel free to leave a comment here if anything to add on this topic, or if you have a question about this report. I’d be glad to continue the discussion of these unusual programs.

Video of Nanowatt Online

A single-loading VIC-20 demo (3583 bytes) presented on November 30, 2013 at Récursion in Montréal. By Nick Montfort, Michael C. Martin, and Patsy Baudoin (nom de nom, mcmartin, baud 1). This video is of the demo running in the Trope Tank at MIT on December 3, 2013.

Tagged on YouTube as Commodore VIC-20, Samuel Beckett, Electronic Literature, Computer (Musical Instrument), and Demoscene. See also the fuller story about Nanowatt with links to executable code.

NaNoGenMo Wraps Up and Prints Out

There are some things I absolutely must mention at this point, to highlight certain of the many interesting outcomes from NaNoGenMo (National Novel Generation Month):

Alice’s Adventures in the Whale, one of two novels created by Leonard Richardson by computationally replacing all the dialog in one novel with the dialog in another:

>Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, “Can’t sell his head?–What sort of a bamboozingly story is this you are telling me?” thought Alice “Do you pretend to say, landlord, that this harpooneer is actually engaged this blessed Saturday night, or rather Sunday morning, in peddling his head around this town?”

>Presently she began again. “Ka-la! Koo-loo!” (she was rather glad there WAS no one listening, this time, as it didn’t sound at all the right word) “Stand up, Tashtego!–give it to him!” (and she tried to curtsey as she spoke–fancy CURTSEYING as you’re falling through the air! Do you think you could manage it?) “Stern all!”

>”My God! Mr. Chace, what is the matter?” said poor Alice, and her eyes filled with tears again as she went on, “we have been stove by a whale.” cried Alice, with a sudden burst of tears, “NARRATIVE OF THE SHIPWRECK OF THE WHALE SHIP ESSEX OF NANTUCKET, WHICH WAS ATTACKED AND FINALLY DESTROYED BY A LARGE SPERM WHALE IN THE PACIFIC OCEAN.”

>CHAPTER V. Advice from a Caterpillar
>The Caterpillar and Alice looked at each other for some time in silence: at last the Caterpillar took the hookah out of its mouth, and addressed her in a languid, sleepy voice.
>”I say, pull like god-dam,” said the Caterpillar.
>This was not an encouraging opening for a conversation. Alice replied, rather shyly, “There she slides, now! Hurrah for the white-ash breeze! Down with the Yarman! Sail over him!”

Leonard’s other submitted novel used Pride and Prejudice (and Through the Looking Glass). Along similar lines, you may be interested in seeing what Pride and Prejudice looks like without any dialog.

Early in the month, Zarf (Andrew Plotkin) submitted a generated novel that is entirely dialog: Redwreath and Goldstar Have Traveled to Deathsgate.

Ian Renton generated Doctor Who fan fiction using the technique of Bayseian poisoning, which is popular in spam generation. It’s only the only fanficlicious novel; see the generated Austenesque novels of jiko.

I was implicated in inspiring Nif, a palindromic 50,000-word+ novel, the second generated novel submitted (early in the month) by catseye. A remixed and extended version was done by Michael Paulukonis.

Don’t miss Aaron Reed’s Agressive Passive, which details conversation between six housemates about maintaining the cleanliness of their domicile.

And finally, my entry is World Clock, which briefly describes something happening, at some location around the world, at each minute of a day.

The overall “site” for NaNoGenMo, which was the fervent brainchild of Darius Kazemi, is, by the way, this humble GitHub repository.


At Récursion (the Montréal demoparty), we (Nick Montfort, Michael C. Martin, and Patsy Baudoin) released Nanowatt, a single-loading VIC-20 demo.

You can download it and run it using a VIC-20 emulator (or, of course, an actual VIC-20). I run it in VICE on my Ubuntu system by typing “xvic nw” from the directory that contains the “nw” file. If it’s more convenient, you can also download a d64 disk image with Nanowatt on it and load “nw” from there.

It produces 8 KB of English text quoted exactly from Samuel Beckett’s second novel, Watt.

And it produces 8 KB of French text quoted exactly from the French translation of Samuel Beckett’s second novel, Watt.

And the entire demo (including two songs, sound system, code for decompression and display of text, and explanations and greetings at the end) is 3.5 KB: 3583 bytes.

When possible, I will upload a video of the demo running.

This rather esoteric demo was awarded 2nd place (out of 3 entries).

I also got 4th place (out of 5) for my one-line BASIC program that was done as a fast demo, based on today’s theme: “weaving.”


UPDATE: You can run Nanowatt without leaving the comfort of your browser. First, copy this URL into your copy-and-paste buffer: << http://nickm.com/poems/nw >>. Then, go to the page for JS VIC-20. Select the “Storage” menu from the top and choose the option at the bottom of the list, “Carts/Programs,” and choose the top option, “Load Cart from URL.” Finally, paste in the URL that you copied and watch the demo run.

‘NOTHER UPDATE: Video of the demo running on a VIC-20 has been posted.

It’s a Good Word. Maine.

Just back from several travels, I’ve found that there’s a video record online of me, Patsy Baudoin, and John Bell presenting 10 PRINT at the University of Maine way back in April of this year. In our presentation, we answer questions and discuss the origin of the 10 PRINT project and the nature of our collaboration. And I do some livecoding. Pretty often, actually.

Please note that 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 is available as a beautiful MIT Press book, designed by our co-author Casey Reas, ans also as a free PDF.

Here’s the video of our University of Maine presentation on the “10 PRINT” program and book.


A remarkable hypertextual video essay, Parallelograms, has been posted by Jeffrey Scudder. It is composed of an intriguing collections of clips, and includes some fascinating video quotation of (e.g.) Marshall McLuhan, Douglas Rushkoff, Ted Nelson, Alan Kay, and Chris Crawford. Not to mention my colleague Hal Albelson in a wizard hat. Also, I couldn’t help but notice that it shows the 10 PRINT program executing and features a shot of the book A Million Random Digits with 100,000 Normal Deviates.

If these matters at all interest you, do read/watch this video meditation on digital media, society, materiality, matter, the body, and (as I read/watch it) how the computer, whatever its limits, may have still-untapped potential for empowerment and change.

Software Freedom Day

Next Saturday (September 21, 2013) is Boston Software Freedom Day. This event, like the Boston Festival of Independent Games yesterday, is also taking place in Cambridge rather than Boston – at Cambridge College, 1000 Mass Ave, between Central and Harvard Squares.

Come by to hear about and discuss freedoms on the computer and online, privacy, and government transparency. I’ll offer one of the very quick lightning talks at the end of the day, discussing some of the history of creative computing and its relationship to software freedom.

The event is not only libre, but also no-cost. And the cake to celebrate the 30th anniversary of GNU is not a lie.

Learn Brogramming

Sigh. Your introductory tutorial was going so well, but given the massive gender imbalance among programmers and computer scientist, I don’t think this is the best way to be inclusive…

The facts of life in a Ruby tutorial.

The Deletionist

The Deletionist I’m pleased to announce the release of a project that I’ve been working on with Amaranth Borsuk and Jesper Juul for the past two years: The Deletionist. This is a bookmarklet (easily added to the bookmark bar in one’s browser) that automatically creates erasure poetry from any page on the World Wide Web, revealing an alterate mesh of texts called the Worl. Amaranth and I presented The Deletionist for the first time today at E-Poetry in London, at Kingston University.

House of Leaves of Grass

What miracle is this? This giant tree.
It stands ten thousand feet high
But doesn’t reach the ground. Still it stands.
Its roots must hold the sky.


HYMEN! O hymenee!
Why do you tantalize me thus?
O why sting me for a swift moment only?
Why can you not continue? O why do you now cease?
Is it because, if you continued beyond the swift moment, you would soon certainly kill me?

[This “House of Leaves of Grass” is a 24K poetry generator that produces about 100 trillion stanzas. Vast, it contains multitudes; it is bigger on the inside than it is on the outside. By Mark Sample, based on “Sea and Spar Between.”]

Just Posted, Computational, Conceptual

Now online: “The First M Numbers Classified in Alphabetical Order.”

This was my New Year’s poem for 2013. It is based on Claude Closky’s 1989 “Les 1000 premiers nombres classés par ordre alphabétique” [The First 1000 Numbers Classified in Alphabetical Order], which he laser printed and which begins this way:

From Closky's The First 1000 Numbers Classified in Alphabetical Order

A full image of the first page spread (which is the source for the image above), and more context for this work, is available on this page.

The printed copies of my “The First M…” were dot-matrix printed on two connected sheets of fanfold paper. In the printout, as online, I included the program as well as the output.

Challenge: 10 PRINT Screensavers

All right, anyone who is listening.

Someone has written requesting a 10 PRINT screensaver.

I can’t find one lying around the Web – is anyone up for creating one for Windows, Mac, and/or GNU/Linux (xscreensaver)?

It’s be great to make the code available so that people could modify it as they could modify the original 10 PRINT program.

The person seeking this screensaver has suggested, cleverly, that upon exiting the screensaver, the message “BREAK IN 10 / READY.” be shown.

10 PRINT Marches on

The news service of my school at MIT, the School of Humanities, Arts, and Social Sciences, has an article about 10 PRINT CHR$(205.5+RND(1)); : GOTO 10.

Also, there has been some furious and pretty amazing program creation and compaction going on in DOS/x86 land. It all seems to have started when demoscener Trixter (a.k.a. Jim Leonard) decided to port 10 PRINT to x86 assembly. His first, straightforward version was 42 bytes long, but he was quickly able to chop it down by replacing the random number generator with a single instruction: 25 bytes. Getting ready of some of the nice and tidy but strictly unnecessary startup and shutdown code brought the program down to 15 bytes. Then, thanks to the clever use of an opcode that I’d never heard of before which is meant for string comparison and is called SCAS, he was able to trim the code to 13 bytes — the shortest he thought it could ever be.

Of course, someone (Peter Ferrie) found a way to get rid of another byte, so the program sat at 12 bytes long.

herm1t came along to provide an optimization that assumed DOS was loaded, reducing the program to 11 bytes.

And, most recently, Peter Ferrie returned to lop off another byte, showing that the program (on Intel CPUs, at least) need only be 10 bytes long.

Trixter provides the full story (so far!) on his blog, Oldskooler Ramblings.

My joke about this is that the shortest possible 10-PRINT-like program will be a single jmp instruction to a run of 8 or 9 bytes that happen to already be in memory. However, this is probably only a joke: the number of possible 8-byte combinations of bits are 256^8 = 18446744073709551616, so it really isn’t very likely, even for an extremely short program of this sort, that it will just happen to be lying around somewhere in memory initially.

Speaking of the demoscene, I mentioned in my last post that viznut has checked out the book. He’s also written a very nice VIC-20 version of the program that uses two of the tiles from the Black Path Game instead of the original diagonal lines:

0 FORI=7168TO7183:READA:POKEI,A:NEXT:POKE36869,255
1 PRINTCHR$(64.5+RND(.));:GOTO1
2 DATA16,16,32,192,3,4,8,8,8,8,4,3,192,32,16,16

The result:

VIC-20 Black Path Game version of 10 PRINT

Finally, we had a great time exhibiting the 10 PRINT program and the 10 PRINT book at the 2013 MLA’s electronic literature exhibit and presenting the program and modifications of it at the MLA offsite electronic literature reading. Thanks to Dene Grigar and Kathi Inman Berens for curating the exhibit and the reading. And, thanks to Patsy Baudoin, Mark C. Marino, and Mark Sample for joining me for that presentation and for offering commentary (play-by-play and color) as I coded on the Commodore 64.

Code, Poetry Intersect in a Corner

In this episode of Poetry Corner with Guido, Guido the python shares a Gertrude Stein poem titled Sacred Emily.

Poetry Corner with Guido

Jared Nielsen, thanks to his schooling in Modern and Contemporary American Poetry, his ability as a programmer, and his recent creation of a puppet, has developed an amazing conflation of Gertrude Stein, the Python programming language, and the Wonder Showzen episode “Patience.”

Nielsen has been recreating famous American poems in Python or so that they are about Python, as in “The Red Wheelbarrow” and “Song of Myself.”

His project parallels that of Páll Thayer along two dimensions: Thayer, in his series Microcodes, presents short programs in Perl (not Python) that often recreate famous artworks (not poems), for instance Vito Acconci’s Seedbed and Jasper Johns’s Flag.

We must admit, however, that Thayer does not employ a puppet named after Larry Wall.