30 June 2006

Pandora

I've been listening to Pandora internet radio. The product is a preferences engine and a web-based radio. You make your own radio stations. Pandora plays songs; you train it to play stuff you like. (I have no idea what the company is trying to be. I doubt they're making a good living off the ads.)

Today it just “clicked” and started playing song after song after song that I liked. Mostly stuff I had never heard of before.

It has been a little frustrating, in part because you can't just tell Pandora what musical qualities you're interested in. Instead you have to list musicians or songs that you like, and fine-tune it by giving a thumbs-up or -down on individual songs. For me, this is much harder. Trying to teach it what I want on my "Jazz" station (mostly piano instrumentals, some artsy orchestra pieces, and a few songs by Billie Holiday) has so far been futile. Perhaps Pandora can't model my preferences. Or maybe it just needs more time.

21 June 2006

Interactive fiction (continued)

For certain authors, the term interactive fiction is no mere pretense.

Emily Short's Galatea is astonishingly beautiful, though a bit difficult to get into if you don't understand the conventions. The important commands are a topic to ask Galatea about something, t topic to tell her about something, g (for again) to repeat the most recent action, x something to examine something, and z to pause.

If I were to write interactive fiction, I'd end up with something more like Aisle.

16 June 2006

Rules in interactive fiction (and the implications)

Read Natural Language, Semantic Analysis and Interactive Fiction, a paper by Graham Nelson.

Graham argues in favor of rules-based languages as opposed to object-oriented ones.

I concede that bundling properties together into object and class definitions, with inheritance from classes to instances, works well. My objection is rather to the doctrine that when components of a program interact, there is a clear server-client paradigm; that one component exists to serve the needs of another. The contents of a work of interactive fiction are typically not in such relationships. If facts concerning a tortoise must all be in one place, facts concerning an arrow all in another, how are the two to meet? It seems unnatural to have a tortoise-arrow protocol, establishing mutual obligations. Neither exists to serve the other. The tortoise also eats lettuce, meanders about garden locations and hibernates. The arrow also knocks a flower-pot off a wall. By the same token, the world of a large work of interactive fiction is a world of unintended consequences. New and hitherto unplanned relationships between components of the “program” are added in beta-testing, something which the programmers of, say, a spreadsheet would not expect.

But are new relationships among things really so rare? I don't develop spreadsheets; I develop distributed systems that have to interact with several other, very complicated systems. I suspect Mr Nelson is just being coy.

Update: This document might as well have been constructed to be maximally interesting to me. It touches on interactive fiction, programming languages, logic and math (model theory), and linguistics.