Articles by adam

You are currently browsing adam’s articles.

Here’s a round-up of the pieces performed at Hello Word! on May 6th, 2011. Many of the photos below were taken by Aaron Uhrmacher (see the full set here). The performance was the final project for students in Reading and Writing Electronic Text, a course I teach at ITP.

Aaron Uhrmacher and Chris Allick, Showetry. Aaron and Chris presented a number of exceptional pieces generated by juxtaposing lines recovered from phrase searches in YouTube subtitles. The documentation page has an audio recording of Aaron’s performance.

 

Alex Dodge, 新しい言葉 (New Words). Alex used a statistical model of a Japanese lexicon to generate new words that sound Japanese. He then assigned definitions to these words and created example sentences. Alex performed his words in a pedagogical frame, showing each on a separate PowerPoint slide. (My favorite word/definition is shown in the photo above.)

 

Alvin Chang, Hello World News. Alvin scraped data from Twitter and Wikipedia, tagged the words by part of speech, then squeezed them into a context-free grammar designed to mimic the structure of news stories. The pieces turned out great, and the titles that Alvin made up to go with the pieces are hilarious.

Read the rest of this entry »

@everyword in context

Last week Adrian Chen conducted an e-mail interview with me about @everyword. Here’s the resulting article on Gawker. The @everyword account gained about a thousand new followers as a result of the article—not bad for an account that just tweets word after word every half hour!

It’s been interesting to read people’s reactions to @everyword (and yes, I have the Twitter search for @everyword in my RSS feed reader, because I am hopelessly narcissistic). For the most part, the reactions are positive! It’s satisfying when someone is amused by a word that they didn’t know existed (or that they hadn’t considered to be a “word”) or when someone finds unexpected synergy between a word that just got posted and something that is happening in their lives.

Some of the reactions are more critical. Here’s one reaction in particular that I wanted to respond to, from Twitter user @fran_b__:

@everyword They aren’t words unless they have meaning, which implies context. Stripped of context, they are simply (python) string arguments. (source)

This response baffled me, because in my mind @everyword is all about context. For example, here’s the way that I typically read @everyword:

This is a screenshot of my Twitter client on a typical morning. You can see the tweets from @everyword interleaved in the feed. I don’t generally read the tweets in my feed like I would paragraphs or sentences in an essay or a piece of fiction (e.g., I skip tweets, I don’t necessarily expect cohesion from one tweet to the next), but I do tend to read them in sequence. It’s undeniable that the tweets exist in the same physical context here. Because of this, some interesting possibilities for creative reading crop up. It’s easy for one tweet to “color” how nearby tweets are read, for example. I’m not saying that @notch is prone to nutations, or that @factoryfactory and @daphaknee are nutcases, but that’s certainly a reading made possible by the tweets’ close proximity.

There’s also the context provided merely by being in sequence with other words in the @everyword feed. Here’s an example:

I find this endlessly fascinating. When you see these words juxtaposed like this, you can’t help but try to find some connection between them. In some cases, the connection is grammatical (nunnery is of course morphologically related to the word nuns). But nunsnuptials and nursemaid together like is almost like a little narrative. “Nuns can’t have nuptials, and they certainly can’t be nursemaids.” It seems ironic that the words would be juxtaposed like this, and that perception only emerges from seeing these words in this kind of unusual context.

It’s also a cultural practice of ours to consider individual words in the abstract: we pick out our favorite words, we decide which words are commonly misused, we decry our politicians for making up words or using words with a disagreeable frequency, etc. In some sense, a word carries with it a cultural context, no matter where it occurs. One of the intentions of @everyword was to play with this idea: every word has cultural baggage. What would happen if we systematically exposed ourselves to that baggage?

Even if I concede that the words in @everyword are “simply (python) string arguments,” isn’t that also a context? A computer program is a kind of writing, after all. It means something for a programmer to choose to put one string in a program, instead of some other string, or to feed some set of data to a program instead of some other set. Sure, the Python program that runs @everyword would also work with any other arbitrary data set—@everybaseballplayer, anyone?—but the fact that I chose words, and words in this particular order, is part of the context of the piece.

In the end, I think @fran_b__’s implication is that there are certain kinds of contexts that a word can occur in that “count” as meaningful (such as being in a sentence intentionally composed by an individual) and others that don’t. I suppose that for certain fields of study, this is a valid point of view: if you’re analyzing a novel, for example, you might not want to include in your analysis the novel sitting next to it on the shelf. As a writer and poet, however, I find that limitation pretty dull. There’s never been an era in history with such diverse practices for reading and writing text. Why not have as much fun with that as possible?

