What I’ve been up to in 2015

I wanted to make a quick list here of all the stuff I’ve done in the first half of 2015. I’m incredibly grateful to the organizations that have supported my work during this time, most importantly Fordham University’s English Department, where I’m a writer-in-residence, and ITP, where I was an adjunct and research fellow during the 2015 Spring semester. I also received support from the Frank-Ratchye STUDIO for Creative Inquiry at CMU, the School for Poetic Computation, and Recurse Center, where I just finished a two-week residency.

Open-source software

  • pronouncingpy is a simple Python interface for the CMU Pronouncing Dictionary. I found myself copying the same rhyming/meter code from one project to the next, so I decided to factor out the commonalities and put them in a library. My goal with pronouncingpy was to create a “professional-grade” open source Python library, one that I could use in my own projects and that I could recommend to students. I learned a lot in pursuit of that end—things like PEP8-compliance, Tox, and automatically generating API documentation and putting it on Read The Docs.
  • I also made a Javascript port of pronouncingpy, called pronouncing.js. Pronouncing.js supports the same API as its Python counterpart, and can be used both in Node and in the browser. (I used this library for a few other projects; see below)
  • Pycorpora is a Python interface for Darius Kazemi’s Corpora Project. It makes it super easy to use Corpora Project data; just pip install pycorpora and you’re off to the races. The “Examples” section of the documentation is a starting point for a tutorial I want to write about how to use Corpora Project data for quick text generation prototyping in Python.
  • Example Node.js Twitter Bot: I made this because I needed to have some Javascript example code for a workshop I was giving at Recurse Center, and I didn’t like any of the existing Node.js Twitter bot examples. Hopefully it’ll helpful for some people!
  • Context-Free GenGen is a version of Darius Kazemi’s GenGen project that uses context-free grammars instead of Mad Libs-style juxtapositions. Basically: you can write a CFG in Google Sheets and then have a shareable text generator that uses that CFG, all without any programming. I used it in the generative text unit in my Appropriation, Iteration, Recontextualization class at Fordham. You can use Context-Free GenGen here.

I’ve really enjoyed working on these projects, and I’ve been surprised and pleased by the (already substantial!) contributions to several of the projects from volunteers. Even more amazing: someone thought that pronouncingpy was cool enough to port it to an entirely different programming language (Clojure). Exciting!

Classes, workshops and tutorials

Talks and presentations

  • In February, I delivered my talk Beyond the Scrabble Word List at IndieCade East and had a great time there hobnobbing with all of the folks on the vanguard of video game design.
  • In addition to the workshop I delivered in Golan Levin’s Interactive Art & Computational Design class, I also gave a talk called Bots: Some Historical Threads, in which I roll out the “PUDG model” for Twitter bots (Twitter bots are procedural, uncreative, data-driven graffiti).
  • I was invited to speak at this year’s Eyeo Festival. My talk there was called Exploring (Semantic) Space with (Literal) Robots. I had a fantastic time at Eyeo and it was such a treat to meet so many of the artists and technologists whose work I’ve been admiring from afar for years. They should post a video of the talk soon; I’ll post an update when they do!
  • I also gave a “tech talk” at Recurse Center, in which I gave an overview of my work as an artist over the past few years and proposed a few new ideas relating to my ITP thesis. I’m happy to provide slides/references for this talk on request.
  • Oh, and I almost forgot! I was on a panel with Brendan Berg at Facets. Brendan gave an excellent talk about the history of text encoding and I gave my talk about the eschatology of @everyword. The Q&A session afterwards was fantastic and the whole experience was tons of fun!

New artwork

  • I made A Travel Guide on commission from Turbulence. A Travel Guide is a generative text generator that creates random, persistent travel guides for any arbitrary place on the Earth’s surface. I also made a companion Twitter bot for the piece: @a_travel_bot.
  • As part of my job as Associate Editor of CURA Magazine, I helped plan CURA’s Museum in Media Res, a kind of literary hackathon/jam session. In addition to the work by our (amazing) invited artists, the magazine published three new pieces that I made during the event.
  • I made two new Twitter bots: @deepquestionbot, which asks difficult and trivial questions based on inverted facts from ConceptNet, and @cashclones, which invents strange and nitpicky alternate history scenarios based on facts from DBpedia.
  • I’ve been putting a lot of thought lately into my ITP thesis, and how I can extend and build upon that work. To that end, I made a few “experimental textual interfaces” while I was at Recurse Center: Linear L-System Poetry, the Motion-Sick Keyboard and the Rhyming Keyboard (recently featured on Waxy Links!).

Thanks again to the institutions and individuals that have helped me to have such a productive and fulfilling year so far!