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.
- 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.
- 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.
- 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
- As part of the pronouncingpy documentation, I wrote this tutorial and cookbook, which goes along with the more low-level CMU pronouncing dictionary workshop that I developed for Golan Levin’s class and for a workshop I gave at ITP.
- I made a no-programming-necessary framework for creating Twitter bots. Here’s the tutorial for how to use the tool. Like many other such systems, mine uses Google Sheets to contain Twitter API secrets and keys, and to store the list of tweets to send. I used this tutorial in my Fordham classes, and in a workshop at ITP.
- I gave generative text workshops in Golan Levin’s class at CMU (as mentioned above) and at the School for Poetic Computation (notes here).
- I also led a session of the student-organized ITP Python Group, where I gave a tutorial on regular expressions.
- I worked a lot on improving the tutorials and notes for Reading and Writing Electronic Text, the class I teach at ITP. The freshly revised notes are here, including chapters on installing Python libraries, basic creative NLP with Textblob, and making web applications with Flask.
- As part of my teaching duties at Fordham, I developed two new classes: Appropriation, Iteration and Recontextualization and Word Game Workshop. I wrote a little guide to go with both classes: Terms to Know When Talking About Language.
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!
- 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!