Tags: , , ,

New Blog: Big Writing

Hey all! I’ve started a new blog over at tumblr, called Big Writing. It’s a notebook for all of the interesting text-, language-, and poetics-related stuff I come across on the Internet. Here’s the mission statement. Go check it out, if you think that’s your thing. (I do still plan to post about my personal and professional projects here.)

Hello Word!
An evening of poetry, performance, and experimental text design from NYU/ITP’s Reading and Writing Electronic Text

Friday, May 6th 2011
7pm
721 Broadway, New York, NY
Ground floor (Common room)
FREE

Over the course of Spring semester, sixteen NYU students have engaged in intense electro-textual experiments: composing, mangling, generating and remixing electronic text using the Python programming language. For one night only, these students will gather to present and perform their experiments to the general public.

Some examples of projects that may make an appearance at the event: movie dialogue remixed in real time; dynamic newspaper blackout poetry; an endless exquisite corpse from Twitter search results; infinite generative creation myths; and much more.

Reading and Writing Electronic Text is a course offered at NYU’s Interactive
Telecommunication Program. (http://itp.nyu.edu/itp/). The course is an introduction to both the Python programming language and contemporary techniques in electronic literature. See the syllabus and examples of student work here: http://rwet.decontextualize.com/

Poster design by Sofy Yuditskaya and Martin Bravo. Download a full-size version here.

Tags: , , ,

Last Baby Standing

Last Baby Standing is a game/sim/toy for Facebook, made during last weekend’s Global Game Jam. The game generates statistics for your Facebook friends, then lets you “mate” any two together, producing statistics and a unique biography for each “child.” The game tied for first place in the “Wild Card” category in NYU Game Center’s chapter of the jam. I was part of the extremely talented crew that made this game—here’s the GGJ page for the game, which includes full credits. And here’s the Game Center’s write-up of the event, which includes a full list of winners and links to the all of the games.

Oh, and here’s the github repository.

The theme of this year’s jam was “extinction,” which we found a bit difficult to work with. For the first few hours on Friday night, we worked on an abstract puzzle/gambling game based on the definition of “extinction” in psychology. (The initial prototype of that game is still in the repository as mimetree.py.) We couldn’t figure out how to make that fun, so we searched for alternative ideas; Last Baby Standing is the result. I’m extremely happy with how we were able to corral all of our technical and creative talents to make something interesting and fun that (mostly!) works great.

Things I learned (mostly technical):

  • FQL is a finicky playmate. Queries that work fine for 200 friends time out with 400. (We used LIMIT clauses and ORDER BY RAND() to get around this limitation. I didn’t know FQL even supported those clauses!)
  • Tornado‘s Facebook Graph authentication mixin doesn’t work right out-of-the-box. I needed to make some changes to the example code and also use the version fresh from the repository (rather than the currently released version).
  • If the whole comedy writing thing doesn’t pan out for him, Rob Dubbin has a real future in generative baby biographies.
  • All you need to produce satisfying portmanteaunomastics is about ten lines of Python code and a regular expression.
  • It is possible to get a decent amount of sleep during the Global Game Jam. You just need to feel confident in the talents and time management skills of your teammates.

I hope everyone enjoys the game! Thanks to the NYU Game Center for hosting, and to Matt Parker in particular for keeping everything running smoothly.

Tags: , , , ,

Since the 2011 version of Reading and Writing Electronic Text begins tonight, I thought I would finally post these photos of last year’s performance event. (Photos courtesy master photographer Rob Dubbin.)

Here are some of the final projects that came out of last year’s class:

Stay tuned for updates about this year’s class!

Tags: , ,

Resolution generator

“Be a good chance of sticking a fork in my eye. Temptations off so that people with garden implements.”

This is just one of a practically infinite number of new years resolutions that can be generated by my latest project, A Random Resolution for 2011. I collected about 50,000 tweets matching the term “resolution” on December 31st, 2010 and January 1st, 2011, used a simple grep to extract substrings that looked like resolutions, and fed the whole thing into a Markov chain text generator.

I love using Markov chain text generators on a corpus like this because they manage to both highlight the similarities among all items in the corpus (any given string of characters is likely to have occurred more than once in the corpus), while juxtaposing parts of seemingly unrelated items in surprising (and often amusing) ways.

Technical details: I built the application in a few hours using Tornado, an open-source web framework from the FriendFeed team at Facebook. The application is running behind an nginx server on an EC2 micro instance (a product I’ve wanted to try since Amazon released it last year). I’m amazed at how these tools made it quick and easy to throw the whole thing together. The text generator is using n-grams of eight characters; I chose eight because seven or fewer characters produced too many non-words, while nine too frequently reproduced tweets unchanged from the source text.

Tags: , , ,

Deluxe feminine monomers

Lipstick Enygma by Janet Zweig is an amazing physical/electronic public text generator, made for the Harris Engineering Center at the University of Central Florida, Orlando. Watch the video below:

The page linked above has more examples of text that the piece is capable of generating (“Modemheads in nerdistan!”, “Hack into me mintily.”) I would love to know what algorithm underlies the text generation! (via today and tomorrow; see also Zweig’s Impersonator, a similar piece from 2002)

Tags: , ,

(update: I made each word in the list after the cut into a google search link, so you can see which -toberfests are -tobertaken. I can’t believe “molttoberfest” doesn’t exist!)

AUTUMN IS UPON US, and you know what that means: the sudden appearance of neologisms and portmanteaux designed to mimic the word “oktoberfest.” Rocktoberfest, Shacktoberfest, pop and lock-toberfest. It’s an annual profusion of textual creativity! And as readers of this blog should know, where there is a profusion of textual creativity, there is a text generator waiting to happen.

So I put it to myself to create a -toberfest portmanteaux generator with the tools most readily at hand: grep and awk. Here’s the command-line I ended up with:

egrep '^[^aeiouy]*(o|aw)[^aeiouy]?[cfhkptx]+$' sowpods.txt | awk '{print $0 "toberfest"}'

The source file sowpods.txt is my standby English word list for text generation tasks. The regular expression reads: “find me every word that has o or aw following zero or more non-vowel letters at the beginning of the word, perhaps followed by a single non-vowel letter, and ending with one or more of any of the following letters: c, f, h, k, p, t, or x.” The awk program appends the string toberfest to matching words and prints them out.

The full list of portmanteaux that this simple program generates (all 365!) is below the cut, but here are a few of my favorites:

  • Miami Heat fans! Start the NBA season out right with Boshtoberfest!
  • Spoonflower announces a two yards for one deal during Clothtoberfest!
  • Gather all ye dandies in your finest lederhosen as you celebrate Foptoberfest! (related: Tofftoberfest)
  • If your -toberfest has a seating capacity of 99 to 500, and you’re not in the “Broadway Box,” it’s technically an offtoberfest.
  • Why yes, there is a festival specifically for the nineteenth letter in many Semitic abjads. It’s Qophtoberfest!
  • When, oh when, during the year can we get together to sharpen and polish our razor blades? Why Stroptoberfest, of course!

Lochtoberfest is already exactly what you expect it would be.

In generating this list, I had two criteria: (a) that around 90% of the generated strings “feel right” and (b) that the string “scotchtoberfest” be included in the results.

Criterion (b) was easily met, but (a) was not so easy. What does it mean for a -toberfest portmanteau to “feel right”? It’s highly subjective. For me, the quality of the vowel sound is key: the initial vowel in the portmanteau must rhyme with the initial vowel in “october.” I also found that the length of the vowel is key: the shorter the better, which is why my algorithm selects only words ending with voiceless consonants. (More on allophonic vowel length in English.) I singled out monosyllabic words simply because they’re easier to grep for.

I’m pleased with the results. A few quick googles reveal that many of these words refer to existing festivals, but many return no results (“did you mean bocktoberfest?”). Let me know if this list inspires you to create your own -toberfest, or if you have suggestions to improve my greps and awks.

Here’s the full list:
Read the rest of this entry »

Tags: , , , , ,

For breakfast and lunch

I love Google Scribe. It’s the ultimate achievement in oulipian writing tools; it’s the flarfist’s only typewriter. It’s the best thing I can imagine someone doing with Google’s resources. It could be an amazing performance tool. Who’s with me on this?

The most remarkable thing about Scribe is that what everyone does when they encounter it for the first time is use it for creative writing. The MetaFilter thread is a good place find examples. Twitter is already replete (1, 2, 3) with Scribe writing games.

Here’s me throwing my hat into the ring, with a version of William Carlos Williams’ “This Is Just To Say” where each line has three or four Scribe autocompletes tacked on:

This is just to say that they are

I have eaten here several times
the plums and their families
that were in their early
the icebox and then

and which are not
you were probably too young
saving the file to disk
for breakfast and lunch

Forgive me allahabad bank
they were delicious and they
so sweet and innocent
and so cold that they were

(bonus: Scribe is a prude, after the break)

Read the rest of this entry »

Tags: , , , , , , , ,

« Older entries