Cleanup: Today we did some cleanup and tried out the paper shredder I got Sumana for Christmas. Our paper trails are better-ordered now, and I also took the opportunity to finally make our wedding album.

This was a project that had been maturing for some time. The album is a shiny thing from Pottery Barn (people like to give us presents from Pottery Barn for some reason) and the pictures were from Sumana's sister. The two had been lying in proximity for many months, in the hopes that the album would absorb the pictures by osmosis. Today I decided that wasn't working and manually stuck the pictures in the album, if you can imagine such a primitive task. Now if you come to our house we have something to make you look at.

Retrogaming Times Monthly: There used to be an online magazine called Retrogaming Times. Its publishing schedule became erratic and it eventually stopped publishing. Some of the contributors started up a new magazine called Retrogaming Times Monthly. Since there's a publication frequency right in the name of the magazine, it can never go under! And the back issues are still fun, since the topic is not one that requires news hooks.

: The Medieval Bestiary collates the natural-historical inaccuracies of medieval sources into a single post-Borges work. I'd like to see the Roman and Greek sources included as well, but this is fun.

The echeneis is a fish, half a foot in length, that clings to ships and delays their passage. When this fish attaches to a ship, even in the high winds of a storm the ship will not move, but seems to be rooted in the sea. The echeneis is found in the Indian Sea.

Includes bonus coverage of stones:

The stone called oyster produces pearls. At dawn the oyster opens and takes in the rays of the stars, the moon and the sun, and also swallows dew, and from these come the pearl. The agate stone is attracted to pearls and so can be used to find them.

Does not include hit dice listings for some reason.

Naming Names: A writer's exegesis of his character names. The SSA's baby name rankings really are an excellent tool. My noir story takes place around 2015, and I used it to work backwards towards probable names, with the satisfying result of exobiologists and bureaucrats named Cody and Madison and Amber.

Speaking of names: Reading these old computer-history books it occured to me that it's been a while since people named computers with big acronyms ending in -AC. You used to see this in science fiction as well (Multivac, EPICAC) but again, not so much these days. I think it's time for this naming technique to make a comebac. Apple could call its next computer the UNIMAC or something.


"It's like you don't care!"
"I care!"
"It's like you don't care!"
"I've failed the care Turing Test!"

: Rachel got me some Frommer's books for Christmas. There's one I can't find at the moment which is about day trips that don't require a car. That one's kind of talky, but NYC Free and Dirt Cheap is great, full of things I didn't know and things I kind of knew but never really planned to do, arranged on the general theme of cheapskatery.

: Adam Parrish invented the Micropoet 200, inspired by the Eater of Meaning. It runs on an applet that applies Eater-like transforms to text, including a cool one that makes text degrade the way Nethack engravings do.

[Comments] (3) What happened to cybernetics?: Cybernetics was pretty big in the 40s and 50s. People had all sorts of grandiose goals for it: using it to understand living and social systems, for instance. But it kind of died out; it's the one thing in Stanislaw Lem's fiction that seems dated.

I'm pretty sure cybernetics died out because it had a mechanical feel and didn't fit well with the simulation-based philosophy of the universal computer. But simulations need to be simulations of something, so why not feedback loops?

Call it something I ate: I just realized that Infinite Jest would make a good episode of House.

Yay Report 01/11: Yay:


[Comments] (2) When to Stop: I'm learning more about Mount Rushmore than I ever cared to, which is kind of distressing as I already knew more about Mount Rushmore than I ever cared to. I chose it as a minor example for the REST book because it's a well-known place about which people can have drastically different things to say. But now I'm finding out things that are just ridiculous.

For instance, the original scope of the project included not just busts of the four presidents but sculptures of their torsos. It would also have included "a massive panel in the shape of the Louisiana Purchase commemorating in eight-foot-tall gilded letters the Declaration of Independence, U.S. Constitution, Louisiana Purchase, and seven other territorial acquisitions from Alaska to Texas to the Panama Canal Zone." And Washington would have been wearing one of those big foam "USA #1" hands. You know all those SUV ads that have the SUV climbing Mount Rushmore? They would have been moot because there already would have been an SUV carved into the top of the mountain.

I tried to go to the original source material on that (original source: artsy-fartsy art magazine) so as not to be passing around Wikipedia hearsay, but original source material was 1) behind a paywall that 2) pretended not to be a paywall for the Googlebot but 3) pretended not to be pretending not to be a paywall when I pretended to be the Googlebot. So I'm going to believe Wikipedia's characterization of the article just out of spite.

: Here's the No Twinkie Database, a more general list of game design flaws than my platformer-specific list.

: Sumana's (finally) reading the Baroque Cycle. Unfortunately it would seem as though the supplementary wiki has gone commercial.

[Comments] (1) Signed, Sealed, Repeat: Went to the Met today to say goodbye to the lovely Chinese writing exhibit. Today I decided I would get to the bottom of a mystery that's been bothering me: why do the manuscripts and paintings on display have so many seal impressions on them? Once I noticed this it really started bothering me and I kept looking at the seal impressions instead of the manuscripts. Random manuscript, random painting.

I don't understand a word of Chinese, except as part of a much larger system, but I think I figured it out. In recent works you have one or two seal impressions to act as the artist's signature and/or studio stamp. (I learned this much from English descriptions.) In older works you have seal impressions in those places, but also impressions scattered throughout the document seemingly at random. I believe that those extra seals come from the previous owners of the work.

The impressions aren't part of the work because some of them got cropped when the work was remounted, and in some cases more stamps were added to the new mounting material. I found two pieces that had two impressions in common, but they were made a century apart by different people in different genres. That only makes sense if they were in the same collections for a while. Seals use all different styles of script, but if the seal is part of the work you shouldn't get extremely old pieces with modern-looking impressions on top of them.

Sometimes the impressions actually obscure a bit of the work, which is the sort of sloppy stamping I'd expect from a censor or customs inspector. But why would you need to approve or inspect the same piece over and over again, even over centuries? One manuscript had 90 seal impressions counting duplicates (fortunately, most of these were in blank space at the end), and one unfortunate masterpiece had 27 impressions all over it like misplaced kisses.

In general it seems like the sort of thing people did before certificates of authenticity and modern ideas of art preservation. As I mentioned, none of the contemporary pieces had an unreasonable number of seal impressions (though given the dadaist nature of some of those pieces I wouldn't be surprised to see one where they completely obliterate a text). However this is just my hypothesis, so I invite people who might actually know what is happening (John? Steve?) to set me straight.

Since a lot of the works on display were letters, I've got a far-fetched hypothesis that some of the seals might be postmarks. Doesn't seem too likely.

[Comments] (1) Finite Jest: Today's Gutenberg text is The Jest Book, a prototypical 1001 More Jokes For Kids, which in the introduction mentions an ur-jester named Joe Miller. It presents Joe Miller as an archetype like John Bull or Jack Straw, albeit an archetype no one's ever heard of. I did a little research.

Joe Miller was a real person, an eighteenth-century "actor of farce". But his real claim to fame was having his name posthumously stuck on a book of recycled jokes: Joe Miller's JESTS: Or, the WITS VADE-MECUM. The real author, John Mottley, would have done better to put his own name on the book. But the need to capitalize on Joe Miller's late lamented hilarity took precedence over thematic consistency. Literary scholars agree that Mottley threw in the awesome phrase "Vade-mecum" as a sop to me, three hundred years later.

This uproarious success of this book caused "Joe Miller" to enter the lexicon in two different ways: as a name for any literary joke-boneyard (such as The Jest Book), and more enduringly as a term for the stale joke itself.

Sample totally unprovoked Irish joke from The Jest Book, in the style of 1001 More Jokes...:

A FELLOW on the quay, thinking to quiz a poor Irishman, asked him, "How do the potatoes eat now, Pat?" The Irish lad, who happened to have a shillalah in his hand, answered, "O! they eat very well, my jewel, would you like to taste the stalk?" and knocking the inquirer down, coolly walked off.

Good thing he had that shillalah, or there would have been no punchline!

If you crave entertainment more to the modern taste, here's a New Yorker article about the history of joke books.

: At last, a cartoon that furthers my propaganda war against the Ice King. Includes John DiMaggio. via Ryan.

[Comments] (1) My Favorite Mortal: We came up with this idea for a 60s sitcom of the fantastic, in the style of Bewitched or I Dream of Jeanie. One of the deities of the Greek pantheon comes down from Olympus and becomes espoused to a mortal, takes on a day job as an advertising executive. Not only is this the top job in 60s sitcoms but its theme of mortal-manipulation fits in well with the preexisting skill set. There are, I hardly need to point out, hijinks aplenty in this concept.

We didn't reach agreement on which deity it should be. If it's Zeus you can have a funny theme song about a swan/shower-of-gold encounter gone awry, but that's about all Zeus has going for him. What about Athena? Still working on the concept. There's no rush as it will be quite a while before time loops back on itself and the 1960s come along again.

[Comments] (1) How Sergio Leone Stole Christmas: I just saw an abandoned Christmas tree rolling down the street like a tumbleweed.

Ancient Chinese secret, huh?: Seth asked "an actual Chinese art historian" about the seal impressions on Chinese paintings and got a detailed answer, which I summarize:

In general, metadata adds to the history of the object, and the mere act of adding metadata doesn't damage the object. But you need to be careful about how you add the metadata, because poorly-applied metadata will damage the object. The specific example given was a very Seth-ish example about what kind of glue you should use when affixing bookplates to books, but hopefully there was a subtext that you shouldn't stamp right between the sheep and the goat.

Very informative! Thanks, DrK.

[Comments] (4) : I'm a Jolt Awards finalist!

: This is even cooler than the Mandelbrot generator. Via clickolinko I found this excellent function which you shouldn't click just yet because I've got a more entertaining presentation of it. You're supposed to graph the function

1/2 < |_mod(|_y/17_| 2-17|_x_|-mod(|_y_|,17),2)_|
over a certain range. Here's a Python program that does it:
from dmath import getcontext, Decimal, floor
getcontext().prec = 550

# Tweak these to get a larger or smaller-scale graph.
X_STEP = Decimal("1")

# Don't mess with these.
X_MIN = Decimal(0)
X_MAX = X_MIN + 105
Y_MIN = Decimal("96093937991895888497167296212785275471500433" +
                "96601293066515055192717028023952664246896428" +
                "42174350718121267153782770623355993237280874" +
                "14430789132596394133772348785773574982392662" +
                "97155171737169951652328905382216124032388558" +
                "66184013235585136048828693337902491454229288" +
                "66708109618449609170518345406782773155170540" +
                "53816273809676025656250169814820834187831638" +
                "49115590225610003652351370343874461848378737" +
                "23819822484986346503315941005497470059313833" +
                "92264972494617515457283667023697454610146559" +
                "97933798537483143786841806593422227898388722" +
Y_MAX = Y_MIN + 16

fl = floor
# Performance speedup
FLOORS_DIV_17 = {}
def fl17(n):
  "A memoized floor(n/17) function."
  f = FLOORS_DIV_17.get(n)
  if not f:
    f = fl(n/17) 
    FLOORS_DIV_17[n] = f
  return f    

half = Decimal(".5")
def f(x,y):
  return half < fl((((fl17(y))*(2**((-17*fl(x)) - (fl(y) % 17)))) % 2))

y = Y_MIN
while y <= Y_MAX:
  x = X_MAX
  while x >= X_MIN:
    if f(x,y):
      print "*",
      print " ",
    x = x - X_STEP
  y = y + Y_STEP

It uses the dmath library so I can call the floor function on an arbitrary-precision decimal. Anyway, you can run that program yourself or you can see my premade ASCII graph of the function If you graph the function over other ranges you can see other patterns, but none so striking.

Lots more interesting empirical math in this paper.

Deerstalkerstalker: I had an aggravating flu the past couple of days so I was in bed reading a big book of Sherlock Holmes stories. This was not a complete Sherlock Holmes, like the two-volume set I read about fifteen years ago when I had the flue, but it was all the stuff that was serialized in Strand and illustrated by Sidney Paget. These illustrations are interesting because I'd read from various sources that they, not the text of the stories, were responsible for creating the modern image of Sherlock Holmes.

This is true as far as it goes. Holmes is depicted throughout as being gaunt and angular though the text never goes further than thin and stringy. What I'm not so sure about is the deerstalker cap thing. It's not as clear-cut as "Paget did it." It looks like Paget introduced the deerstalker as an innocuous one-off, and then fans took it and spun it out of control, the way you get entire franchise novels nowadays based on an offhand remark in the canon.

We begin the hat search. The fourth story in The Adventures of Sherlock Holmes anthology is "The Boscombe Valley Mystery", and the first picture shows Holmes and Watson travelling in a train. Holmes is wearing the deerstalker (text: "close-fitting cloth cap") and the cloak, which is apparently an Inverness cloak (text: "long grey travelling cloak"). Very iconic. But they never show up again til the first story in Memoirs of Sherlock Holmes, "The Adventure of 'Silver Blaze'" (visible here. Again, the drawing shows Holmes and Watson traveling in a train, and he's wearing the hat (text: "eager face framed in his earflapped travelling cap") and cloak. It never shows up again for the rest of the book. This seems to indicate that the deerstalker and cloak are some kind of specialized outfit for traveling by train.

Doyle kills Holmes off at the end of Memoirs, published in 1893. Next is the novel The Hound of the Baskervilles, serialized in Strand in 1901-1902. Again Sidney Paget does the illustrations and again Holmes never wears the deerstalker, despite spending most of the book in the country, a faraway place accessible only by train.

Then, suddenly, in 1903, a new set of short stories: The Return of Sherlock Holmes. And suddenly the deerstalker is everywhere! He wears it (with a trenchcoat) in the first story "TAot Empty House", in which not only does he not board a train, he never goes any further afield than next door! The deerstalker shows up again in "TAot Dancing Men" (where Holmes and Watson are about to board a train), "TAot Solitary Cyclist", "TAot Priory School", and "TAo Black Peter". In none of those is Holmes wearing the famous cloak, and in the last three train travel is implied in the text but not shown explicitly. Note that the hat is not completely correlated with train travel: in "TAo Abbey Grange", for instance, Holmes is depicted in a train carriage, but wearing a jacket and top hat.

What happened? It looks like the deerstalker became part of Holmes folklore between the time of Holmes's death and retconrrection, to the extent that, as the world forgot the Victorian taboo on wearing deerstalker caps when not actually inside the train car, Paget himself felt pressure to draw the cap even when Holmes was nowhere near a train. The illustrations for Pursuit of the House-Boat, published in 1897, shows Holmes in what appears to be a Stetson, so I think it was after that.

That's cutting it pretty close, but The Definitive Holmes gives the date as 1899, when William Gillette took to the stage with a hit Holmes play. He wore the deerstalker on stage, probably based on the drawing from Boscombe or "Silver Blaze", and that sealed it. Proof of Gillette's mythmaking power is that he also introduced the curved pipe.

This doesn't explain the lack of hat in the illustrations for Hound, nor these 1892-1893 illustrations that show the hat prominently despite the absence of any train. Of course, if one person can take the wardrobe in one drawing out of context, so can another person.

I am now officially tired of talking about the semiotics of hats.

: I'm having a lot of fun searching through the New York Public Library Digital Gallery. See, for instance, the Frank E. Buttolph collection of turn-of-the-century menus. Hey, and look at those NYPL stamps all over everything.

[Comments] (2) : Another thing I did while I was sick was watch a bunch of Space Ghost. Not Coast to Coast, but the original Hanna-Barbera animations. Usually sentences of that form are intended to imply that the "original" is superior, but sentences of that form don't usually have "Hanna-Barbera" after "original". Space Ghost is as bad as every other Hanna-Barbera animation, and the Cartoon Planet recontextualizations, despite being often puerile and childish to the point that Sumana won't watch them with me, are greatly superior by any measure.

This makes catching up on the Space Ghost canon a good way to use time when you're sick but can't go to sleep: even when you feel like you can't do anything you're up to the task of comprehending a Hanna-Barbera cartoon. The stories are dull, the animation is yabba-dabba-lame, and the orchestration is almost always this ponderous horn section stuff. On the plus side, the art itself is good, the guest villains are often excellent, and sometimes the horn section gives way to '60s jazz.

It's pretty clear that the scripts were written in total disjunction from the animation, because everything that happens is both shown and clearly narrated. It's like the script to a radio show with no foley. Made up example: "I'll open the door. What's that coming through the door? Some kind of... monster! It's got me! I'll just... use my power bands!" Actual quote: "I've got to stall for time!" Truer words were never said.

In the first episode, Space Ghost and his pals go to another planet and just complain about everything, like stereotypical American tourists. Hey, people live on this planet! Or did, until you blew it up. "I can only pray that these poor creatures will find a home." My heart bleeds for your concern, Space Ghost. How about not blowing up the home they already have?

I only remember one funny joke. Villain: "Behind that door is a super-mechanical creature who needs only one thing--the brain of Space Ghost!" Space Ghost: "Oh, that routine!" Lots of unintentional jokes, such as Tansit's reassuring: "No threat, Space Ghost. Just a demonstration of my newest weapons of destruction."

It was fun to see Zorak and Brak. Zorak sounds just like in C2C, but Brak has a kind of German accent. Like I said, the guest villains are the best part. Sometimes you get a Law and Order type intro where the villain finishes off some unfortunate cargo ship and then Space Ghost comes over to investigate.

: This Star Wars theory makes a fair bit of sense, but I'd just like to point out that the only way to make the whole mess hold together is to give all the connecting knowledge to the two characters who never speak English.

[Comments] (3) : It really is nice to watch snow fall. People aren't kidding.

: Wow, I didn't know there was a print version of Diesel Sweeties. It's like an alternate universe where all the jokes are toned down for a mass audience.

This Person Doesn't Stop Search Requests: A while ago. Today: 'one day in the life of bubble-gum' 'story'. If I get that search request one more time I will write a "day in the life of a piece of gum" story. This doesn't sound like a threat but it is.

: I'm working hard on finishing the first draft of the REST book, but as part of my old-stuff-cleanup project, I've also put up some of my better stories from many years ago on segfault.org.

[Comments] (1) : I wrote about Atom and the Publishing Protocol thereof all day and I'm tired, so instead of real content let me present an addition to the page I put up yesterday. The list of my good Segfault stories now also has links to my three sons Be Dope stories, which were mellower than my generally low-pH Segfault writing.

: I just got 419 spam from Flammy Babyface.

[Comments] (2) : This breakfast cereal has "the goodness of soy". What if I want the evil of soy?

: Joe Mahoney reminds me that he did his own Segfault retrospective about a year ago.

: Hyperion. Bop be ba de ba.

Story Titles:

Update: this was supposed to go into my private notebook, but oh well. Feel free to take my lousy story titles.

[Comments] (1) The Sparrow: Man. Not as good as Fiasco, but more psychically traumatic, so it earns a high place in the "first contact goes catastrophically wrong" subgenre. After a long and excellent buildup the ending lacked a lot of plausibility, but I admire a writer who's willing to develop well-rounded characters and then just kill them off (not a spoiler). The timeline jumped around a lot but it never got confusing except once when there was a flashback inside a flashback. Is the sequel good?

: Wrote about HTTP caching today. The draft of the book is now basically done, except for Sam's chapter and the contributed section on Django. Caching was difficult to write about because it's a huge topic that I don't really want to cover in detail. I ended up giving just a couple recipes a server can use to say "cache" or "don't cache".

: Rachel has a phone interview coming up and wants your advice.

[Comments] (4) Drafted: The REST book draft is done! Don't get your hopes up quite yet; by my estimate there's still about a month of work to do. But we're getting there.

Update: Just to be clear, the month of work is work Sam and I have to do. Then there's a couple months of work O'Reilly has to do, on top of that.

[Comments] (3) : We just saw a Good Eats where Alton Brown invented the cornballs from Arrested Development. (Recipe not up yet.)

[Comments] (7) MoMA: Hadn't been to the MoMA before because I dislike paying $20 to go to a museum. I missed the "Dada at MoMA" exhibit because of that. Anyway, Andy came up with a scheme to get us in for free, and today we went together. Man, a lot of that stuff was lousy. There should be tighter standards for terms of art like "embedded". But the top floor made up for it with a Paul Klee room, some Picasso, and the first Duchamp I've seen in person. The Duchamp plaque gave the standard (false) story of Three Standard Stoppages (contra), but I've long since given up on expecting New York museums to change their signage in response to Stephen Jay Gould articles.

Also, you know Alberto Giacometti? He did those hideous (not in a good way) bumpy sculptures of really elongated figures. I hate those suckers, and they're in every single museum (Andy commented on this as well). And yet, MoMA has what's probably my favorite sculpture of all time, The Palace at 4 A.M., and it turns out that was done by Alberto Giacometti! The mind boggles!

TPa4AM is much cooler in person than in a dinky black-and-white photograph reproduced in an art book you saw in high school. I always thought it was a metal sculpture, but it's wood, which is great. And—let's be clear—it's got a pterodactyl.

PS: The Persistence of Memory is tiny! How did Dali cram all that graham, where graham=detail?

Ancient megafauna or Margaret Dumont-esque socialite?: Vanderhoofius.

[Comments] (3) Search Request Poetry: Here's one I call "poetry that you can read right now":

A certain web searcher petitioned
For a limerick to be commissioned
Its design would allow
You to read it right now
Please register for the full poem.

[Comments] (1) Like a crocus through the earth: While fixing up a sample client yesterday I saw that the REST book is now on Amazon. The new, grammatical name is RESTful Web Services (or possibly the incorrectly-capitalized Restful Web Services). Anyway, you ask: is the May 1 publishing date an accurate date? To which I say: MAYBE. Back to work.

[Comments] (7) : I want to put an appendix in the REST book that lists a bunch of public RESTful web services. These are real services, or real products that create services when installed, and not models for services or service toolkits. So Rails and the Atom Publishing Protocol would not be on this list, but specific instances of the APP (like the Google Calendar web service) would, and a piece of weblog software that supported the APP would as well. Here are the ones I remember mentioning in the book:

Tell me about the others in comments.

Update: I know now about this list of APP services.

That resource really held the service together:

Sumana, reading my outline: "Don't Bogart the Benefits of REST"? Is the Dude going to make an appearance in this book?
Leonard: No...
Sumana: Why not?

[Comments] (1) : I thought I'd finished another SF story last night, one short enough to submit to Strange Horizons, but Sumana read it and revealed that it needs to go back in the shop. It turns out my "exposition through sidelong glances" technique falls apart in stories shorter than about 5000 words, leaving readers mystified. So back to the worldbuilding board.

[Comments] (3) : If you read the cool blogs you may have seen this offer for free sourdough starter. That's my family's sourdough starter and I highly recommend it. I have my share in the freezer right now and I should probably do something with it.

: Sumana quote: "J2EE: designed by committee, and used by committee."

Titles: I haven't read any of these books, but recently the new Gutenberg texts have had really interesting titles:

[Comments] (3) Paranoia: I just got spam with the subject hello from mallory.

: "Automat" Sells Toys to Youngsters! Youngsters riot in streets! via Kevan.

: Cube! The fun cannot be halted! I enjoy that video because it's Aqua Teen Hunger Force style humor that Sumana doesn't want to throw across the room.

Incidentally, last night I told Sumana a story to get her to go to sleep. The story turned into a heist movie in which cows robbed a convenience store with the help of the Mooninites. The movie was called "Ocean's 7-11" and it included the line "They've cleaned out the Twinkie safe! Now, the Ho-Hos! Even the Little Debbie Snack Cakes will not be spared!" It was a very exciting story and I was fairly disappointed when Sumana fell asleep and I was left with all this story-adrenaline in my bloodstream and no way to get it out. Who needs to remember dreams when pre-dream stories are probably better?

Tomorrow I have to do a bunch of WADL work.

: This proto-REST article from 1996 is pretty interesting historically (via). Does anyone know of an earlier writeup of that kind of idea?

: I keep thinking Wikisky is the name of a drink, but it's actually an attempt to make astronomical objects addressable. The Google Maps-like interface implies a very strange cosmology, but it's very cool. Try it with the SDDS images on.

[Comments] (3) REST Reviewers: Need some more people to look over the REST book before it starts going through the O'Reilly publishing pipeline. I have specific questions for people skilled in Javascript, demolition, HTTP headers, XMDP, and explosives. But I also want people who know about RESTful web services to look over the theory, and people who are curious to read it and see if they learn anything.

Oh, also if you know of any useful REST documents besides the obvious ones and the ones here, let me know so I can put them into an appendix.

Update: send me email (leonardr at segfault dot org) if you're interested so I don't need to hunt down your email address.

: Hey, the 2nd edition of Python in a Nutshell has a little section on Beautiful Soup. I didn't know that.

: Two supernovas?

Mutual of Omaha's RESTful Kingdom: My excellent reviewer Aron Roberts found a very strange web service: the NEEScentral Web Services API. It's designed for earthquake engineers, a shadowy lot whose job is never fully defined—do they prevent, detect, or cause? The RESTful service gives resource-oriented access to an earthquake engineer's sinister "Project"s, which are full of "SensorLocationPlan"s and "Material"s and "SimilitudeLaw"s. I have no idea what the words mean in this context, but I understand the interface perfectly well.

Aron calls this "a well considered example of a discipline-specific API, far outside the more typical realms of computing, e-commerce, and social software." I'll add that it's odd to see a page full of jargon, half of which you understand and half of which is totally opaque.

: Am I crazy, or is White Noise almost word-for-word a book Philip K. Dick would write?

[Comments] (2) : In the supermarket by my house there's this wall full of Polaroid photos of people. For over a year I had no idea what these photos were. Then today I realized 1) all these people are holding groceries, and 2) they all look unhappy. They're shoplifters who got caught.

[Comments] (1) And you thought I was over it: MOLA! via Sumana.

[Comments] (2) Kannada: Sumana and I are going to India soon so I'm trying to learn Kannada. I've never been very good at learning languages. Sumana tried to comfort me by saying that I'll know enough to impress people and then they'll switch to English. Except that's not why I'm trying to learn Kannada. Me: "I'm not afraid I'll be stranded in a foreign land with no way to impress people." Sumana: "Huh, I guess I kind of am."

We watched some Hanna-Barbera-esque cartoons narrated in Kannada, with Sumana translating. Sumana gets better at understanding a Kannada sentence the closer it comes to a complaint. She knows "very angry" and "become angry" and "this little whippersnapper's stopping me from doing something in my own house", but we had to look up "love". Oh, she also knows "bath" (snana).

Cooking Ruby Like The French Cook Ruby: The Ruby Cookbook has been translated into French. Rather than an idiomatic title they chose Ruby par l'exemple, which I'm actually glad of: I think the pedagogic power of the Cookbook has been undermarketed. Plus, it was translated by Eric Jacoboni, who did some review for the original Cookbook.

Speaking of idiomatic translations, the French translation for O'Reilly's "In A Nutshell" is "en concentré."

: Sumana should enjoy this fake infomercial.

[Comments] (2) Crutches: I've noticed crutches I use in my long-form nonfiction writing; for instance, in the Ruby Cookbook I relied very heavily on the semicolon, for no good reason. The "See Also" sections at the ends of recipes are full of semicolons when I should have just used periods. I actually got rid of those semicolons, but many of my edits were lost by the incompetent post office.

In the REST book my crutch is the phrase "for instance". For instance this, for instance that. Again it can usually just be cut. I think I got most of them.

Argh: Lousy Kannada vowel modifiers. I can transliterate words at about a minute a letter.

[Comments] (1) Code Complete: Sam's big chapter is done, the authentication section is done, and I've sent the REST book off to the proofreaders. We still have some TODOs to take care of, and we'll be changing it later in response to feedback, but it's basically done. We're very happy with how it's turned out. It really shows what the REST ideas can do without sugar-coating them.

: My box of raisin bran says: "Erewhon was a utopia where each individual was responsible for his own health." That's a nice way of putting it.

[W]hereon it came out that illness of any sort was considered in Erewhon to be highly criminal and immoral; and that I was liable, even for catching cold, to be had up before the magistrates and imprisoned for a considerable period—an announcement which struck me dumb with astonishment.

[Comments] (4) : After going through much stalling and bureaucracy, I just got the post office to agree to pay my insurance claims. With one exception (the person I called today to reopen my claim), every single USPS employee I've dealt with through the entire process has been totally unhelpful, patronizing, and only interested in passing the buck.

My claim was held up because I didn't put down "dates of purchase" for things I inherited. I sent them a letter explaining the situation, which they lost or ignored. Then they closed my claim for "inactivity". I got them to reopen the claim today. They called me and still wanted dates of purchase. I suggested they put down my mother's date of death for the date of purchase. We settled on me making up random dates for them to put down.

You always hear about postal service employees delivering things despite impossible odds. In my letter I promised to swallow my pride and publicly praise the postal service if some enterprising soul would put in some effort to find my packages instead of working so hard to delay my claim. It turns out they lost my letter too. Screw them. They get this instead.

PS for posterity: If anyone finds my packages I'll donate $800 (twice the amount of my insurance claims) to a charity of the finder's choice. My package codes are VE866819288US and VE866505200US. They're plastic tubs: one transparent containing breakables, a Mars globe, and an antique bedside lamp; one gray with a red lid, containing red-bound scrapbooks and a compact Oxford English Dictionary. This offer does not expire.

: In non-disastrous news, there's a Java-specific REST book in the works.

: "Writing Science Fiction and Fantasy"—cool online beginner-level workshop. Kannada is vexing me.

Frak! It's full of stars!: Yesterday's Battlestar was really cool: the fleet was refueling at a gas giant, and they showed people flying through the atmosphere of the gas giant, but there was no overbearing Star Trek voiceover or West Wing exposition explaining exactly what they were doing. Also, gas giant. Whoo!

[Comments] (1) : Hey Rachel, Harry and the Potters played at Jake's junk store.

: At last, the robotfindskitten walkthrough. Via clickolinko.

[Comments] (1) : I complain a lot about bad customer service, so I'd like to tell you about a time customer service improved. In 2005 I wrote some stuff about Amazon's web services (service, at the time) for Beginning Python. I needed a tiny clarification so I sent an email to Amazon. I did the little dance I do when triggering customer service to try and avoid being treated like an idiot. I clearly explained my problem and cited specific sections of the document I was having trouble with (call it document X). I got back a boilerplate response saying "We value your existence. Please see document X." I got mad and I sent a pissy response which they didn't bother with.

Today I wanted to talk to Amazon about stuff I wrote in RESTful Web Services. I sent an email to the contact address of the AWS weblog. Now I'm having a conversation with two real people who are interested in the book.

What happened? There are a couple obvious differences. The first is that I'm writing a book for O'Reilly called RESTful Web Services, not a book for Wrox called Beginning Python. My publisher has more cachet and my topic is hotter. But the Amazon of 2005 didn't even care that I was writing a book: it just scanned my email for a keyword and matched it to some boilerplate.

What actually happened is that Amazon Web Services got a weblog. With a few exceptions, even corporate weblogs are written by specific people, and you can contact those people. But why did AWS get a weblog, and why do the people who run this weblog care about my book? How come it's now part of somebody's job to see the opportunity in my email and respond to it sanely, when it wasn't in 2005?

These days, Amazon's web services make money for Amazon. This was true in 2005, but back then all the money came in as retail purchases. Now people are hosting websites on S3 because it's (apparently) cheaper than having a rack of boxes and a sysadmin. That's not much income compared to Amazon's retail business, but it's nonzero, and it shows up as a separate line item. Now it makes sense to actively promote these services. Which leads to the weblog, which leads to real people talking to me. In 2005 my email was a cost to be borne as lightly as possible. Now it's a potential source of profit.

I'm going to drift into the semirelated topic of business models for web services. (I don't cover this at all in the book, which is purely technical.) A lot of web services are prestige items or loss leaders. So are a lot of websites, actually. This is the underlying reason why Google shut down its SOAP-based search service. Google's business is to deliver ads, not search results. Google already has huge mindshare in search, so the SOAP service served no business purpose. Now they expose search results through an ad-laden Ajax widget whose TOS prohibits you from changing it. If you want programmatic access to search results you use Yahoo's service.

My hunch is that users get treated better when the business model is more transparent. Some web services bring in money directly. Some are exposed to people who are paying for something else. Some are run by volunteers or nonprofits. I hesitantly include in this category services exposed within a company.

My hunch on top of a hunch is that the business model can be more transparent when the web service doesn't just copy some preexisting website. That is, when a client can't screen-scrape something that's already available for free and have a "web service" that's just as good, or better.

[Comments] (2) The Golden Age: That book was 100% exposition. ("As is already encoded in your cognitive matrix, Hyperbob...") Then you get to the end and they want you to buy another book. I dunno. Is there action in the next book?


Also, due to limitations in XML, [? -ed.] we will have to integrate a great number of the footnotes into the text. We can do these as official notes and warnings as well as parenthetical asides.

I hope David Foster Wallace never writes an O'Reilly book.

[Comments] (4) Make: Sumana and I went to a store called Make (no relation) where you paint ceramic things, then come back in a week to collect them. Most of the ceramic things were useless tchotchkes, but they did have plates and coasters. We made four coasters and they turned out pretty nice despite my general sloppiness. I took some pictures today. Sumana did the stripes and the squiggles; I did the ladybug and the lines.

Our trip: So we're going to be in Mysore from the 10th until the 13th, and in London from the 13th until the 16th. If anyone lives in those areas and wants to hang out, please email me. This is a very hanging-out-centric trip but we can always fit more people into our interaction schedule.

[Comments] (2) London: In London. We saw many interesting things in India, including monkeys, a juggernaut, and (I'm pretty sure) a cop being bribed with a coconut. Also things that I took pictures of. I've learned enough Kannada to refuse offers of food. We're currently planning activities for London, so if you're Kevan and I haven't called you back that's why.

[Comments] (3) : Travel blah. Got bumped to a later flight due to NYC snowstorm. Said snowstorm also froze the cargo bay doors shut, so we waited around the luggage claim for about an hour and a half. You're not interested. Anyway, we're home. Nick and Duncan, sorry for not seeing you while in London. On the plus side, we met Kevan and Holly for the first time. And we helped a Swedish guy named Magnus get into Manhattan. More later.

Also, just call me Uncle Leonard!

Giles Goat-Boy: What was that, a Terry Pratchett novel?

[Comments] (3) I have some... inadvertent discoveries!: The Indian 50 paise coin is attracted to a magnet. I don't know of any other money that does that.

: Can't sleep for half an hour because I just took my antimalaria drug, so weblog entry time. There is no rest for the holiday-maker. As soon as we came back, Rachel came to town. Today I went out with her seeing sights. We went to the Cloisters and then we decided to go to the Met for the hour before it closed. As we came in who did we see rolling towards the exit but Peter Hodgson! [Last seen in NYCB #502! --your pal Stan] Despite the alleged later closing time they started herding people out of the Met about 5 minutes after we came in, so our sojourn there was brief.

We walked with Peter through the park, and then Rachel and I went to a fancy dinner with Rachel (Chalmers). Sumana could not come to dinner due to an ache of the stomach. Now we're exhausted from walking around all day.

That sounded really boring despite the compliment Avedon paid me when we were in London: "You think he's going to say something boring but then he says something really funny." Sorry. My heart's not in it; I'm just writing this for something to do until I can lie down. So two more details:

Peter said that the Met guards have a ritual to flush people out of the museum. They start at the points furthest from the exit and converge on the exit, shouting and clapping and driving all before them. When they reach the exit it's like this T.G.I.Friday's Götterdämmerung and people wait outside the Met just to see it. We did not wait to see it, so I can't verify.

We ate at Brasserie 8 1/2, a place not as fancy as WD-50 but still pretty good. My goat cheese/mushroom tart was unrecognizable as such, but very delicious. I had a dessert called the "Ring Ding Dome", which sounds like a level in a Mario game.

[Comments] (2) Stranded: I dislike the Strand bookstore in Manhattan for a number of reasons. As pointed out in John Henry Days, New York media people are always getting review copies of books and upon receipt they immediately trot over to Strand to sell the review copies for a couple bucks. Strand has whole aisles of review copies in the basement, fifteen copies of every lame-ass nonfiction book from the past two years. Who buys them? I suspect the only buyers are the other, scraggly-looking used bookstores in the New York area who are the scavengers to the Strand's primary carnivore.

The Strand staff run the bookstore according to "Customer Relations Secrets of the TSA". It has a very tiny science fiction section that's about 1/5 Tolkien, and a generic-fiction section so huge it makes me not want to try to find anything. But when I went today with Evan and Rachel there was a pretty good SF selection, so my dislike was mollified. I picked up three books from the yellow Gollancz "collector's edition" series, which series I really like. I don't know if these are books that went out of print and are being revived, or what, but everything I've read from that series has been excellent. Eric Frank Russell's Next of Kin sticks in my mind.

Today's Gollancz catch was two John Sladek (The Reproductive System and Tik-Tok), and Floating Worlds by Cecelia Holland, which I'd never heard of before but which looks good. The concept, I mean. The book itself looks like a facsimile of an original printing that used too heavy a font. When I was staying with Avedon and Rob I was painfully aware that they read all these books in the 70s and I'm behind the curve. Did I live through the 70s? Let me check. The answer is no!

: When we visited Holly in London she made a huge lunch and everything was delicious. By popular demand Holly now has a food weblog with cute photos and everything. Hopefully she will demonstrate her recipe for sesame-encrusted chicken, because I forgot to email her and ask for it.

: Great cranky interview with game pioneer Ralph Baer. You know I love these cranky interviews.

I was once up on the range after having had all four molars pulled -- you know, the cornerstones in your mouth -- with one dentist in the Army. One dentist holding a chisel, the other one hitting it with a hammer. And after I lay down on my bunk, the platoon lieutenant comes in and says, "Hey, we're firing for record, get up! Get off your ass." And he drove me up to the firing range in his Jeep, and I was standing out there with my jaws swollen and firing, alternately hitting bulls-eyes and missing the target. And then he forgot about me and I had to march back to camp. That was the Army.

[Comments] (1) : Sorry, nothing really happened today. But yesterday Rachel and I walked the Brooklyn Bridge in the rain. That was pretty fun.

Doesn't this class go by the rule?: The other thing about Strand is that they sell Books by the Foot. They let you judge not just one, but an arbitrary number of books by their covers, and line your wall with them to impress girls or law clients. It's easy to get upset about this misuse of the sacred book, but really who cares. I've been places that used a service like this to create a literate air, and the books are all lousy: thirty-year-old autobiographies and interchangeable novels. Services like these let some underperforming books get put out to pasture instead of being pulped. That appeals to me because I have a taboo against destroying books. Books by the Foot is the natural end-of-life for all the review copies that end up at Strand.

What about rich fools who use this service to buy up nice editions of books and never read them? Again, who cares. Nobody reads those things; it ruins the resale value. It's like taking the comic book out of the Mylar sleeve. And it's not like you could have afforded that book if only the rich fool hadn't bought it. I just get the Penguin or Gutenberg edition.

[Comments] (6) Obscure reference explained: Sumana requested an explanation of "Doesn't this class go by the rule?", which shows up (now) three times on my site and nowhere else on the web. Prepare to be disappointed. It's one of those phrases that only sticks in my head because it sounds like it means something. It's from an old cartoon commercial for Fruit by the Foot. I saw this commercial 2022 times when I was in about 4th grade. I had to go get babysat after school but all the other kids (like Susanna) were in 1st or 2nd grade, and it was dismal. Kids' TV was playing all the time, and it was hot and there was no grass in the backyard.

Oh, you want to know what was in the commercial. Let's suppose there was a health-and-safety video where a kid named Joe hates Fruit by the Foot. But he lives in a universe where Fruit by the Foot is everywhere! Everyone's constantly chowing down on the stuff. It's disgusting. Joe summons a Coily-type spirit and demands that said spirit delete Fruit by the Foot from his universe.

But Coily is very lazy, and rather than carrying out this task in detail, he finds an alternate universe where there is no Fruit by the Foot, and swaps Joe with the corresponding Joe-prime. The health-and-safety video has Joe in his new universe, coming to terms with the disastrous consequences of his Fruit by the Foot-deleting bloodlust. The commercial, however, is about Joe-prime.

Joe-prime's story is the exact opposite of those health-and-safety-videos: he is thrust unprepared into a universe where everything depends on Fruit by the Foot (or, as they called it in olden days, Fruit by the Foote). "Never heard of it," he admits. "Am I the only one?" Yes, Joe-prime. Yes you are.

The lad is understandably confused. After some initial mishap (which I don't remember but which must be there because of the rule of threes), he hails a cab to take him away from the scene. "Doesn't this cab go by the mile?" he asks. "No!" cries the cabbie enthusiastically, pulling out an infinitely long stripe of the maybe-you-can-convince-your-parents-it's-not-candy device. "I go by Fruit by the Foot!" I envision the cabbie as a jovial Topol-type fellow who knows not what torment his words inflict.

Panicking, Joe-prime flees to the safety of the classroom. But in class, everyone's swilling down Fruit by the Foot like it's going out of style. What fresh hell is this? There is no learning here, no order; there is only Fruit by the Foot. Rending his garments, Joe-prime cries out: "Doesn't this class go by the rule?" I think you can guess the punchline. Yes, I just told you a shaggy dog story and omitted the punchline. Don't say I didn't learn anything from my father.

: Today I saw a limousine that was covered with a big red advertisement. Now that's a stylish ride! I sure envy the incredible wealth of whatever high roller goes around in that limousine!

[Comments] (3) Cup Conjecture: The number of cups used per unit time is proportional to the square of the number of people in the house.

I have no idea how this happens.

Non-Spiral Jetty: Adam Parrish drew a cool map.

[Comments] (5) : Currently in final crunch mode for the book. The cover is revealed! The animal is a carnivorous marsupial called the vulpine phalanger.

The real drop-dead date for book changes is the day it goes off to be indexed. Garrison Keillor told a story once about a guy who spent his life creating a concordance to Ulysses, and then they found the missing page 22 from Ulysses and rendered all his work usel[y]ess.

[Comments] (6) : OK, the book is now out of my hands. What's next?

[Comments] (1) Wear a Necktie So I'll Know You: Tonight we saw the full moon, behind a few clouds, right next to the Empire State Building. It was awesome. Shamefully, my first thought was "That would make an awesome picture."

[Comments] (2) : Sumana's exercise program has strange commercials in two genres. First, there are commercials for Lifetime Original Movies. These movies feature women who were femme fatale characters in 1940s noir movies. Now the characters have been incarnated in harmless lives that match the Lifetime viewer demographic. But they still give off femme fatale vibes without knowing it, which leads male characters to become obsessed with them. In the 1940s noir movies with their male POVs, this obsession led the shamus to get in over his head with a dangerous dame. In the Lifetime Original Movies with their female POVs, it manifests as stalking. Sample dialogue: "But I'm married!" "Not to me."

Anyway, the real reason I wrote this entry is the other genre of commercial: the weird health-related ad. There's one running now that's just ridiculous. It's this guy standing in a roadside vegetable stand full of supermarket produce, talking about phytochemicals. To get all the phytochemicals he thinks we need, we'd have to eat 18 ears of corn a day, or 5 heads of lettuce. Yeah, or possibly as much as a single tomato! Jeepers. What about celery? How much celery would we have to eat?

The April Fool: I was fooled yesterday by Evan, who claimed he'd found a company that does the same thing as the company in "Mallory" (to be published any month now, probably). I maintain that it's only a matter of time until someone actually starts such a company. Who'll be laughing then? The viewers of NBC's hit sitcom 30 Rock, that's who!

[Comments] (3) Mini-Game Roundup: Dwarf Fortress: Sumana never reads my Game Roundups. She thinks they're boring. Okay, fine. But it turns out that if I start talking about a game I played, she thinks that's boring too. Last night I was talking about Dwarf Fortress and she fell asleep (admittedly, this was when we were going to sleep). But this morning when she didn't remember what I'd said last night, I tried to fill her in on the details of my argument, and she refused to listen. Thus, this entry, which is of a genre I'm already accustomed to her skipping.

I'd heard of Dwarf Fortress for a while but never played it because 1) it's a Windows game and 2) I was writing a book. But the book is done and the game runs perfectly under Wine, so I played it yesterday. The other day, Dwarf Fortress came up in a conversation between me and Adam Parrish where I claimed it was a roguelike game. Well, it does have a roguelike game in it, but that's nothing special. What's really interesting is the other game, a real-time strategy game based heavily around emergent properties.

You control a few dwarves trying to make a home for themselves. The dwarves themselves have a lot of autonomy: it's not like Warcraft where you're always telling individual units to move around. But you can give a dwarf a profession, you can show which rocks need to be mined, and once you build a workshop you can give jobs to the workshop. Each dwarf decides which open job to fulfil at the moment.

Each dwarf also has an internal monologue that describes how things have been going for them lately. You can make the dwarves happy by having the society produce booze, nice places for them to sleep and eat, and interesting things to do.

So I go along for a while, making buildings and inventing agriculture and bartering with caravans. The dwarves are perfectly happy in a state of primitive communism, assisted by me, the omniscient game player that reads their thoughts and directs their actions. Every year there are some migrants, so the population grows. And then civilization shows up.

Civilization (in the Huck Finn sense) comes in the forms of Dwarf Fortress's "nobles". These Balins-come-lately think they know better than me and my dwarves how society should be run. They demand better living quarters than the other dwarves, and contribute nothing to society except ridiculous demands and trade restrictions (they also unlock some interface features, which creates a weird metagame element that I could do without, given the shaky state of the existing interface).

This is the point at which I stopped playing. Apparently the nobles go on to create punishments for dwarves who don't meet the quotas. (Snippet from sheriff's internal monologue: "She was worried by the scarcity of cages and chains lately.") Then they create an economy and start charging rent for other peoples' rooms, and really why should I play a game when the people in the game have so much autonomy they can force me to do what they want but not vice versa? You can arrange for the nobles to meet with "accidents", but you just get another noble of the same type in a later year's immigration.

There are also some pretty big interface problems: inconsistent ways of sizing and selecting, as other reviews have pointed out. Other reviews also complained about the extended ASCII interface, but I think it's great. Very old school. However the ASCII art chosen for the workshops doesn't look like a workshop: it just looks like a mess on the ground. This makes it impossible to tell what kind of workshop you put in a certain place without moving the cursor over it.

The creator of DF is also the creator of many other games, including "WWI Medic" and "Liberal Crime Squad". LCS has a Linux version, I played it for a bit and was again impressed by the emergent properties. I was also struck by the BBS-door quality of the juvenile humor and the resemblance to the fun 80s roguelike "Mission: Mainframe".

[Comments] (1) Text As War: Kris's current Starslip storyline is incredibly good. If you're impatient, here's where it starts getting good. Text and supertext working in harmony!

First Three Rows May Get Wet: Today one of Sumana's co-workers gave her orchestra tickets to a play: Eugene O'Neill's "A Moon for the Misbegotten". Kevin Spacey produced(?) and starred in it, and I'm still not really clear on who Kevin Spacey is, but it also had Colm Meaney, and I have no such problem with him. It was a really good performance and since we were using someone else's last-minute cancellation tickets I wasn't always thinking about how much it had cost.

: The Minutillos came over today. Fun! They brought Connecticut Easter candy, not to be confused with Massachusetts maple syrup candy. Among other things, we came up with an idea for filing the Wikipedia serial numbers off of Catfishing and selling it as a quiz book.

: I've almost perfected my new economic weapon: the rent-seeking missile.

Will No One Rid Me Of This Turbulent Dwarf?: Dwarf Fortress redux. Yesterday I did another fortress with a trapped bedroom for getting rid of troublesome nobles. It kept the game playable: when there's no sheriff, you don't have to micromanage the nobles because no one will enforce their demands. But eventually I ran into the boundaries of the simulation, and got bored. I thought about about destroying my fortress in a big SimCity-style disaster, but I don't want to do that to all my little feedback loops.

: A link from Sumana-read weblog The Morning News that I thought were interesting but Sumana didn't want to bruise. There are now fake zero-rupee banknotes in India. As with any fake currency, this one has value of its own. In this case they let you defuse a situation where you're expected to give a bribe. That reminds me I need to write down the coconut bribe story.

Beautiful Soup 3.0.4: Sometimes people express the opinion that Beautiful Soup should be in the standard library. Given the current state of the Python standard library, and the nature of standard libraries in general, I'd rather it not. The standard library is extremely resistant to change—look at sgmllib. It's easier to start over—look at urllib2 and httplib2.

The two other reasons I've seen given for not including BS in the standard library are that it has unspecified Unicode bugs, and that the name is silly. Dude, just rename it. Also, you're using a programming language named after a sketch comedy show. As for the Unicode bug(s), I fixed the one people were complaining about, and the result is Beautiful Soup 3.0.4.

I was actually doing a very large change that no one had complained about, and it wasn't working out well. I decided to just do a release full of easy stuff, since a lot of people were having the Unicode problem.

I'm also seriously thinking about retiring Rubyful Soup, because hpricot is a lot faster.

[Comments] (4) Kris Tries Subtlety: In today's Starslip.

[Comments] (1) : Been reading some classic SF short stories. I cannot express the depths of my disappointment that "A Gun for Dinosaur" is not about a dinosaur who buys a gun. Not since Internet-Linked Sharks!

[Comments] (1) Battlestar Galactica Recasting: In this edition of BSGR, Jeffrey Tambor plays Colonel Tigh the same way he played George Bluth.

[Comments] (1) A Little Bit About Kurt Vonnegut: Fifteen years ago, Andy Schile and I were cultural scouts for each other. One night we were talking on the phone and he mentioned Breakfast of Champions. It had everything we could desire in a book: ridiculous sci-fi plots, crude drawings in random places, authorial self-insertion. It was a starter kit for a career in postmodernism.

I read Breakfast of Champions sitting on the floor in a high school library, somewhere along the Grapevine between Bakersfield and LA. I was trapped in the library for an evening because my mother was attending a teacher's conference there.

The bulk of Vonnegut I read while trapped in the Bakersfield College library. This time I wasn't confined to the library building—I was taking a summer class at the college— but there was nowhere else to go in the heat and I didn't have a ride home until my mother was done teaching her class.

At this point I've read all Vonnegut's novels except Mother Night. I remember the act of reading almost all of them (even the bad ones), which doesn't happen often. But my two overriding memories are the discovery from Andy (who I'm seeing tomorrow) and the feeling of being stranded in a library like in The Twilight Zone. Or Hocus Pocus, for that matter.

[Comments] (1) : I met Sumana at work. We walked up to Central Park and climbed rocks. On the way home we were in one of the newfangled subway cars, much to the delight of the train-geek kid next to us. He was going into Queens to eat Carvel ice cream and stay at his babysitter's house. All that and a ride in the new model of subway car!

Poe's Mashup: I'm reading Steven Jay Gould's last book, The Hedgehog, the Fox, and the Magister's Pox, which is about what science can do vs. what the humanities can do. I was expecting to have a big argument with Gould on this because I really disagree with the way he's applied this "magisteria" model to science and religion. Maybe this is an artifact of my upbringing, but what Gould describes does not look like religion in general; it looks like Unitarian Universalism.

But I think the magisteria model makes a lot of sense in this context, and in the first section of the book he comes up with good points about analytical tools. But what I really want to talk about is one of these cool pieces of detective work that Gould does. This bit is copied in from an essay in Dinosaur in a Haystack, which I haven't read.

Edgar Allen Poe wrote a book about mollusk biology, or, as it was called then, conchology. It included English translations from Cuvier, and plates of drawings. Except he didn't write it. First, it was a joint project with a guy named Wyatt. Second, Poe ripped off a lot of the introduction from another conchology book (The Conchologist's Text Book by Thomas Brown), and Wyatt stole the plates from the same source. In "Poe's" book the plates show up in a different order, but so what? Ripoff.

This kind of behavior was not unheard of in the early 19th century, when the US was still in its "prosperity through copyright violation" phase, but it's still pretty sleazy. But here's the thing. In the 18th century, mollusk biology was called "conchology" because you generally didn't study the soft mollusky bits. You studied the shells, because that's what you had. In the 19th century this was changing: mollusk biology was being renamed malacology ("study of the soft bits"), and the Poe/Wyatt book was part of the change.

But at the time there was no primary literature about the soft bits in English. Only in French, from Cuvier and Lamark. Poe translated Cuvier's descriptions of mollusks and made them available for the first time (?) in English. Why were the plates in a different order? Because the original conchology book ordered them according to a shell-based classification. The Poe/Wyatt ripoff ordered them according to the soft bits.

In other words, they made a mashup. They took French text from source A, excerpted and translated it with attribution. They took English text from source B, sort of rewrote it and claimed it as original. They took a whole bunch of pictures from source B, rearranged them to tell a different story than source B told, and published them without attribution. Every element of the book comes from somewhere else, but the finished product is original. Their motives were clearly mercenary, but unlike most copyright ripoff artists of the nineteenth century they weren't reprinting something without understanding it. They were taking their sources apart and recombining them to tell a new story. And without telling anyone that's what they were doing, except to cash in on Cuvier's name recognition. It ranks slightly above those sleazy "100-in-one" Nintendo cartridges you used to see in video rental stores.

In a sense, the whole thing is moot by now since both the originals and the ripoff are in the public domain. Here's The Conchologist's Text Book with some of the plates, though others seem to have been washed out in the scanner. Here's a translation of Cuvier on mollusks, possibly Poe's source document. Can't find the ripoff, though.

: Thanks to vacation I was able to fix up a new story and submit it to Strange Horizons. IMO Strange Horizons is what most science fiction magazines will look like in about ten years, though they're donation-supported and I suspect most magazines will still sell subscriptions. Anyhow, they publish lots of good stuff including this recent essay about David Icke.

: Cool old map of the original Dungeon text adventure that turned into the Zork trilogy.

[Comments] (1) : Thanks to the newfound popularity of the Powerpoint Karaoke concept, Sumana was looking around at a site I'd never heard of before: Slideshare, the revolutionary new site that lets you see random peoples' slide decks. Sumana was trying to adapt to Powerpoint presentations Teresa Nielsen Hayden's advice for finding bad fanfic online. I suggested searching for corporate buzzwords and rote phrases, which worked very well. For instance, Sumana reports good results for "the end of the day". Of course, there's also a filetype:ppt search.

: Someone's messing with us.

Gravy Overload: The supermarket has a whole shelf unit devoted to gravy and substances you can turn into gravy. You might think it's broth but it's gravy. There's about as much gravy as there is canned soup. The sign in that aisle says "GRAVY". It also says "MACARONI". I guess you can call it macaroni.

[Comments] (1) : At last, scans of the Voynich Manuscript. They were in some LizardTech (David Icke take note) proprietary format, now converted to JPEG.

I just want to make an omelette!: Casting Leomund's Tiny Hut? Now you have options.

[Comments] (1) Check It And See: We had a great pre-anniversary date tonight: glacial rock climbing in Central Park, dinner at a mediocre West Side restaurant and then off to see Hot Fuzz, which was excellent. Best touch were the two nearly-identical desk sergeants, one of whom (IIRC) was always reading Iain Banks and the other of whom was always reading Iain M. Banks.

Incidentally, it looks like science fiction is a lot more mainstream in the UK than it is in the US. The lame Heathrow bookstore[0] had a whole shelf of science fiction books, many of which you wouldn't see even in a non-lame US bookstore. Admittedly this was a side effect of a simple-minded stocking strategy ("every British science fiction author except Ken Macleod"). But I'm pretty sure the bookstore in Grand Central (the least lame airport-style bookstore I know of) has no science fiction at all.

[0] I actually found it quite interesting cross-culturally, but I could tell it was the equivalent of any other airport bookstore.

: Triangle Donut hates Person Donut.

[Comments] (1) The Cut-Up Eye: Sumana and I had an anniversary picnic today with some friends. Then we came back home for awesome cupcakes. (It's a cake in a cup!) Sumana brought out that party favorite, the bad high school term paper on Al Capone, and there was the inevitable comparison to The Eye of Argon.

Yeah, what about The Eye of Argon? I hadn't read it in a long time and remembered it mainly for its extremely long sentences. At this point I had—not really fair to say "an idea" since it's the same idea I have all the time. I applied my idea to TEoA. Fortunately the online ASCII text is consistently formatted and easy to parse. A little bit of Python hacking gives me the latest addition to the crummy.com family of dadaist products: The Cut-Up Eye. Same sentences, same pacing, different order. Enjoy!

: I like all the specialized aggregation sites I've been encountering recently, though I don't know what will happen long-term to this kind of site. My favorite so far is Listening to Words, a collection of lectures. I think the world would be a better place if more college lectures had online audio or video available.

QOTD: "It was nice. A little heteronormative, but nice."

: Today I found online the original model for much of my work: The Policeman's Beard is Half Constructed, a story supposedly generated by a computer program. This program was written "in compiled BASIC on a Z80 micro with 64K of RAM". I think it's pretty obvious that the allegations of "authorship" here are very disingenuous: near as anyone can tell, the template language is a primitive form of the Dada Engine. The best you can say is that DE-like templates change the notion of "authorship" somewhat.

That said, in TPBiHC we see the thing I enjoy most about spam mail and the Eater of Meaning plugin I haven't written yet[0]: the Fennimore Cooper-like use of the right word's second cousin. You get sentences like "Revile these conflicts and we may daintily bolt our meat and quaff our sherry." You can really sense the prewritten template there, but the choice of words makes it hilarious.

[0] I did write it once but it was far too slow to use.

: Collabnet bought former rival VA's collaborative software division. I wish this would make my stock worth something.

This means that VA is now entirely in the business of selling ads on Slashdot and T-shirts from ThinkGeek. Compare this old article of mine from the days of rivalry.

He's Off The Ramp: Today I decided to get cracking on the album that's been percolating for about five years. I recorded one song and most of another one, and then my computer decided not to record things anymore. This is apparently not an uncommon problem on Ubuntu, but you usually notice it when you first try to record something, and not after three hours of everything working perfectly. And doing the things mentioned in the forums is supposed to help.

In other news, I went to the farmers market yesterday and got some of the famous ramps everyone's talking about. They are really good: they have the tingle of lilies without the poison. For $12 a pound they'd better be good. I sauted them and put them in a warm barley salad.

Update: I got it working thanks to this page, though my recording quality is still not as good as it was. Ramps are still yummy.

: In my dream last night I was talking to a television actress.

"So your character went to jail?"
"I don't know, I never watched the show."
"Did you find yourself saying things like 'Oh no, I'm in jail'?"

I guess George Lucas was making the show.

Now I can finance a heartbreak: Ah, that's better. It's hacky but I can record now. Today I did "Mattress King", the song I wrote with Jake Berendes last year when I was staying at his place. We wrote the song on a piece of dot-matrix printer paper: I'd write two lines and then pass it to Jake, who'd write two more lines. We actually wrote two songs this way, but one of them wasn't very good.

: Went out for a morning walk in the East Village. Ate at the neo-automat. The automat food was like the school lunch food you'd get on field trips. Plus the coin slot was jammed so I didn't even get the cool automat experience. They do sell insane amounts of frites, with sauces. You can get a KFC-sized bucket of french fries for $10. But elsewhere in the neighborhood are several dedicated frites places which I suspect are probably better.

[Comments] (6) : I went to an ITP art show this evening where my friend Adam Parrish was exhibiting his "byte organ". This is illegal where Adam comes from, but anything goes here in libertine New York. I took some pictures including one of Adam in front of the byte organ's video output. "It looks like you're on the cover of WIRED," I said. Now it looks even more like that because I made a fake WIRED cover for Adam. The other really cool thing at the show was the solar xylophone, by this guy.

: The day the Machine of Death anthology was announced, I had an idea and wrote about 4/5 of a story for the anthology. Then I decided I didn't really like the story and let it linger. Did I have to let it linger? No, but I did. Today Ryan North reminded everyone that it's the deadline, so I finished the story and submitted it. It was almost done, and it's not like I can hold out for a better deal for this story based on a specific anthology idea.

I'm still not crazy about the story, but I like it better than I did the first day. Mainly because the ending I wrote is less heavy-handed than the one I intended to write. Of course when I do that, I run the risk of making the ending incomprehensible to everyone else.

: Wow, the REST book is pre-selling really well all of a sudden. I don't have an explanation but it might be new exposure from this Coding Horror entry.

: Man, these guys have the awesome job. It's like being paid to be Joel Hodgson. Previously I thought only Joel Hodgson could get in on that action.

[Comments] (1) : At last, I can pretend I'm friends with Kris.

[Comments] (2) The Ur-Quan Masters: I spent most of yesterday playing this game, a fun space adventure. A.k.a. Star Control 2, as seen in Bob the Angry Flower.

Looking back through the mists of time, I thought I remembered seeing a box for this game in Software Etc. when I was a kid, and wanting to buy it but not having the money. But I was wrong; it was a similar game called Starflight 2. What I remember accurately is the source code for this game being made freely available a few years back. Now the game has been ported to modern platforms and it's in Debian, with goofy voice acting and everything.

This is an excellent game with some serious gameplay problems. The story is like a good text adventure, complex and nonlinear, with strong characterization (though all the characterization happens on the species level: you never see two named members of a species, for instance) and lots of dialogue and backstory. There's also a Spacewar sub-game that looks perfectly fine but I skipped it because I was more interested in the adventure game.

The problems are with the other sub-game, a resource-gathering-fest that takes all the fun out of exploring the universe. Just like in real life there are too many stars, they're too widely spread apart, it takes forever to navigate within a solar system, and most of the planets have few points of interest. But you spend most of the game going around poking at planets for resources. The entire game universe starts to look like a big copy protection scheme, and the various hint guides, with their huge tables, take on the appearance of the manual that has the secret numbers you need to complete the game in the time limit provided.

So, I guess I'd like to see it turned into something more like a Maniac Mansion type graphic adventure, is what I'm saying. Fun game though.

: This is odd. Jaime Weinman embedded a 1954 (according to IMDB; internal copyright date is 1953) Warner Brothers cartoon called "Design for Leaving". The title makes it sound like a parody of the classic Populuxe short "Design for Dreaming", and that's exactly what it is. But "Design for Dreaming" didn't come out until 1956. Time paradox? Or something more sinister?

I really have no idea. In 1942, Unknown magazine published a story by Henry Kuttner called "Design for Dreaming". That's the only earlier reference to the phrase I can find. It's barely possible that DfD was a transient catchphrase that was in the public consciousness at the time but that rarely showed up in ways visible to search engines. Otherwise, I gotta go with time paradox.

Update: There's a 1933 film called "Design for Living", which takes care of the cartoon's title. Depending on your tolerance for time paradox this might move into the realm of coincidence the fact that the cartoon parodies a short that doesn't exist yet. Or did the short take its cue from the cartoon?

: Ah... Chocolate: or, An Indian Drinke is good for what ails me. "The ensuing tract" is an all-time classic of old-time rhetoric, vocabulary, and orthography, devoted to the awesomeness of the newfangled chocolate. It starts with a a poem that banishes the quackery of Extraordinary Popular Delusions in favor of much tastier Cosmopolitan-style quackery:

Tell us no more of Weapon-Salve,
But rather Doome us to a Grave:
For sure our wounds will Ulcerate,
Unlesse they’re wash’d with Chocolate.

And, of course, Receipts galore:

Of Cacaos, 700; of white Sugar, one pound and a halfe; Cinnamon, 2. ounces; of long red pepper, 14. of Cloves, halfe an ounce: Three Cods of the Logwood or Campeche tree; or in steade of that, the weight of 2. Reals, or a shilling of Anniseeds; as much of Agiote, as will give the colour, which is about the quantity of a Hasell-nut. Some put in Almons, kernells of Nuts, and Orenge-flower-water.

Concerning this Receipt I shall first say, This shooe will not fit every foote...

I love it! They shooehornèd extra vowels in everywhere!

: Hey, Jake. Today (yesterday) we were walking to the subway with Fureigh and I was talking about our side-by-side battle in that karaoke contest. I was singing "King of the Road" and a guy walking past us joined in for the final line. Fun times! Oh, T-Rex was there too, apparently.

We were with Fureigh to see Too Much Light again. For those of you who haven't seen TML, here's the name of one of the plays: Yoda Does Impressions. What you envisioned is the exact play that was performed, except it was a Yoda doll whereas you were probably thinking someone was acting like Yoda. There was also a great play where everyone was being hard-boiled newspaper types.

[Comments] (4) : I've been invited to FOO Camp. Should I go?

: Sumana just said: "This is one of the most biting Onion satires since 'Area Man Not Very Interesting'!"

: I guess LinkedIn must have recently added the ability to broadcast job listings to your network, because I'm hearing from people I haven't heard from in years who want me to find someone to work with them. The most interesting of these job listings comes from, UM, Josh Hendler. I see that I only mentioned Josh in NYCB once, which is odd but understandable since during the time of our acquaintance we were constantly working, and the day we stopped working was the last day I ever saw him. More about Josh later.

Josh now works at the Democratic National Committee and he's looking for a database data-chopper in DC to manage the DNC's national voter database, which I guess they finally got their act together and created. If you're interested in politics, data-chopping is a relatively low-stress job. Send me email if you're interested and I'll tell Josh.

: I'm reading Trilobite!: Eyewitness to Evolution (exclamation not in original), possibly Newt Gingrich's favorite book about trilobites. It is excellent in general but I wanted to spotlight two things. First, trilobite eyes were made of crystalline calcium carbonate, and were molted along with the rest of the exoskeleton! No wonder their gazes appear so stony. Second, this anecdote about a Swedish trilobitist:

Tjernvik was in his eighties when I visited Sweden. His English was remarkably fluent: he had learned much of his use of the idioms from the novels of P.G. Wodehouse, and the result was charmingly anachronistic. When a particularly fine Megitaspis turned up he would say, "absolutely top hole, old bean!" If he wished to impart some important item of information it would be, "can I have a word in your shell-like?" At the end of the day: "Toodle-pip, old boy!"

YABO: God created the natural numbers. Adam created the Networked Byte Organ [See action-packed issue 1024! -Ed.], which listens to network traffic and plays it as music. I created YABO, a Ruby script which takes any data and creates a MIDI file. Samples include a bit from Mega Man 2 (compare Adam's), a bit from an OGG file of a square wave, and a midi representation of yabo.rb itself. Crank up the BPM and you've got a modem. Requires the midilib gem. YABO? Yatta!

[Comments] (2) : We got some sleazy religious snail-spam today, from "Saint Matthew's Churches" (there are no real churches). The envelope is stuffed full of papers with complex instructions for getting stuff from God. It's like doing your spiritual taxes. The point is to get you to blow cover and reveal yourself as a sucker to the all-seeing PO Box in Tulsa, whereupon SM's Cs start asking for money and it's like doing your render-unto-Ceasar taxes. Recall that Matthew was a tax collector, and is now the patron saint of bankers.

The envelope is actually the best part of this buffet of lunacy. (front, back) On the back there's fake handwriting that starts out saying "Dear Jesus, ...". I guess I was absent that day in fifth grade when they taught us how to write a business letter to Jesus.

Translation Collector #3: Japanese! It looks like they only translated half the book.

What the?: The novel The Sot-Weed Factor is based around a real poem! Random website has the scoop. PS: don't read any of Barth's novels. Barth is BORING except when mimicking someone else's style, which doesn't happen nearly enough.

: We watched The Company. Sumana said: "Maybe there was a plot in that movie, except it was communicated through dance."

"We should have had some bees watch it."

"'What? There are flowers 25 miles away?!?!'"

: Today I watched Amelie. Now that's how you do a movie with no plot! Highly recommended. I especially enjoyed the Dwarf Fortress-like explanations of everyone's likes and dislikes.

I have a bit of mega news to impart but it needs to wait until tomorrow because I'm going to sleep now. I will mention that today I met Ian Bicking and his friend Luke.

[Comments] (4) : Sorry for suspense, but Sumana was asleep and I didn't want to rummage around in the bedroom for the camera. In defiance of all my previous experience with publishers, O'Reilly sent me a copy of RESTful Web Services before it was even published! I wasn't expecting to get a copy for a long time, since the entire first batch is being shipped off to RailsConf.

That's Ian holding the book when we went out for pizza. More pictures here.

[Comments] (1) Kris's Dream: I asked her “are you instanced?” and she said yes.

Nerdy dream-selves crack me up.

[Comments] (3) The Confusion : Amazon told some people that their copies of RESTful Web Services wouldn't be delivered until July. According to O'Reilly this is a vicious slander, and they insist that "honor be satisfied". Actually they said it was a glitch; I'm just making it sound more interesting. Amazon has a big order in to the printer, so you should get your books soon. (Thanks, Bonnie, for the information.)

: I was talking to Brendan a while ago and we started talking about mad science. I mentioned Narbonic, the premier comic about mad science. Brendan hadn't been reading it because of the Arrested Development plot-arc problem. But recently Narbonic reached the end of its six-year run and started re-running with commentary from the artist, so it's a good time to start from the beginning. More comic strips should do that. This week's comics are especially good, with their glimpse into the mad mind.

: As long as I'm recommending comics: Beaver and Steve. High-larious!

Muppet License?: Yesterday I heard something to the effect that only a trained Muppeteer may operate a genuine Jim Henson Creature Shop Muppet. If JHCS sees a random person performing with a Kermit they'll come after said random person.

One, is this true? Is there some sort of Muppet license? Two, what's the legal argument? Is there no right of first sale for Muppets? Does sticking your hand in a Muppet instantiate the trademarked character, the same way drawing (or saying the name of) Mickey Mouse would?

[Comments] (6) Import/Export: Some of the gifts we've been asked over the years to find for relatives in India:

PS: Sumana officially expresses her frustration at the general desire to send these things via courier as people make trips back and forth, rather than using the mail.

: Went to Chris DiBona's tech talk at Google NYC. I hadn't met Chris before. I told him to say hi to everyone. The big surprise was meeting Rohit Khare! He moved to New York recently so we'll be hanging out.

The first chapter I wrote for the REST book which had a lot in common with a column Rohit wrote about Gopher in 1998. (Said essay mentioned four years ago in NYCB.) Writing this chapter really helped me get my ideas together for the book, but I cut it because it was only 8 pages. Also it turns out that in 2007 most people don't really want to read a detailed technical comparison of FTP, Gopherspace, and the Web. But for those who do, I'll be publishing the chapter as a standalone essay soon: hopefully on one of O'Reilly's sites so I can squeeze a couple more bucks out of them.

: Oh, another thing. I haven't hooked everything up yet, but Chris DiBona will be pleased to know (nice segue!) that Beautiful Soup now has a Subversion repository hosted by Google Code. Today I worked on soup all day.

: Sorry for no posts. I was in Washington D.C. with in-laws. I went with Sumana to see monuments (new WWII monument: disturbingly not in the same spirit as other monuments?) and I got sunburned. We also met up with Josh Hendler of Clark campaign fame and a-few-entries-ago fame. There are pictures but I'm working on an interview for the REST book and therefore too lazy to get them off the camera. Also there's a great picture of me and Josh in front of the Capitol with our arms folded like "we're going to clean up Washington!" but I guess I have some superstition that if I post the picture after my sunburn goes away, it'll be gone in the picture too.

: Another interview with Eugene Jarvis! (The other one.)

EJ: The whole thing was kind of a mistake!

I wish I could say that in every interview. I've got one tomorrow; maybe I'll work it in.

: Wikiclock: sort of a social Rube Goldberg device.

: Sam and I just talked to Jon Udell for his Friday Podcast series. I sounded like an idiot the whole time, but hopefully the miracle of editing will save me.

[Comments] (3) : Wow, that made me feel better:

Every IT generation has its seminal tome that transcends time and connects the dots in a way that no book had before it. For the object oriented generation in the 1980s, it was the Gang of Four (GoF) book. For the application architecture generation in the 1990s, it was Fowler's book on patterns (PoEAA). "RESTful Web Services" will be, in my opinion, that book for the 2000s Web services generation.

: Excellent interview with Trace Beaulieu, though it ends with a lot of Hollywood pheromone exchange that I find dull. Includes anecdote about the monkey he made so angry that he was thereafter wary of working with any show business monkey whatsoever (my default position). Also:

But I realized that without that character [Crow], I really didn’t have a reason to mock anything. I actually kinda like stuff.

A stuff-liker? Blasphemy!

One of my very-long-term projects is to collect random observations about MST3K episodes and the underlying movies. (Sample observation: the 1950s were a very good time to do a low-budget military-themed movie because there were lots of surplus trucks and equipment you could get cheap.) Not reviews per se, but an attempt to find the more subtle themes and interconnections in the massive MST3K oeuvre. I bring this up because of this line from the interview:

You know, maybe the robots were sort of a practice for [Joel]. I think he’s a pretty good dad.

Thanks to this project and time's perspective, I see now that the fundamental fact about MST3K, the one that makes it more than a comedy show, is the relationship between Joel Robinson and his robots. In my adolescence without a father I took as a model for masculinity Joel's mix of father, older brother, and demiurge. This is kind of weird but I could have done a lot worse. I suspect I'm not the only one.

Usually children leave their parents, but Joel left the 'bots. They helped him leave. What does this mean?

[Comments] (1) : I flew in to California to see my niece, who is cute. Right now I'm staying with Adam.

Longtime readers know that my mother made me some comprehensive scrapbooks of my early life which were lost in the mail. What you don't know is that my mother made comprehensive scrapbooks of her own life, scrapbooks that run to 17 volumes. Susanna is storing all those volumes, and today I went through them and selected pages for a surrogate scrapbook. Susanna will take those pages out of my mother's scrapbooks and bind them together for me. Substitution: achieved! Kind of. And Susanna won't have to store so much.

: In a coffeeshop in Bakersfield, probably the first such I've ever been in. I don't really have anything to say, so I'm just checking in. I'm reading The Cheese and the Worms, which is a little overwritten (or overtranslated) but has lots of interesting things in it. Like cheese.

Tummy Time: Maggie was lying on her stomach, an activity Susanna referred to as "Tummy Time". I said, "I never got Tummy Time when I was a baby." According to Susanna, we didn't need Tummy Time when we were babies because in our day babies slept on their stomachs and liked it. These days, though, babies are supposed to sleep on their backs to avoid SIDS. But if they sleep on their backs, they start crawling later! Thus, the need for remedial stomach-lying, aka Tummy Time. It's all a bunch of hacks!

: Back in New York. On my flight there was a guy who looked and sounded exactly like Take the Money and Run-era Woody Allen. He came to my attention as he rushed to the boarding gate with his wife and kid, and explained to everyone that he'd meant to join the pre-boarding party earlier but his kid wasn't on the boarding pass, and he'd had to have him put on the boarding pass, and... At any moment I expected the punchlines to start flowing, but apparently he wasn't actually Take the Money and Run-era Woody Allen.

: I've finally got the green-light for my Frank Zappa/Samuel L. Jackson crossover vehicle, Baby Snakes on a Plane.

[Comments] (2) Acceptance: I can't find the link [UPDATE: it was Paul Sandoz], but someone posted a weblog entry that mentioned something I say in RWS about choosing different URIs for different representations. The example I (and the unknown weblog entry writer) used was a press release which is available in two languages (English and Spanish) and two data formats (HTML and plain text). The URI to this resource is /releases/104, and you can choose a representation format by setting the Accept and Accept-Language headers. But I also recommend exposing a URI for each language and format:

When a client requests one of those URIs they can leave out one or both of the Accept- headers and still get what they want. The Content-Location response header is set to /releases/104 so that you have a URI to use when talking about the press release in general, rather than a specific version of it.

The question in the weblog entry I can't find is more or less this: what about the other two Accept- request headers, Accept-Charset and Accept-Encoding? Why don't I recommend exposing URIs like /releases/104.es.txt.gzip.UTF8?

The reason I put any special levers in the URI is because we pass around URIs, not URIs plus headers. Lots of programs and services take a URI, perform a GET on it, and expect that they got what you told them to get. One example I give in the book is the W3C HTML validator. If the only URI I exposed was /releases/104, there'd be no way to validate the Spanish version separate from the English version. If the default representation format for /releases/104 was plain text (unlikely, but this is just a thought experiment), there'd be no way to validate the HTML formats at all.

To the extent that this reason applies to some piece of information, I argue for putting a lever for it in the URI. Obviously it applies to things like which press release you want. I think it also clearly applies to the language and the data format. I think it doesn't apply to compression or character encodings. Here's a quote from page 243, in the section "Compression" where I talk about Accept-Encoding:

You probably remember that I think different representations of a resource should have distinct URIs. Why do I recommend using HTTP headers to distinguish between compressed and uncompressed versions of a representation? Because I don't think the compressed and uncompressed versions are different representations. Compression, like encryption, is something that happens to a representation in transit, and must be undone before the client can use the representation. In an ideal world, HTTP clients and servers would compress and decompress representations automatically, and programmers should not have to even think about it.

We can argue over what counts as a different representation (as you can see I take a fairly high-level view), but even if you think the compressed and uncompressed data are different representations, this isn't a difference that needs to go into the URI. A client can be automatically programmed to detect a compressed representation and uncompress it. The key is this ability. If it were possible to algorithmically translate any human language into another, or any data format into another, there'd be a much weaker case for extending the URI with levers for language and data format.

The same logic holds for character encodings, because a client can be automatically programmed to convert any character encoding into Unicode. The case is weaker because 1) the programming is difficult unless there happens to be a library for your language, and 2) you only get compression if you ask for it, but you get a character encoding whether you like it or not.

If you're exposing a resource in multiple encodings, and you have reason to believe that a URI-driven client might choke on your default encoding, then sure, put an encoding selection lever in the URI. But at the risk of sounding provincial (if being too cosmopolitan can be a kind of provinciality), your default encoding ought to be UTF-8 or UTF-16.

Transactions of the Transaction Society: Sam and I got a question from reader Scott Davidson about the famous RESTful transaction design (quoted at length by Jon Udell here, in case you bought so many copies of the book that you're now deadlocked trying to decide which one to look up page 231 in). I think it's worth responding to at length:

I'm perplexed why your transaction example in Chap. 8 didn't simply create a transaction resource that included both checking & savings account as well as the transfer amount w/ a PUT (defining the resource as XML in the request body). Then you could simply call /transaction/11a5/commit or even just assume that this is a request to commit the transaction by default and avoid the 2nd call altogether. Is there a specific reason why it was not done this way? I can already see the "REST-haters" rolling their eyes to this three request/response transaction pattern.

The short answer is that if I'd presented it that way, the "REST-haters" would have an even better reason to roll their eyes: it would look like I couldn't think of a resource-oriented way to do transactions and I'd had to fall back to the RPC style.

Let me explain. When I read this question my immediate vision was of a request that looked like this:

PUT [some URI] HTTP/1.1
Content-Type: application/xml

<transaction type="transfer" amount="50.00">
 <source href="/accounts/checking/11" />
 <destination href="/accounts/savings/55" />

I don't know if this is what Scott had in mind, but let's run with it. This actually won't work as is: PUT only works when the client knows the URI of the new resource, and the URI for a transaction resource is chosen by the server. That's a minor problem we can fix by sending POST to a "transaction factory" resource:

POST /transactions HTTP/1.1
Content-Type: application/xml

<transaction type="transfer" amount="50.00">
 <source href="/accounts/checking/11" />
 <destination href="/accounts/savings/55" />

My first suggestion about transactions (page 231) was: "You can expose simple transactions as batch operations..." This is a kind of batch operation (albeit not quite the kind I had in mind), one that affects two resources identified by URI.

The problem with this representation is that it makes the second HTTP request look a lot like an RPC-style overloaded POST request. It looks less like an object the client is creating, and more like a command that /transactions is supposed to execute.

I wouldn't go so far as to say it is overloaded POST, because its result is a new addressable resource (the transaction record). There's a fuzzy overlap here between RESTful and RPC-style, just as there is with a request like "GET /rest-endpoint?method=photos.search&tag=penguin". But in the book I don't design URIs that look like method calls, because it sets a bad example, and for the same reason I don't design representations that look like commands. If you looked at that second HTTP request in isolation, you'd probably think "okay, there's no fundamental difference between RESTful and RPC-style transactions". When in fact there is a more elegant way to do them that looks nothing like the RPC style.

Why do I think the way I showed in the book is more elegant? Mainly because requests on transaction views work exactly the same way as would non-transaction requests on the underlying resources. If you could change an account balance at will, you'd PUT to /accounts/savings/55. You can't, so you create a transaction and PUT to /transactions/11a5/accounts/savings/55.

Two lesser reasons. First, you don't have to do the whole transaction at once. You can build it up on the web service as real-world events happen on your end, and commit when you're ready. It works the same way as a transaction in a programming language. Second, a transaction is an addressable resource even while in progress. Multiple authenticated clients can inspect or collaborate on a transaction, and the rules for avoiding conflicts are the same as on the rest of the web (eg. If-Unmodified-Since).

That leaves the question of efficiency. You can package multiple operations into a single HTTP request for efficiency's sake. But if a single operation is an HTTP method applied to a URI, that's what you should package. If the uniform interface is good enough for one-at-a-time operations, it's good enough for descriptions of batch operations. You don't need an application-specific vocabulary like the one I came up with reflexively. A simple, uniform vocabulary will do; something like this:

 <request method="PUT" target="/accounts/checking/11">

 <request method="PUT" target="/accounts/savings/55">

(You could probably use an XML document that contains a series of SOAP envelopes!)

I think POSTing that representation to a transaction factory satisfies Scott's original criteria: "create a transaction resource that included both checking & savings account as well as the transfer amount... defining the resource as XML in the request body". And it would make a good addendum to the "Transactions" section, once the reader has seen which HTTP requests underly the transaction. But presenting it instead of the multi-request version would probably be confusing, and would certainly give the impression that there was no RESTful way to make those HTTP requests one at a time.

[Comments] (6) Category:Fictional Fictions: I feel a sense of unease whenever I'm revising a story and I change what happens. I feel like there's some residual sense in which A "really" happened and B is a lie to cover it up. But if the story is published, most people will think B "really" happened and A will seem a curiosity if they know about it at all. How do we discuss different kinds of fictional events? Lay some vocabulary on me.

[Comments] (1) : A set of algorithms for experimental travel. "Arrange to spend a weekend away with your partner. Travel to your chosen destination by different means and don't arrange a meeting time or place. Now look for each other..." There's a lot of overlap with the Lonely Planet guide, which I've had my traveling eye on.

: InfoQ, the famous "enterprise software development community", has an interview with Sam and me, as well as an excerpt from the book. Enjoy!

Later today on this weblog: still more REST crap!

[Comments] (6) How's My Driving? #1: Microsoft Astoria: Sumana wants me to post some analyses of web services and talk about how they are or could be made more RESTful. Alex Barnett wants me to look at Microsoft's Astoria project (so does Microsoft, apparently, since they named it after where I live). I love it when a plan comes together. Here is some free consulting for Microsoft, based entirely on my readings of white papers ("overview" and "using").

I wrote this entry by going through the two white papers and trying to discern what resources the system exposed, what parts of the uniform interface they support, what representations are served and accepted, and how resources link to each other. This is the same approach I took when analysing the Atom Publishing Protocol for RWS. I'm pretty sure I got everything right, but I'm not totally sure about the association resources. I've presented my findings in a form much like the one I'd like to see if I was trying to figure out how a RESTful web service worked. I hope this helps.


Astoria is a framework for a certain class of web services: those that expose access to tables and rows in a database. In this regard it's similar to ActiveResource. The resources exposed might not correspond exactly to the underlying database objects, but they will look like database tables and there will be some kind of mapping to a real database.

The "overview" whitepaper starts out covering some of the ground covered in RWS chapter 11. It points out that Ajax applications have a different architecture than traditional web applications. They're GUI applications where the GUI events are handled by an invisible web service client. Astoria wants to provide the services those clients will access.

Astoria "uses URIs to point to pieces of data" (ie. resources). Astoria's "data services" are "surfaced to the web as a REST-style resource collection that is addressable with URIs and that agents can interact with using the usual HTTP verbs such as GET, POST or DELETE." So far so good. They talk the talk.

Meet the Resources

An Astoria service defines six basic kinds of resources. A lot of them correspond directly to a resource type in ActiveResource and/or the Atom Publishing Protocol. This makes sense because all three are solving similar problems: exposing collections and the objects in the collections.

  1. The "Entity-set list" resource, located at the service root (/data.svc, for example.) This is not explicitly called out, but it has a URI and responds to GET, so it's a resource. This is a simple list of the available entity-sets (see below). It's analagous to the APP service documents.
  2. "Entity-set" resources. These correspond to a table in a database. ActiveResource has these too; they're analagous to APP's collections. An entity-set is identified like so: /data.svc/Customers. Notably, this is where pagination and "order by" are supported.
  3. There are virtual entity-sets which correspond to a query on a database table: /data.svc/Customers[Valuation gteq 5000000]. This is analagous to the GData extensions to the APP that add query capability to APP collections.
  4. "Entity" resources. These correspond to rows in a database table. ActiveResource has these too, and they're analagous to APP's members.

    A entity is identified with its collection name and then some kind of unique index: maybe /data.svc/Customers[4] or /data.svc/Customers[ALFKI]

  5. There are scoped entity-sets which are associated with some entity. /data.svc/Customers[ALFKI]/Orders shows all the "order" entities associated with a particular "customer" entity. /data.svc/Territories[99999]/Employees shows all the "employee" entities associated with a particular "territory" entity.
  6. Finally, for many-to-many relationships there are separate "association" resources. /data.svc/Territories[99999]/Employees[3] shows the relationship between territory 99999 and employee 3. Presumably it's also available as /data.svc/Employees[3]/Territories[99999].

    (Note: the white papers also talk about a non-resource "association" that's part of the state of an entity. It's a link from one entity to another, as part of a relationship that's not many-to-many. For instance, every order associated with Customers[ALFKI] will contain a link in its representation to Customers[ALFKI]. These associations are not resources, because they don't have their own URIs; they only show up in representations of entities. When I say "association" I'm talking about association resources.)

The uniform interface

What do other frameworks do? The APP and Rails define GET and POST on a "collection" resource; and GET, PUT, and DELETE on a "member" resource. The APP defines GET on a service document. Where Astoria has similar resources, it exposes the same interface. The only part that's difficult to explain is the difference between POST on a regular collection and POST on a scoped collection.

The "overview" white paper has a confusing paragraph about Astoria's use of the uniform interface (the one that begins "For URIs that represent a specific entity...") which is either wrong or very poorly worded: I read it as saying that entities respond to POST, which doesn't make sense. Here's what I got from the "using" white paper, in convenient table form:
Entity-set list X - - -
Entity-set (collection) X X (Create a new entity) - -
Virtual entity-set X - - -
Entity (member) X - X X
Scoped entity-set X X (Create an association between two entities) - -
Association X - X X

I'll just explain "Create an association between two entities," shall I? Here's a scoped entity-set: /data.svc/Territories[99999]/Employees. It's a collection of employees, scoped to a particular territory. There's a many-to-many relationship between territories and employees (at least according to the whitepaper). If I want to associate an existing employee with territory 99999, I POST a representation of the employee to the scoped entity-set. (The representation just contains the employee's database ID.) A new resource is created at a URI like /data.svc/Territories[99999]/Employees[3]: it's the relationship between territory 99999 and employee 3.


"Currently Astoria can represent data in plain XML, JSON (JavaScript Object Notation) and in a subset of RDF+XML." Representations are selected through content negotiation or through a query string parameter.

Incoming representations have the same format as outgoing representations.


So far, so good. But now Astoria must truly pass through the RESTful crucible. How well does it use hypermedia? Pretty well, actually. The "site map" resource links to all the top-level entity-sets. Entity-sets link to entities and to appropriate entity-sets scoped to each entity. A sample XML representation of http://myserver/data.svc/Customers gives the URI to each customer in the list, and an "orders" link to each customer's orders. This is excellent, much better than ActiveResource.

This lame diagram shows my interpretation of how Astoria resources link to each other. There are two minor missing pieces. First, there's no way to get to a virtual entity-set without constructing the URI manually. This is understandable because those URIs can be about as complicated as SQL expressions. You can't design an HTML 4 form that can generate all of them. You could support a simplified version with a HTML 5 or WADL form. I'm also thinking of a series of resources that work like Bugzilla's advanced query builder to support every kind of query building. It might not be worth it.

Second, I get the impression that a scoped entity-set links to the entities inside the set, but not to the corresponding association resources. That would mean if you want to DELETE an association, you need to construct the URI yourself. This is a guess because I didn't see a representation of a scoped collection.


As with Yahoo!'s web services, Astoria's JSON representations can be wrapped in a callback function that calls your code. This lets you use the Javascript on Demand hack described in chapter 11, to run code from a foreign web service in your Ajax application. (The "using" white paper calls this JSONP, for JSON with Padding.)

The "overview" whitepaper says the pagination variables are skip and take, but the "using" whitepaper says they're skip and top. Whitepaper bug!

You can create "service operations", which are arbitrary .NET methods exposed through GET requests. The example given is a custom query, but in practice this feature will encourage a REST-RPC style of programming. However, "[i]n the future attributes will be extended so that the specific HTTP method can be controlled." And the hooks for error checking and triggers are exposed in a way I think will promote RESTful design.

Sam's favorite section: what about caching and ETags? "Astoria services also leverage other aspects such as the well-established HTTP caching infrastructure. Data services can be configured to set various caching-related HTTP headers to cache at the web server, client agent, or intermediate agents such as proxies." It sounds like caching works automatically--with a tie-in to the database engine? No mention of ETags in either white paper.

"Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document." I sure hope not.


Astoria services are in fact RESTful and resource-oriented. They're very similar to APP services, though not so much that the APP is obviously a better base. The main thing I'd worry about is the tendency for programmers to use the hooks for writing RPC-style code. I'd head this off at the pass with the promised support for service operations triggered by other HTTP methods, some RESTful examples, and maybe a bit of theory. But I don't know the best way to herd Microsoft programmers.

Mushroom Wellington: When we went to England we had a great lunch in Cambridge at a place called Rainbow Cafe. The highlight of my meal was a "champignon torsade", a puff pastry twist with mushrooms. Today one of Sumana's coworkers came over and I made a similar dish for dinner. It turned out incredibly well so I'll give you a recipe.

First I took the puff pastry out to thaw and made the filling. This starts with crimini mushrooms, chopped up and sauteed. Add some salt, pepper, and thyme. Then you chop up some asparagus stalks and steam them.

To those two add a cheese sauce. I made a roux with about a tablespoon each of butter and flour, then added a quarter-cup of milk and stirred in about three ounces of blue cheese.

By this time the puff pastry was thawed. My pastry was folded into fourths so it was natural to turn each fourth into a Wellington. I cut the pastry into fourths and brushed around the edges of each with egg wash. I stuck filling in the middle and folded the pastry over to make a Wellington/burrito shape. 20 minutes at 400 degrees gives delicious mushroom-asparagus pastries.

We ate these with a salad assembled from the farmer's market, and dessert was strawberries from same.

[Comments] (2) : Lately Project Gutenberg has been publishing a lot of science fiction. "How can this be?" you ask. "Surely science fiction was invented after 1923, the date beyond which there are only shady Internet rumors that someone might have written something at some point?" Well, yes, that's true, but a few post-1923 SF stories have slipped through the cracks due to the now-obsolete requirement that people do a little work to maintain their indefinite copyrights. So you've got some Doc Smith (unfortunately, Gutenberg author links are extremely unstable, so in a few weeks that link will probably point to Adam Smith) and so on. But today I found a Retief story on Project Gutenberg! Thus, the point of this rambling entry. Our distant descendants will know that science fiction was published as late as 1961!

[Comments] (3) : Wrote about 8000 words today, which is a huge amount except it wasn't fiction. It was entries for an upcoming pseudo-weblog project for which I want to have a big backlog. The writing work is pretty exhausting and I'm only about 15% done (the pseudo-weblog will run for almost a year). I'd rather get most of it over with up front than have to scramble later on and introduce delays.

[Comments] (12) It's Just A Hypermedia Format: There's a children's book about marijuana called "It's Just a Plant". The title always sounded disingenuous to me because if marijuana had no interesting features apart from plantness, nobody would write a book about it. Maybe the lesson of the book is along the lines of: "It's a very special plant, a plant that Mommy and Daddy smoke to get high, but it's not ontologically disjunct from other plants."

In that spirit, here is my defence of WADL, called "It's Just a Hypermedia Format". Sometimes people say they'd like to do strange things with WADL, things I don't approve of and things they wouldn't think of doing with HTML. But WADL is just a hypermedia format. I like WADL because it's a better hypermedia format than HTML or plain XML.

WADL is a way of describing the infinite variety of HTTP requests a client might make in the future. WADL also helps the client figure out which of those infinitely many requests they actually want to make next. One term for this is "service description". Another is "hypermedia". When I say "hypermedia" I just mean links and forms, like you have in HTML.

I'm going to talk about several common objections to WADL, and then put a new objection into circulation which I think is better. A lot of this has been said already, back and forth, but I wanted to gather a bunch of thoughts into one place. I'm taking most of these these from entries in the weblogs of Mark Baker, Aristotle Pagaltzis, Dare Obasanjo, John Heintz, and Patrick Meuller, but also from general murmuring I've heard on the web.

Disclaimer: despite the fact that I wrote a frickin' book about this stuff, I don't think of myself as a "REST expert" and I don't have anything in particular invested in WADL. I just like it as a hypermedia format.

WADL encourages/requires/represents the RPC style.

I'm putting this one first because I think something like this underlies many of the ideas that some standard part of HTTP is what you really want instead of WADL. We all take it for granted that you should rarely if ever need to expose an RPC-style interface through HTTP. It follows that if I fall into the RPC style, I'm probably not using HTTP correctly.

So, here's some WADL for your delectation, a partial description of a service that supports the Atom Publishing Protocol. It's from RWS but it's very similar to stuff in section A.2 of the WADL standard.

  <resource id="atom_collection" path="{feedID}">
    <resource href="#member" />
    <method href="#getCollection" />
    <method href="#postNewAtomMember" />
  <method name="POST" id="postNewAtomMember">
      <representation href="#entry" />

You might look at that and think "They've taken a RESTful POST and renamed it 'postNewAtomMember'! Those RPC bastards!" Except "postNewAtomMember" isn't the name; it's the unique ID. The name is still "POST". An HTML form can have an ID, and so can a WADL method. The ID is optional, and its job is to distinguish this POST method from other POST methods so you can reference it from elsewhere. Same as with HTML forms. That "RPC-style" method (once you multiply out the reference to #entry) has the same meaning as this HTML form:

<form action="post" id="postNewAtomMember" 

OK, I'm not naive. I know that lots of people are going to want to make tools that take that WADL file and generate something ugly like an AtomService class which defines a method postNewAtomMember. When they should be doing something non-ugly like defining a "resource" object or class which responds to post.

But the solution is to educate people about REST so they don't make bad tools (and bad services). There's nothing here that's not in HTML forms.

The uniform interface is good enough.

If the uniform interface was good enough, we'd have no hypermedia. The uniform interface restricts the methods you might apply to a resource. It doesn't tell you which methods are applicable to a specific resource, what the representation to a POST or PUT request should look like, which resource the client wants, or how to get from one resource to another. We use hypermedia for that.

There is an HTTP method called OPTIONS, which is supposed to advertise the capabilities of a resource. The first problem is that nobody uses OPTIONS. The second problem is that the only defined behavior for OPTIONS is to say which methods of the uniform interface are supported (in the Allow header). I'd like to try a system where sending OPTIONS to a URI gets you a hypermedia description of that resource, and see where that goes.

(The uniform interface plus) Media types are good enough.

They're usually not good enough to describe the representation for a POST or PUT request. Think about HTML forms. Specifying the enctype as application/form-encoded doesn't save you from having to define the form fields. The client needs some way of mapping its internal state onto the media format the server expects. This can be described in English text, or it can be described in hypermedia, like WADL.

If there's a custom media type for the specific XML vocabulary you're using, the media type might be good enough. The catch is that your XML vocabulary must also be usable as a hypermedia format. Atom is a good hypermedia format because it's got the atom:link element. atom:link has attributes like "rel" and "type" that let the server add semantic meaning to a link for a client to pick up on. But if you need to specify a hypermedia form (see below) instead of just a link, you'll need to interpolate some WADL or XHTML into the Atom file.

You can't get away from hypermedia. Neither the uniform interface nor media types help you describe the levers of state or connect resources to each other.

Links are good enough.

Links certainly are good, which is why as a hypermedia format WADL describes them. If the XML vocabulary you're serving isn't a very good hypermedia format, if your "links" are just URIs stuck somewhere in an XML document, a WADL addendum can explain what the URIs are pointing to and what they mean. WADL links have useful semantic attributes like rel.

But links are not good enough. They're not good enough for the WWW. Lots of RESTful, resource-oriented websites make their clients do things other than follow links. If links were good enough, Google would look like this:

The joke is, there's just a bunch of links to the first letter of your query.

Hypermedia consists of links and forms. XHTML is one way of expressing forms, and WADL is another. AFAIK they are the only two XML vocabularies that can describe hypermedia forms. [Update: I forgot XForms, OpenSearch, RDF Forms, and Poland.]

There are two kinds of forms: forms for manipulating application state (where the action is GET) and forms for manipulating resource state (where the action is POST, PUT, or DELETE).

An application form helps the client figure out the next URI it should GET. This is how a search engine form works. There are a set of data structures that need to be filled in ("q should be a string") and a set of rules for turning that data into a URI (http://www.google.com/search?q=jellyfish). WADL does the same thing, with some additional features like URI templates.

The client is not making assumptions about the URI space. It's calling in structured promises that the server made earlier, possibly in the response to the previous GET. These promises were represented in hypermedia, in WADL as they are in HTML. If HTML 5 was out and had URI Templates, the hypermedia could always be HTML, but right now there are cases where it has to be WADL.

A resource form helps the client figure out how to format the representation it sends along with POST or PUT to a particular resource. This includes the media type (eg. application/form-encoded) as well as a description of what the document should look like, possibly with reference to some XML schema. Lots of people (inc. me) hate XSD, but that's how you describe what an XML document should look like.

RFC2616 is enough.

It's not enough for the WWW. We also have a hypermedia standard: HTML. HTML is not just another media format like PNG. Media formats convey state. Hypermedia formats convey the levers of state. They show the client how to turn its internal desires ("I want the next item", "I want to spawn a subordinate resource with properties x,y,z") into a next request whose URI and representation the server will understand.

Okay, RFC2616+HTML is enough.

Maybe. I haven't heard anyone say this, but I've thought it. If you grant the HTML5 improvements and URI Templates, HTML is good enough for a large number of real-world services.

I know this because in chapters 5 and 6 of RWS I designed a fairly complicated web service that was completely described in machine-readable ways, and I didn't need a line of WADL to do it. Somebody else could write WADL for that service, just as someone else can write their own link-filled HTML guide to crummy.com, but I didn't need any WADL because I chose a different hypermedia format: HTML.

HTML is missing some of WADL's nice features, but if people start serving HTML representations instead of XML representations, then WADL might die out.

It's better to program directly to the HTTP client library.

A properly written (ie. not sneakily RPC) WADL library is an HTTP client library. My Ruby WADL library is pretty lame, but it's an HTTP library. The methods that trigger HTTP requests are get, post, put, and delete. It doesn't look like most other HTTP libraries, because its metaphors are resources and representations and links, where most existing libraries are based on the request/response cycle. But it's not hiding HTTP under something else, any more than Restlet's client library is.

WADL files are monolithic, like WSDL files.

I haven't heard anyone say this explicitly, but it's a reasonable complaint, and it's one of the things that worries me. That's why in RWS I proposed WADL "snippets" that describe a resource's behavior under the uniform interface. These snippets would be interspersed in an XML representation, the way links and forms are interspersed in an HTML representation.

Monolithic "site map" hypermedia files are a problem because they tend to be cached a long time and treated as unchanging. When hypermedia snippets are served along with representations, a client will hear about any changes in the hypermedia description of a resource. It will also hear about any changes in the relationships between one resource and others. A client can automatically adapt to some changes, assuming the semantic cues stay constant. But when the client does all its work off of an old WADL file which contains all hypermedia for the service, it won't know if the WADL file changes.

To sum up, I'd like to respond to something Aristotle wrote:

So this is how you describe a REST service: you explain the type of response body your server will send, where to find links in it, and what sort of semantics and verbs a particular link implies about the resource it points to.

This is exactly what WADL is for. You can describe a RESTful service in English text so that a human being can write a custom (and probably procedural) client. Or you can describe it in hypermedia so that a client library can present it in terms of the resources you were thinking about when you designed it. Right now your options for rich hypermedia are HTML and WADL.

[Comments] (1) "A crumb": Holly's constructed the Cartesian product of dessert components. It's breathtaking. Her big question is how complicated can a dessert get? I've always thought trifle was the most complicated ordinary dessert, though I've never actually had trifle.

Incidentally, I also like the idea that "American pancakes" are a dessert (an idea I first encountered on my 2002 London trip, where they were selling special pancake hardware at Sainsbury's). It makes me feel decadent whenever I eat them for breakfast. Though I don't really like pancakes.

[Comments] (3) : The Jon Udell interview is up. The picture makes me look like I'm a juvenile delinquent smoking a cigarette, but I'm just drinking a smoothie.

This one presented a bit of an audio challenge because Leonard speaks loudly and Sam speaks very softly.

It's twue, it's twue. When I'm nervous I get loud and sound like an idiot.

☞ Dumb FISH.: I'm not sure why some of these are supposed to be funny, but they're all great: "Quaint and Curious Advertisements" of "Ye Olden Time" (Olden even at time of publication).

To be SOLD by

LEMMON-TRADER, at the Sign of the Baſket of LEMMONS, at the South-End, Choice good and freſh LISBON LEMMONS, equal to any in Town for goodneſs, and as large in general as Lemmons commonly are, at Four Pounds O.T. per Hundred, and Ten Shillings per ſingle Dozen.

Dec. 19, 1768.

Also great is Steam Trek.

Casper The Friendly Brand: Tivo screenshot.

"Subscribe to our brand?"

: OK, I put up pictures from our March trip to India and England. The juvenile delinquent picture comes from Cambridge. Other, cooler pictures include an awesome statue of a bull and this arty shot of Kannada writing. Plus English writing I hope to use as an illustrative graphic one day.


L: Shot in the heart! And you're to blame! You give love... a bad name.
S: Deborahlob.
L: That is a pretty bad name.

: Henry Story pledges to supplement RWS with REST-specific coverage of RDF. I'm pretty dismissive of RDF in the book, but 1) I'm still interested in it, and 2) I don't actually know anything about what will catch on.

In other news: first there was East Germany's Polyplay. Now, Russia's arcade games are revealed in your capitalist WIRED.

Video games were not bargains in the Soviet economy. "It wasn't exactly a luxury, but you couldn't afford to play every day, either," said museum co-founder Alexander Stakhanov. "More like once a week."


Your affiliation with the above organization means you could save big on auto and home insurance.

I've never been prouder to be affiliated with the above organization.

[Comments] (2) Computer Magic: Today I read a collection of Richard Brautigan. My mother told me about him when I was in high school and may have acquired me a copy of In Watermelon Sugar (I'm not sure how I got that) in college. Today I re-read IWS and enjoyed it a lot; it's got a Dwarf Fortress feel to it, with characters making statues of everyday objects and narrating their internal state. Trout Fishing in America wasn't as good, and the poetry was hit-and-miss. One hit was quite good, though: "Gee, You're So Beautiful That It's Starting To Rain". Not as good poetically is "At the California Institute of Technology", but it made me LOL, as the kids say (I believe I briefly turned into a cat).

[Comments] (3) The Future: A Retrospective: I've started a new pseudo-weblog, called The Future: A Retrospective. It's based on a 1989 book of predictions about future consumer products. Every day I review another prediction and see what's happened to the people and technologies since 1989. Actually, that's what it looks like to you. In truth, most days I do absolutely nothing, and once in a while I fill in the backlog. Just like a webcomic!

I've seeded TF:AR with the first five items in the book, including the frickin' Smart House and one of my favorites, the Walking TV.

Things: Recursive islands. Iridium flares.

[Comments] (1) : I was planning not to write about REST on my weblog for a while, especially since all this week I'm writing about REST on the JavaRanch forum, but Jon Udell pointed me to a comment by Paul H. on Jon's weblog that throws down the REST gauntlet. The context is our assertion in RWS that web applications and web services should work on the same principles. I'm just going to quote the general flow of the comment:

[T]he authors' goal is stated as being one "to reunite the programmable web with the human web" ... The unstated assertion here then is that in order to meet the authors' stated goals, the majority of today's Web Applications will need to be re-architected and re-written in order to conform to a RESTful style! ... [T]he RESTful approach is essentially unproven outside of the read-only Web... doesn't this run counter to the often-voiced argument that REST builds upon what makes the web what it is today?

First off I want to say that my goal of uniting the programmable web with the human web is the lofty, inspirational kind of goal, not the kind that gets a budget and a schedule. "Dream" might have been a better word. But yes, it goes both ways: web applications should be more RESTful, and web services should be more weblike.

Now, on to the critique of web services vs. the web. My quick answer comes from Sam's and my InfoQ interview. Again, I'm just quoting the general flow:

InfoQ: Another argument often brought up is that the standard claim that REST's advantages have been proven by the Web's success is actually a wrong conclusion — the reason being that most of the Web's usage is actually non-RESTful.

LR: There's some truth to this. Earlier I said that most websites don't expose write operations RESTfully. But I think removing the non-RESTful parts of the Web would make the Web better, and wouldn't hurt its success—except in the same second-order way it would hurt the Web's success if web browsers were stricter about invalid HTML... I decided there were three important reasons [for the Web's success]: everything has an address, pages link to each other, and you can manipulate the web using only a web browser.

The first two correspond to important features of RESTful web services: addressability of resources by URI, and hypermedia-as-engine-of-application-state... Rather than promoting REST by pointing to the Web as a whole, I would point to the incredible usefulness of URIs and links, two features largely ignored by WS-*.

Longer answer. First, by number of requests the read-only web is most of the web. Even if REST only made sense for read-only web services, the success of the read-only web and the tools built around it would justify a (short) book.

Second, the read-only web is not just GET. It's also URIs, media types, links, and application forms. That's most of the web technologies, and they're used on the web as they are in RESTful web services. All that's missing are write operations and resource forms. Fittingly, there's significantly more controversy about these: see GET/POST vs. GET/POST/PUT/DELETE and do-we-need-WADL. In the interview I ask whether "architectures consciously designed with REST in mind will 'win' over architectures that are simple but only intermittently RESTful." Those other architectures are today's web application architectures.

How big is the gap between web applications and RESTful services? Well, here's a RESTful rule for web applications: POST to the same URI you GET. The URI designates an object, not an operation, and we have a special way of distinguishing between safe (GET) and unsafe (POST) operations on objects.

I don't think that all web applications should be rewritten to follow this rule, because in general I'm opposed to doing work. But when I write web applications in the future I'm certainly going to hew to that rule. It's a cleaner design. Even if you think that rule is a waste of time, you probably don't think following it will break the web—and following it makes a web application resource-oriented and RESTful.

It's true that the success of the web doesn't reflect success on every aspect of RESTful web services, but the overlap is pretty large, and the web's success certainly doesn't stem from any systematic repudiation of RESTful principles.

The Other Unicode Eye Chart: When I saw Joey Hess's Unicode Eye Chart I was bemused and charmed by this plucky Unicode eye chart. I also thought back to the days of my youth, when for quite some time I was able to deny the optometrist his due by memorizing the eye chart while the optometrist was talking to my mother or something. Eventually I was found out and I got glasses. But it would have been tricker for me to get away with it if the eye chart had been constantly changing.

That's why I made The Other Unicode Eye Chart, with my patented "dynamically generated every 5 minutes" CPU load-saver. Now you can test your eyesight, your recall, and your browser's Unicode support, all at the same time. What do you think, sirs?

[Comments] (4) : John le Carré should write a novelization of Spy vs. Spy.

: From a search request:

What did the tamale say when it reached the end of the tightrope? joke

I don't get it.

: Until just a few days ago I thought that the two-handed sword so common in fantasy games was a sword with a hilt on the end of each blade, such that you could either hold each hilt to get more leverage when blocking, or swing it around like a regular sword. I never explicitly examined this idea and said "Yes, this makes sense," but it looks pretty silly now that I've ascertained that a two-handed sword is just a regular sword that's so friggin' huge you need two hands to operate it. Avoiding this kind of misunderstanding may be an advantage of newer, more graphics-intensive fantasy games.

General Purpose Writing Tip: Replace "ironically" with "interestingly".

: I'm taking a little California vacation before Foo Camp. So far I've visited Ed, Manoj, Andrew & Claudia, and now I'm staying with Rachel & Jeremy. These names mean nothing to you! It is like a soup of names where the broth is your own despair!

My asteroid mining story was rejected from Strange Horizons, at the same time I finished a story for submission to Viable Paradise which I'm really happy about. This gives me the idea that I should try to get the new story published and send the rejected one in for VP.

[Comments] (1) : Ah, delicious Mission burritos.

A while ago I saw that someone wrote a paper/article/something called something like "The Object Model of the World Wide Web". It may have been someone's WSEC position paper. I want to rip off that title for a talk I want to give at Foo Camp, but I can't find the original to give proper credit. Does anyone else remember this?

Do You Have to Let It Prelinger?: Yesterday I went with Adam and Alexei to the Prelinger Archives, which were generally deemed awesome. I took lots of pictures (coming when I get back), which is good as I haven't found any pictures online that give a feel for the experience of finding all sorts of bizarre books and magazines. There are some that give you a feel for the library stacks, and now that I see the photos others have taken I think the world needs some close-ups of the bookshelves to convey the browsing experience.

[Comments] (1) Awesome Day: Today Adam and I walked the GG Bridge, and ate at Greens, and Chez Panisse (cafe), and saw Mike Daisey do a monologue. I don't even know how all this awesome stuff happened. At first I had a superstition that this awesome day meant a very terrible day was in my future. Then I decided that it was actually meant to cancel out some very terrible day in my past. Then I decided that kind of thinking was counterproductive, and got out the dental floss.

[Comments] (2) "I'd blog that.": At Camp FOO, which is less like Camp Snoopy than I was led to believe. I give a talk at 1:00 and hopefully some people will show up. I've met many people including Lucas Carlson.

This entry is like the weird diary-like postcards my father used to write to himself.

: In a presentation by Scott Berkun; he just mentioned The Ten Books on Architecture, which he calls the first pattern language book. Plus, I'm sitting next to Andy Baio. It's the same name-dropping I was doing when I was visiting friends in San Francisco, except you've got a better chance of knowing who the people are!

Water bottle siege engine: I didn't see anyone else doing this at Foo Camp, so I kept the detente, but now I can reveal the deadly secret behind the overly complicated free water bottle we were given. In the wrong hands, it becomes a catapult, capable of lobbing little balls of paper over two feet. This 2-second video smuggled out of my digital camera tells the story.

[Comments] (2) I Got Hit By A Junk Car: I got email from a guy who wanted to know if he could subscribe to only my technical entries and skip the stuff about awesome dinosaurs and my boring life. Well, you can subscribe to a specific category, and although I don't use categories as much as I used to, I have been filing REST entires under "rest", which is probably what you want to subscribe to. (Here's the RSS feed.) And in fact you might want to do that now because I'm going to talk about the sensory overload experience that is Foo Camp.

The bizarre thing about Foo Camp is that you are constantly meeting interesting people. It never stops. Five minutes before Fitz and I left, we met Molly Wheeler, who works at the Beinecke Rare Book and Manuscript Library at Yale. I thought this was awesome because I love old books and manuscripts. Fitz thought it was awesome because he is a couple steps removed from a bunch of ancient manuscripts that are, for reasons too complicated to go into here, rotting in boxes.

I was afraid I would spend all my time with the few people I already knew, but that didn't happen, possibly due to huge overcompensation on my part. After a few minutes of conversation I felt my conversant was getting disturbingly close to being someone I knew, and I started feeling uncomfortable talking to them. As Robert said on the way back to San Francisco, "I think I'm going to need two or three days of not talking to anybody, just to process everything."

I had excellent conversations with people I'd really wanted to meet, like Bryan O'Sullivan, Scott Berkun, Carl Malamud (note to self: write separate entry), Teresa Nielsen Hayden (who encouraged me to make a submission to Viable Paradise, which I will do when I get home), Matt Webb (previously mentioned as holder of world's most awesome job), and Brewster Kahle.

New paragraph. I was boring Brewster about how the Internet Archive is great as a huge storage unit for individual files, and okay as a way to find individual files, but very bad when it comes to automatically processing or transforming large amounts of raw data. You have to find and download all that data, process it locally, and only then can you upload your derivative works back to the Archive. I'll have more to say about this later, but at this point in the conversation we were mercifully distracted by a junk pickup with a junk gasifier in the bed.

Someone (probably owner John Rinaldi, though he's not on the Foo Camp guest list) showed us how it worked, filled it up with walnut shells, and started burning off the hydrogen and carbon monoxide to heat up the system. After a brief run-in with security (there was no nearby fire extinguisher), probably-John-Rinaldi fired up the engine and started directing the hydrogen and carbon monoxide into it. Then he started driving around. Brewster and I and several other people crowded in and it was a lot like taking a ride in a junky 1975 GMC pickup, except with a slight odor of walnut. The driver claimed a ratio of 20 pounds of walnut shells to 1 gallon of fuel, and a price of $20/ton for walnut shells, and all those 2*10xes give a fuel price of $0.20 a gallon. You do have to keep shovelling them in, though.

More later.

[Comments] (1) : Right now it seems like a Foo Camp withdrawal dream, but I have photographic proof, so I'm pretty sure it happened. Last (ie. Tuesday) night I ate dinner with John McCarthy and an astronaut. Specifically Janice Voss, whose lecture about mapping and being in space I'd listened to online. This happened because our old neighbor Susan McCarthy of Becoming a Tiger fame is John McCarthy's daughter. I also met Susan's half-brother Tim.

The highlight for me was telling John about REST, but John had apparently been talking to Janice about science fiction, and everyone at the table was a fan, so that was the dominant topic of conversation. Janice had a big list printed on pink paper with the books she's read and what she'd thought of them, a necessary measure equivalent to my Pocket Wisherman when you've read so many books that the pressing question in the bookstore is which ones you haven't read.

Janice also stole the show with her story of taking the Foundation trilogy on the Space Shuttle as a personal item and reading it by Earthlight, during a day when the mission has been completed but they can't land yet (she used a term of art for this which I immediately forgot).

I have a huge number of interesting pictures from Prelinger, Foo Camp, and a trip I took with Susan to a Pacifica tide pool. I took really high-quality pictures and now the problem is putting up download-quality pictures for you guys without having two different systems.

As an experiment I uploaded my video of playful seals to Google Video. Video quality suffered quite a bit, but you can see some seal-shaped objects frolicking around. Jake, also check out the David Thorpe-esque postcard I saw in Susan's house.

[Comments] (1) Random photos: After some experimentation I've set up F-Spot to manage my photos. It generates scaled-down thumbnail galleries suitable for rsyncing to crummy.com, so hopefully that's what you'll see in the future. I've put up three galleries I created while testing.

: Photo mania continues with pictures from our Prelinger trip. Don't miss the ephemera boxes, the candy industry trade magazine, the Jargon File, the dedication for Wake Up Alone and Like It!, and of course Pornography.

Update: The continuation itself continues with Foo Camp pictures. Witness the chaotic schedule board, the chaos to write on said board, remaindered books that nobody wanted, lightning talks, the gasifier car, etc. etc. etc. I'm tired of 1) adding comments to all these pictures, and 2) posting highlights from them, so that's all for now.

: I was going to tell Ben Pollack about this, but it turns out he was involved. Giovanni Corriga is porting the RESTful Web Services examples to Squeak Smalltalk.

[Comments] (3) : The Transformers movie is about to come out, and it's looking like a fiasco. How did this happen? Perhaps NYCB's fake 2003 interview with producer Tom DeSanto will shed some light on the matter. Or perhaps not, since, as previously stipulated, I made the whole thing up.

NYCB: So, in a live-action context how do you plan to deal with the fact that there are effectively no humans in the Transformers universe?

TDS: Well, there are humans, but nobody cares about them. They just fix things and get into trouble. So I'm going to introduce a new human character, Humie the Human. He's someone the audience can relate to.

PS: would it be possible to program a Wii to act as a theremin?

RESTful Consulting: After finishing the Ruby Cookbook I did a tiny bit of consulting, cashing in on my alleged expertise. Not a whole lot since I was working on another book at the time. Now that that book is finished, my Viable Paradise submission is in, and the vacation/Foo Camp brouhaha is now a pleasant memory, I'm starting to feel around for REST-related consulting jobs. I don't really know much of a market there is for this stuff, but given the market for free advice I suspect there's something.

I'm also talking to a couple companies about full-time positions. I'm not going to make any decisions for at least a couple weeks, so if you have an idea for what I should do next, please email me. I'd really like to apply the stuff I learned while writing RWS, but if you want to give me a job crashing giant robots into each other I probably won't say no.

Right Ho, Jeeves: On Project Gutenberg.

: Wait, MST3K is now ripping off Uncle Morty's Dub Shack?!

: A sonnet (about sonnets!) written in Inform 7.

: Foo Camp caused a fairly big change in my mental layout which I haven't talked about yet; that's my attitude towards hardware. I'd always known that there were people who built robots and other crazy things out of spare parts, and when I was a kid I'd wanted to be one of those people, but I didn't have anyone to show me how that works, and my spare parts just lay around and stayed spare. My experience came from building PCs and hooking up audio equipment. So I built up this Lego (LEGO)-like attitude towards hardware. I thought of wires as specially designed and standardized objects like quarter-inch audio cables.

This changed at the MAKE table where I did something I'd never done before: I took something (an iron) apart with someone explaining what I got out of it. The someone was named Mike and I don't remember his last name.

I removed a motor from an iron. I attached it with alligator clips to the wire poking out of a stripped laptop supply. The motor turned. That's all it took to change my attitude. There's nothing special about wires; it's just electrons. I knew this on an abstract level, but I'd never done it before, and without a little guidance I wouldn't have been able to identify the motor or hook it to the power supply without killing myself.

Anyhow, I now think I could build a robot out of spare parts. But the other thing I found out is that they have to be the right spare parts. There is no Turing completeness for hardware, and there's only so much you can do with the stuff in an iron. However now I'm interested in going through the big electronics catalog I got mysteriously in the mail.

Now I will go eat a whole pie: Sad, funny emails from online dating sites.

: Solar-powered wireless networks on the backs of snapping turtles. I was watching this talk about mola molas, and the lecturer said a big worry was that the expensive transmitter tags wouldn't earn their keep. They transmit data to a satellite about a year after being attached. If the mola dies in the meantime you don't get the data. When the transmitters communicate with each other you've got distributed backups.

[Comments] (2) : Tomorrow: birthday party. Today: being really sweaty. I haven't mentioned this yet, but my asteroid mining story got me into Viable Paradise! Now that's excitement! I'm going to room with Rachel Chalmers.

[Comments] (1) : Sumana gave me an awesome birthday present: a commissioned painting of the first pirate on the moon! (More party pictures coming soon). I had been talking about commissioning such a painting for years, but Kevin and his deadbeat artist friends were unwilling to part with their "artistic integrity" for the less-than-princely sums I'd earmarked for the project. Sumana bypassed the mainstream art world altogether and went to the MoCCA comic convention, whose artists prefer to say "awesome!" when you ask them to draw lunar pirates.

[Comments] (2) Time Bank: I was thinking about the "time bank" feature from back in the days of BBSes. A typical BBS was hooked up to 1 or 2 phone lines, so only 1 or 2 people could be online at once. This led to per-day time limits for users. You'd get 30 or 60 minutes of BBS time, which was enough to download about four files. Then you got kicked off so someone else could call. It was a cruel, but fair system.

The time bank was usually a BBS door (note to today's youth: terminology makes no sense) that let you deposit some of today's time and come back to collect it later. I had one of these on my BBS, but I never put any structured thought into when they're useful. Andy and I just liked having more doors than any other local BBS.

I remember using time banks occasionally, but I'm not sure why. Looking back on my previous behavior (which I barely remember), I imagine I'd use the time bank just before logging out of a BBS--it's not a big time investment to pop over to the time bank, and you can use the extra time later to download a huge file (possibly as much as a megabyte!).

A couple callers to my BBS hoarded time: they'd call in just to deposit all their time in the bank, and continue this every day until they'd reached the maximum balance. Seems like, strangely enough, a waste of time.

It should be possible to do some trendy Freakonomics-like analysis of time banks. I can't think of any analogous situations, where an allotment of time is made fungible within certain limits. Any ideas?

[Comments] (1) Spamazon: Doing research for The Future: A Retrospective I stumbled upon hundreds of thousands of identical products on Amazon whose names were generated from popular search requests. Product photos are generated, or chosen randomly from stock photo repositories. A sample collection, from the incredibly prolific author "James Orr and Jassen Bowman". One unsatisfied customer:

This CD has absolutely NOTHING to do with selling corporate gift baskets. It's a trick. It is really about selling "information" over the internet. If you are interested in that, then buy it. But know that you are first being tricked by the title, so I don't know if I would trust the product. I bought the EXACT SAME cd, only the title was about selling "cranberry juice" instead of "corporate gift baskets". I threw it away.

On the other hand (from a review of Your Internet Business - Sell Diaper Cakes In Your Spare Time):

I've finally made my first million! Hot cake is an understatement! Diaper cakes is the new wave and you could be getting in on the bottom!

The best thing is you don't even have to buy this CD set 'cause Diaper Cakes sell themselves!!

But probably my favorite spam-product is The Mega How To Earn Extra Money, Success Principles and Sales Models for Pictures Of Aliens Businesses 3 CD Power Pack. You've got pictures of aliens and you're scraping the bottom of the marketing barrel figuring out how to make money off them!

Seriously, Amazon, get this crap off your store. PS: diaper cakes are real. Flee!

: Last year at this time, Internet madman Julian Cash mailed painted toy balls to a number of people, including Brad Fitzpatrick, Michael Schwern, and Andy Lester. This year he sent one to me. None can speculate as to his motives.

I figured out it was Julian fairly easily, though I briefly considered it as a birthday present from Elise.

: I just got resume spam from Hari Puttur. Of course it's not quite as funny as making fun of spam names since that's probably his real name.

: Today I started reclaiming my lost inheritance by buying a compact OED from the nearby thrift store. That sucker is heavy.

[Comments] (2) : This list of wifi network names reminds me to tell you that ever since we moved into our apartment we've seen a network called SmokeHERB. Sadly, the obvious password doesn't work.

[Comments] (1) : I'm reading The Oxford Book of Humorous Prose and on page 295 Frank Muir drops a maddening hint:

Thackeray contributed hundreds of short prose items and drawings to Punch in its early years. These attracted little notice except for one drawing: this became famous because nobody then or since has been able to see the point of it. A rival magazine helpfully offered five hundred pounds to anybody who could explain the drawing. Nobody could.

Citation needed! This sounds like the "Cow Tools" of the nineteenth century, but I can't find it or anyone else talking about it online. Internal evidence from TOBoHP says the cartoon is from 1841 or 1842, and all of 1841 is on Project Gutenberg. But I don't see the point of most old Punch cartoons, which makes it impossible for me to see the one that never made sense to anybody.

Update, much later: Mystery solved!

: More goodies from the Oxford Book of Humorous Prose: Australian writer Marcus Clarke's late-19th-century metamelodrama The Haunted Author, recovered from the bowels of Google Books and cleaned up to HTML.

[Comments] (3) : Sumana went off to work on a farm and I suddenly became extremely lazy. I've spent the past two days doing not much but playing old DOS games. However I think the DOS game bug has now passed. Here's my new plan: I've got six songs recorded that you haven't seen unless I've shown them to you. I'm going to go to sleep now and when I wake up I'm going to try and record one or two more.

Then I'll have enough stuff to release a little album, pretty much ten years to the day since the release of Nowhere Standard Time. (I don't know when exactly it was, as NYCB archives don't go back that far and July 1997 is missing from my mail archive. It doesn't matter. Stop tearing apart your ARCHIVE directory looking for the exact date, me. PS: I was still working on it on 7/14. That's as close as I got.

Speaking of NST: before she went to commune with the cabbages, Sumana bunched up the video I shot on my California trip (most of it shot by accident), and turned it into a music video for NST's "Relativity". It's the all-time second Google Video You Can Bruise. Enjoy it, if you can.

[Comments] (1) Oysters Before Swine: Had dinner last night with Rachel Chalmers et al. Rose presented Rachel with some clothes for her kids, including one that said "enfant terrible." Someone (I think India) suggested a mini "I'm blogging this" T-shirt for infants. I countered this saying that "I'm being blogged" would be more accurate. It was just like the Algonquin round table! (p533-556 of The Oxford Book of Humorous Prose)

: I was just getting ready to release my awesome new album, and then I discovered that there's a new radio sitcom about Bletchley Park. I can't compete with that!

[Comments] (5) : OK, here you go. The new album is Omne Animal Triste and it's got nine songs you've probably not heard before. Blaaah!

: In the 80s and 90s there were a lot of cyberpunk-inspired "hacking" games (here's a bunch of reviews). In these games you "jacked in" to the "network", battled ICEs, and stole data from mainframe computers.

There were claims through the nineties that "corporate espionage" was the next big moneymaker for the military-industrial complex after the fall of the Soviet Union, but it never amounted to much and even I could tell that it was a poor substitute for fighting commies. Very few people made a living cracking computers over a network; it was mostly amateurs looking for thrills.

Today, computer crime is big business, but the games have disappeared. I've got an idea for a modern-day game about computer crime. Instead of ripping off faceless corporations, you're defrauding the general public. You can set up phishing and malware sites, create botnets, send out spam, sell fake pills, etc. Pitfalls include spam filters, ISP shutdowns, vigilante activity, and mob hits.

Would this game be fun? I'm pretty sure it would be fun by the standards of the 80s cyberpunk game, but that's not a terribly high bar to set. Here's a card game called "Botnet" that looks fun but is a little lower-level than the game I'm thinking of.

[Comments] (2) : I was reading the science fiction-y 1964 RAND Corporation report Habitable Planets For Man (which has what might be the best figure title ever, "Hypothetical satellites of the Earth", also see Preliminary Design of a World-Circling Spaceship). It fed into my growing belief that the RAND Corporation is itself an organization out of a science fiction novel, right down to the ominous name and alien amorality. However I was unable to think of any science fiction that actually features the RAND Corporation. Anyone? I'll settle for offhand mentions.

I'm also interested in RAND-like entities; I can think of two of those off the top of my head. The Foundation is a lot like RAND, which makes sense since they come out of the same ideology. There was also a Star Trek: Voyager episode which had a RAND-like group of mercenary aliens (inc. Jason Alexander) but, typically, didn't do anything interesting with them. That's all I got.

Oh, speaking of the Foundation, there's a fun book by Donald Kingsbury called Psychohistorical Crisis which is written as if Asimov's psychohistory had caught on as a common science-fictional trope instead of being a one-off. It would be interesting to see some psychohistory stories as they'd have been written in the 60s or 80s.

And just to take this entry further off its original point, I find it interesting that psionics used to be fairly common in science fiction (thanks to John Campbell) and now it's kind of tacky and pushes your story towards fantasy. But you can see a residue of it with all the telepathic characters in Trek and other science fiction TV shows.

[Comments] (3) : Going to SF tomorrow for job interview/consulting. Basically going to be busy or on planes for the rest of the week.

[Comments] (1) : Well, I'm back.

[Comments] (2) : Not enough people and things are "the celebrated". Basically the only thing that's "the celebrated" is the jumping frog of Calaveras County. But almost anything that's appreciated by a medium-sized group of people can be described as "the celebrated". Or you can just declare something "the celebrated" by fiat, like Mark Twain did.

Job Interview Karaoke: Derived from Powerpoint Karaoke. You're given someone's resume and role-play a job interview pretending to be that person. The job you're interviewing for may also be chosen randomly. For higher stakes, submit someone else's resume to a real job listing and try to get the job.

Mini Game Roundup: Battle Tanks is a fun game of wanton destruction. The AI is pretty bad but it's fun to just drive around destroying the game world.

[Comments] (1) :

"Charmed, I'm sure."
"What does that even mean?"
"I think it's a veiled insult. 'Well, I can't be bothered to check my own mental state, but...'"

: Tiny Pocket Wisherman update. Don't bother upgrading unless your list was having problems before.

: More semi-modern science fiction showing up on Project Gutenberg: Project Mastodon by Clifford Simak.


"Knock knock."
"Who's there?"
"Your mother."
"Your mother who?"
"You don't remembah your own mothah?!"

[Comments] (1) : Amazon's new Flexible Payments Service is cool but its "REST" interface is about as RESTful as Flickr's and del.icio.us's "REST" interfaces. This is pretty disappointing since Amazon's S3 is one of the coolest RESTful web services around.

Everyone reading this weblog is probably sick of my explanations, but here it is: FPS, Flickr, and del.icio.us all use URIs to designate functions when URIs are supposed to designate objects. This takes you from object-oriented programming back to procedural programming. They expect clients to invoke functions through GET requests, which means caching can't work, clients need to handle URIs like sticks of dynamite because there's no telling what GET might do, etc.

There are other problems, like their two status codes and 70ish error codes delivered through the single HTTP status code 200 (OK). But you don't have to drink the entire pitcher of REST kool-aid to want to get rid of the big architectural problems.

Amazon SQS had almost exactly the same non-RESTful "REST" interface until people complained, so maybe complaining will work here.

: I just re-read Danny the Champion of the World. I don't think I'd read it since fifth grade. That's the best heist story ever.

: Search request: BON JOVI,YOU TUBE.I'LL BE THERE FOR YOU. I envision someone shouting that drunkenly at Bon Jovi.

: The Future: A Retrospective, my other weblog, is still going strong. "I think this didn't catch on because the government requisitioned the parts to build Inspector Gadget."

: Misc. links.

: Google search service reborn as a RESTful web service somewhat along the lines of my proposed design that works just like the website. As usual, they put severe restrictions on use—most notably you can't use it at all unless you're an academic researcher.

[Comments] (2) : Argh. Sorry for downtime. It's all Kevin's fault. You might not be shocked to learn that nothing terribly important happened to me during the downtime.

You're All Resources!: RWS reader Scott writes, apropos Chapter 7's remake of the del.icio.us web service as a set of RESTful resources:

"Why is the recent list of bookmarks a resource? Why isn't "recent" a filter on the resource bookmarks?"

I couldn't figure out how to post a comment on Scott's weblog, so it goes here. The short answer is that it's both. "Resource" is the HTTP-level term, and "bookmark filter" is an end-user-level description of the resource.

It's legitimate and often useful to talk about /recent as a filter on the bookmarks, but that's an abstraction. All /recent is, is a URI that gives you something when you GET it. You might link to /recent, retrieve or cache a representation of it, etc. etc. It names a resource. Calling it a filter on the bookmark list is on the same level as calling it a list of recent bookmarks. It's accurate but not very precise: you're using high-level terms instead of well-defined terms like "resource". Resources are defined as part of HTTP and filters aren't.

Scott again:

How is "recent" bookmarks any different than "bookmarks for the last 10 days" or bookmarks since "9/10/2007"? I don't think anyone would argue that the last two aren't filters. But "recent" isn't any different then either of those two.

They're exactly the same. They're all resources. In chapter 7 when I mention features like date filters, I describe them in terms of end-user functionality so I use end-user-level terms like "filter", but on the level of HTTP analysis, /users/leonardr/bookmarks/?date=2007-06-01 or whatever points to a resource.

Hope this helps.

: Dennis Jerz's primary-sources paper on Colossal Cave is awesome. Reminds me of the IF game I never wrote based on my Colossal Cave experience, where you have to get into the cave despite the inconveniently scheduled tours and unhelpful people in the park station.

What Jerz's paper doesn't tell you is that near Colossal Cave is the best-named cemetery ever.

The original CC source code, long thought lost, was discovered in 2005! How did I miss that?

: Cool-sounding book: Essential Electronics for Software Folk. I thought software folk was dead.

[Comments] (4) : A few years ago my family had a brief interest in Kinder Eggs, possibly as Christmas stocking stuffers. They were objects of intrigue, being illegal in the US because of some ridiculous law about putting non-food items inside of food. Those non-food items were cool toys which you could assemble; my mother was very fond of a cow which made a funny face when you moved its tail.

Maybe a year ago I saw Kinder Eggs start showing up in stores in the US. I thought the law was now a dead letter, but Wikipedia alleges our imported Kinder Eggs have simply been adulterated with stickers and other lame treats, instead of cool machines you build. I will investigate.

Apparently Apparently lame Kinder Eggs have now taken over in the UK too, in a heavy-handed analogy for the detrimental effects of copyright harmonization.

: Musical team-up: "Uncle Meat" by Zappa and "Brother Veal" by Marsalis (?).

: Another story submitted to Strange Horizons. Incidentally, they're having a fund drive and encouraging people to say nice things about them and drive traffic to them, which I'm happy to do. I'll just repeat what I said in April that SH-like online magazines are the future of short-form science fiction. And as long as I'm plugging things, my mind can't let go of my Street Performer Protocol/cliffhanger method for selling fiction online. If I ever manage to build up a fiction reputation I may start a site for that.

[Comments] (2) : Here's a tip! When you're applying for a job with a company based outside the US, ask if they have a health care plan. They probably don't!

: As I'm sure you've seen, Kevin's DSL has become extremely unreliable. Since my website is becoming pretty important for me professionally, I've started the process of moving everything over to a real hosting service.

Stuff I've seen. First, from the fanboy attic, Brannon Braga admits the last episode of Enterprise was lame. When there's a franchise novel devoted entirely to walking back an episode of the TV show, there was probably something unsatisfying about that episode.

Trip was always my favorite character on the show and I wanted to... I just wanted to kill him. I can't give you a coherent response. We wanted to do something that had emotional impact and had consequences which is something we were never allowed to do.

Okay, that's actually an understandable impulse, but don't just do it randomly; work it into the drama. Oh wait, THERE WASN'T ANY.

But even more tiresome than bad episodes of Enterprise are fanboys who know a lot about what happens in various episodes of Star Trek but not a lot about how to put it into a larger fictional-historical context, and pester Braga with misplaced nitpicking.

One of the biggest beefs is that we violated the Vulcan culture, that we did things with Vulcans like the mind melds that clearly were not kosher with regards to the Original Series. But remember, cultures change... American culture is not the same as it was 200 years ago.

The only time a Trek culture was presented as other than homogenous and unchanging, and people complained!

PS: the eternal question about why things look so nice in Enterprise and so cheesy in TOS is pretty easy to answer. The answer is that these are different TV shows made 35 years apart. I don't mean that flippantly. When you watch a TV show you're not peeking directly into a fictional universe where everything looks just like it appears on your TV. Your experience of the fiction is mediated by a bunch of people who built sets, read lines, chose specific takes to edit together, etc. There are infinitely many ways of dramatizing a fictional event. A script can be written well or badly, and a TV show can have clean 2000s-looking sets or dorky 1960s-looking sets. It's not an inconsistency on the level of the fiction. PPS: Spock's science station Viewmaster is awesome.

: OK, other stuff. Paul Riddell talks about what it would take for a "Lost World"-type dinosaur enclave to survive to the modern day (It's basically impossible). I have never been particularly wedded to this idea, so I'm not devastated, but it was a really interesting article.

Toby Segaran's new book Programming Collective Intelligence looks excellent.

: Crummy has been moved! I took the opportunity to clean up and reorganize the past ten years' worth of stuff. In particular, the writing directory is the new home for a lot of stuff that was previously scattered all over the place. Over the next couple of days I'll be continuing the cleanup, putting up some things that got lost before making it onto the site, and things that used to be up and I want to put back.

Adam Parrish said he hoped that my redesign would not destroy the aspect of Crummy where you can just click around and see random weird things. Well, there are still lots of links, so I'm assuming it'll be fine.

I haven't reuploaded some of the mega-bandwidth-sucking files, and some of those I might not put back at all. In particular, I think the world might have had enough of the early works of Jake Berendes and Jeremy Bruce. Tell you what, I'll trade you an album of my own musical ephemera. Coming soon!

Crummy weblog authors and others: let me know if you have any problems.

: Thing that should have gone up a long time ago #1. Back in 2002 I announced a contest to find the 419 scam email with the biggest alleged haul. The winner was our own Manoj Kasichainula, and the valueless prize was to have the scam email immortalized as the third entry in the Doctor Virtual's Cyber-Couch trilogy. I just formatted it as "This Transaction is Riskfree".

After School Special: All right, let's put some meat on this online bone. After School Special is the album that collects songs I've linked to from NYCB over the past six years, but never archived in any consistent place. It includes the sprawling Leonard/Adam/Kris musical deconstructions of the '80s, the spam songs, the 10-second compilation songs, Frog/Antifrog (finally!), etc. etc. etc. All cross-referenced with the original NYCB announcements to prove I'm not cheating, for some obscure value of "cheating". Enjoy it if you dare.

: About a year and half ago, the Dadasaurus Rex scraper broke and I didn't notice. I've fixed it and now DR has twice the source material to work with.

: More cleanup. I redid my music page around a much better-looking graphical metaphor based on album covers. This meant creating CD-style covers for the five albums that didn't have them. I'm especially proud of the cover for version 1.1.2pl14. While I was at it, I took v112pl14 and Bad Stupid Delerious up to modern standards of lyric sheet- and liner note-having. Will do the rest later.

The other main thing I did today was add a bit more to the The Future: A Retrospective backlog.

"There is no need to say any thing of the literary merits of the work": Old publisher's catalog.

: Teeth suck.

: The one thing I saw at Foo Camp that I couldn't tell the general public about has been announced. It's a new kind of radio! For a country that only has a few radio stations. Still cool.

: Sumana took our huge archive of digital camera pictures and scanned postcards, and made a slideshow video for "The Whiskey Rebellion Activity Zone". Shot in four countries! I especially like the postcard from the Singularity.

: It's no secret that the Prelinger Library has a weblog, but what was a secret to me (and possibly to everybody) is that Rick Prelinger has his own weblog. Here he is "On the Virtues of Preexisting Material".

Dave: After many years of hearing about Dave from Sumana, we watched it tonight. I don't think it's aged very well. At the beginning I was thinking, "Well, this president sure is a jerk, and he cheats on his wife, but at least he didn't start a disastrous war or have people tortured." Then it just got unbelievable. I think The West Wing has greatly raised the level of procedural accuracy I expect from fiction about the government. On the plus side, Frank Langella reprised (preprised?) his role from Star Trek: Deep Space Nine. Ah, it was fun just to watch him be evil.

While looking up Frank Langella I discovered that there's now a Star Trek wiki for non-canon information from licensed books, video games, etc. Now you can create a Mirror Universe version of your Trek RPG character! I hear that sourcebook has a great facial hair roll chart.

Yak: Shaved!: OK, I've remodeled the major parts of Crummy except for the probably-will-never-be-organized pictures directory.

Things That Are Cool: A Continuing Series: Forbidden Lego

[Comments] (2) Dentist 2.0: Teeth still suck, and my dentist is very young. I'm used to dentists being really old guys and middle-aged women, but this guy is only a couple years older than me. You know there are now people in Congress younger than me? Probably. Anyway, he's got these glasses and this haircut and it's like having Ira Glass as your dentist. "Act One: Novocaine." I'm assuming dentistry is his day job until his indie rock band gets signed.

Pseudo-update: I checked and there's no one in Congress younger than me, but it's getting there. It's almost like I'm getting older as time passes.

[Comments] (4) Human Resources: Scott and I can't comment on each other's weblogs. In the case of my weblog it's because comments are shut down after a week. Anyway, Scott responds to "You're All Resources!":

I guess my struggle with it is that looking at /recent doesn’t make it obvious that’s its recent bookmarks whereas something like /bookmarks/recent or /bookmarks?fromDate=2007-06-01 is more obvious that its a list of bookmarks.

That's a fair point. /bookmarks/recent (or just /bookmarks) would make it more clear to a human what "recent" things exactly are at the other end of the URI. I never considered that because Rails doesn't encourage that kind of thinking, but it's a better URI choice. But we're now in a side issue because what a URI looks like has no formal bearing on what resource it identifies. The URI could be /4350/9885677.4169 and it would still be a resource that gives you recent bookmarks when you GET it.

This is probably not something you were wondering, but I'll address it briefly: how do you make it clear to a computer that there's a list of recent bookmarks at the other end of the URI? There are a number of ways. At one end of the spectrum you can hard-code this information into every client. At the other end you can do some magic Semantic Web thing where terms like "bookmark" and "recent" are given meaning within some ontology that a general client understands. In between you have clients that are programmed to understand certain media types or microformats, and clients that are programmed to understand certain hypermedia formats that contain semantic cues.

In none of these cases does the computer "understand" the resource the way a human does. The goal is to reduce the space between the human's desire "I want to do x to recent bookmarks" and the HTTP request the client ends up making. One one end of the spectrum, the user has to hard-code their desire into the client. On the other, the client can take "x", "recent", and "bookmarks", plug them into the ontology, and figure out which request to make.

: Actually, comments were broken on my weblog, because I hadn't installed a MTA on the new machine. They work now.

: My friend and Ruby Cookbook contributor Kevin Marshall just finished his own book, Pro ActiveRecord: Databases with Ruby and Rails. Quite the accomplishment.

[Comments] (1) : I'm in Florida on business. Nothing to report, just thought I'd mention it.

[Comments] (4) Ice Has A Bucket: Of all the hotel accoutrements the only truly bizarre one is the ice bucket. I don't use more ice in a hotel than I do at home. When I do, the ice bucket is too small for the purpose I have in mind: surreptitiously filling an ice chest. So why does every motel and hotel offer ice machines and ice buckets? It's like a peanut sheller in every room, reproaching me for not eating more peanuts. What, in short, is the deal?

After careful consideration I believe the deal is booze. People come to hotels to booze it up, and cocktails demand ice. Evidence: if you buy an ice bucket for your house it's going to be in the context of a home bar. Mystery: solved?

: Animals seen so far:


[Comments] (2) : On this trip I've discovered that it's a very fine line indeed between "live music" and "karaoke".

[Comments] (2) : I synthesized a dataset that would be really cool to look at, but it's so big that Graphviz does a poor job of visualizing it. "So big" here being about 5k nodes and 140k edges. Does anyone have suggestions for different Graphviz settings or other pieces of software?

[Comments] (1) : Back in New York. I spent the past couple of days visiting Alyson and David. More later.

[Comments] (2) : Susanna and John, when you move back to Utah you'll need this.

: Flee, ye assembled, from The New Pun Book, a book of infuriating conversations that unaccountably stop just before someone starts throwing punches. An unexpurgated selection:

Guest—What have you got?

Waiter—I've got liver, calf's brains, pig's feet—

Guest—Hold up there! I don't want a description of your physical peculiarities. What have you got to eat is what I want to know.

Waiter—Take that! And that!


[Comments] (5) : Damn airplane germs. Instead of doing anything useful I'm going to write about video games.

Atticus and Samuel love video games. They mainly love the feedback loop: they seem just as happy with a cheap toy from a cereal box as with a DS or GameCube. (However at any given time they must be using consoles with similar capabilities, or strife ensues.) Alyson and I played some Mario Kart Double Dash with them. They also like a game for the DS with the promising title of "Mario vs. Donkey Kong 2" (however they are not terribly good at that game, so I secretly unlocked some of the mini-games for them).

I have been out of the gaming console loop for about 15 years, and playing these games with the kids really drove home to me that Mario has become a frozen brand. There are about fifty Mario-branded games but the vast majority are not what I'd consider "Mario games", ie. platformers. MvDK2 looks just like (say) Super Mario World, but it's a puzzle game with no more action element than Lemmings. Mario Kart has the trappings of the Mario universe, but it's a racing game like every other branded racing game. Mario is now a figurehead, like Mickey Mouse, except Mickey's figurehead role has made him milquetoast and neotenous, whereas MvDK2 and MKDD actually succeed as games.

When I was a kid--no, this is going somewhere--there was one Mario game and rumors of a second. (Even this is complicating the issue because there were non-platform Mario games in arcades, but we didn't think about those.) At this point the universe could go one of two ways. Nintendo could release in the US the "Super Mario Bros. 2" they released in Japan, or they could change the sprites on a totally unrelated platformer and call it "Super Mario Bros. 2". The Japanese SMB2 is a good game, but it's a straightforward level hack of SMB1. Option 1 would lead to a world in which one Mario platformer was pretty much like the last. Option 2 would lead to a Cambrian explosion of totally new gameplay elements like picking things up and throwing them, and entirely out-of-left-field characters (like Birdo, now apparently Yoshi's transvestite boyfriend).

We got the second, and in my middle school the result was pandemonium--some sort of pre-release hype grapevine I don't remember, followed by desperate borrowing of cartridges from the kids whose parents had bought them. Nowadays it's fashionable to treat SMB2 as the odd man out it objectively is, but at the time it was a huge deal, and part of the huge deal was that 2 was radically different from 1. Then the same thing happened with 3, which was radically different from 2, in the same direction but not the same as 1.

I'm losing control of the narrative and I'm about to go off on a little fanboy tangent, but my larger point is that up to, say, Super Mario World, every Mario game was the same kind of game but added major characters and/or gameplay mechanisms. With SMW and Yoshi, the Mario brand froze and you wouldn't add more characters any more than you'd add more characters to the Disney lineup. The idea of new core mechanics (turtle shells, boxes containing power-ups, picking up and throwing things, etc.) stopped being meaningful because any sort of game could be given the Mario brand. And without new core mechanics that can be deployed in multiple games, the brand is frozen.

Here are the major changes I've noticed in the Mario universe since I stopped playing console games in the early 1990s: 1. Donkey Kong came back, started wearing a tie, and had a bunch of kids, Bowser-style (who's the mother?). 2. Pauline also returned after a long absence, probably causing some angst on Princess Toadstool's part. 3. Some kind of parallel-universe Mario named Wario showed up. There are also baby versions of Mario and Luigi (neoteny!), but I'm not counting that since obviously M&L were babies at some point. Even if you count them, all this stuff is revamps and standard twists on stuff that was canon already, like the fourth season of Enterprise, or if Disney tried to bring back Clarabelle the cow. The Cambrian explosion is over.

(Wow, I managed to push the fanboy tangent off past my main point. Here it is: it took a while for the SMB2 changes to be integrated into the Mario universe. The only part of SMB2 in SMB3 is the Bomb-ombs, and nothing further is in SMW except the cacti and a couple Ninjis in the last level. But by the time of Double Dash and MvDK2, the weird masked SMB2 enemies are everywhere.)

Since you've read all this way, you'll probably enjoy this collection of videos of hacked SMW worlds in which Mario triumphs by doing nothing. And if you like that, you'll like level 3-2 of Air, and some of the user-defined levels of N. Anything else?

Well, bye!: As part of my "being sick" plan, Sumana and I watched One, Two, Three. That's a hilarious movie with an awful title. The jokes just keep coming and are memorable and quotable. It gets a tiny bit slow and confused at the end but the Billy Wilder ride is worth it. Plus, IMDB confirms it: the Coca-Cola building in this movie is the same one used as the Cola-Cola building in Good-Bye Lenin! Now that's what I call "Referenced In"!

: I forgot to write the conclusion of the video game entry, which is that the boys are happily playing games that visibly incorporate 25 years of history. But they don't care about Donkey Kong any more than they care about Plane Crazy. Maybe a little more since Alyson is trying to keep them out of the clutches of Disney.

[Comments] (6) : One good thing about my Florida visit was that I got to visit three states I'd never visited before (FL plus Georgia and Alabama). You might know that I'm a bit obsessive about this, apart from the instrinsic interest of the different states, and have even used web tools to make maps of the states I've visited. But what was missing was a map that distinguished between the 5 minutes I've spent in Idaho and the 25 years I've spent in California. So I spent 5 minutes in New York and made my own multicolored map. Somewhat arbitrary house rules: time spent in airports doesn't count; time spent in car or train does; overnight stays are counted as "1 day".

[Comments] (1) Boiled Peanuts: Or bold peanuts, as they say down south. Fun fact: peanuts are legumes! I know this seems like an academic point when you're snacking on them at the ballpark, but when they're boiled they taste and mouthfeel like beans and you start wanting to make curry out of them. Tragically un-recommended.

Cooking For Mathematicians: "Modelling dishes and exploring culinary 'precisions': the two issues of molecular gastronomy":

This modelling led to the discovery that all the French classical sauces belong to 23 groups only: W, O, W/S, O/W, S/W, (O+S)/W, (W/S)/W, O+(W/S), (G+O)/W, (G+O+S)/W, (O+(W/S))/W, (S+(W/S))/W, ((W+S)/O)/S, (O+S+(W/S))/W, ((W/S)+ (W⊃S))/W, (O + (W/S)/W)/S, ((O+(W/S))/W)/S, (O/W) + ((G+O)/W), (O+(W/S)+(W⊃S))/W, (S+(W/S)+(W⊃S))/W, (((W/S)+(W⊃S))/W)/S, (O+S+(W/S)+(W⊃S))/W, (O+S+((G+O)/W))/W.

[Comments] (1) Restaurant Heuristic: If a restaurant has a banner outside saying how much the New York Daily News loved it, the restaurant is probably awful.

: "These little machine-generated texts enchant me, but I can’t read them for long. They afford too little purchase to satisfy my need for meaning."

That's because IT ATE IT ALL!

: Hey, people who live in LA. Who I guess is Adam and Kim at this point. Frank Conniff has a monthly comedy show in Hollywood called Cartoon Dump, and lately Joel Hodgson has been guesting. They also do it as a video podcast. Okay, honestly the jokes are relentlessly one-note, but it's pretty funny.

[Comments] (1) Psych: This is a funny if unrealistic show, but the best part is that it's the show we wrote all those Tonight's Episodes for. Every Psych episode title is in the TE mold, including five (eg. "Zero To Murder in Sixty Seconds") that are slight variants of actual TEs ("Zero To Dead in 3.5 Seconds"). Best episode title: "Meat Is Murder, But Murder Is Also Murder".

Ozymindieas: Look on my scare quotes, ye mighty, and "despair"!


Knock knock!

Who's there?

Knock knock!

Who's there?

Knock knock!

Who's there?

Knock knock!

Who's there?

[Comments] (2) : When I was very young my family did some recordings on my dad's big 80s tape recorder. Like Sumana, when I was a little older I did recorded sketch comedy with myself, eventually filling up a couple tapes. The former have survived; the latter mercifully perished. (I do, unfortunately, still have the horrible "shareware" GW-BASIC games I wrote back then.) Anyway, the tradition has revived as Sumana now occasionally bugs me to do a "podcast", which is what these recordings are apparently called nowadays.

There are fourteen of these "podcasts" so far but you haven't heard them because they always turn into rambling forty-five-minute conversations or they get mushy or boring, or I use the time to come up with hilariously obscene art projects. UNTIL NOW. Podcast 1: Duluth Trek has enough catalog nitpicking and Star Trek fanboyism to keep you entertained for five minutes, assuming you already know us and haven't heard our voices in a while. Note that this is only a podcast in the sense that "podcast" can be used to refer to any audio file slapped up on the web—there's no syndication feed.

: In keeping with today's theme of doing things Sumana already did, I took a career quiz. Here are its top recommended careers for me, with careers I've seriously considered bolded like so many peanuts.

  1. Website Designer
  2. Industrial Designer
  3. Historian
  4. Computer Programmer
  5. Fashion Designer
  6. Cartoonist / Comic Illustrator
  7. Cartographer
  8. Sign Maker
  9. Interior Designer
  10. Electrician
  11. Cabinetmaker
  12. Electronics Assembler
  13. Costume Designer
  14. Set Designer
  15. Makeup Artist
  16. Computer Engineer
  17. Video Game Developer
  18. Multimedia Developer
  19. Mathematician
  20. Anthropologist

"Writer" showed up at 34. Looking back, my would-be careers tended to fall through due to me not having the relevant skills (cartoonist, mathematician, professional baseball player) or the market not existing anymore (multimedia developer? What is this, 1994? Well, it was at the time.) or the work just being not very exciting up close (video game developer, website designer, paleontologist).

[Comments] (2) Puzzle: At the office supply store we saw a padlock whose keying mechanism was a set of five wheels like you might see on a briefcase. Instead of numbers the wheels had letters on them. Instead of a random string, you can choose a word to be the lock combination. The word can have five letters or four (one of the 'letters' on the fifth wheel was a blank). The locks in the store were set to "MATCH".

Obviously when you design the wheels you want to arrange the letters so that they can spell the largest number of words. Assuming there are 10 letters on a wheel, what are the best wheels?

That's the puzzle. The metapuzzle is to see if an equivalent puzzle has already been posed and answered.

: Recently I read two books about ontology: Ventus and Apex Hides the Hurt. Very different books, but maybe not that different. Colson Whitehead's last two novels have basically been hard science fiction, except that marketing isn't a science. A hyperliterate book reviewer such as myself might analogize his works to a super-Mundane Space Merchants. Unless I'm doing the opposite of the thing where authors who've clearly written a science fiction story try to wriggle off the hook.

[Comments] (1) : Today at the thrift store I found a Carousel Executive Snack Dispenser! aka Tom Servo's head! It's blue instead of red, but it's close enough to be disturbing—it has no snack-dispensing connotations, it's the head of a guy I kind of know. I'm pretty sure I could fit it with a string if I had the equipment, so maybe that'll be a long term project.

Search Requests of Pathos: magic real wishing trolls to make your wishes come easily true

It's a wonderful world... of crushing disappointment!

[Comments] (1) : Today: epic date day. We walked through Central Park to the Met and took in a cool sneak preview of a new Dutch Masters exhibit. Unfortunately, we were unable to find Sumana's favorite painting, The Fortune Teller by non-Dutch Master Georges de la Tour. Sumana will probably read that and say "It's not my favorite...". So you've been warned.

Then we ate at an okay Thai restaurant (the crispy duck salad was great but everything else was not that good) and saw Helvetica (also not that good). Still fun. Ice cream at the oddly suggestive and stoner-y but tasty Mary's Dairy. I'm starting a full-time job after Viable Paradise so I've decided to squeeze in more of these days while I still have a flexible schedule.

: Sumana and I did a podcast, basically a riff where I try to come up with better filler lines for "Froggy Went A-Courtin'". Special musical guest: me.

[Comments] (5) 1491: This book blew me away! (See also author Charles Mann's responses to J. Bradford Delong's students.) It does what Guns, Germs, and Steel didn't do, which was to integrate the inhabitants of the Americas into history, showing them as people who did things rather than as people who had things happen to them. I thought it focused too much on South America, but that's where all the stuff is.

Here's the main thing I don't understand. There are dueling explanations for what killed the mega beasts. My favored explanation has always been overkill, on the general rule that mega beasts never survive long when humans come on the scene. 1491 brings up some arguments against overkill being the sole mega beast killer, such as the fact that many non-mega beasts went extinct at around the same time. My non-expert opinion is that this is pretty weak sauce because humans are really good at killing things, and even if you only kill the mega beasts there's going to be ripple effects in the whole ecosystem. In fact, one of the mind-blowing parts of 1491 is how much of the ecological picture we have of the Americas it explains as coming from the sudden near-dieout of the primary predator (humans) through disease. Though the results there were overpopulation of other species, not extinction.

But whatever. I'm not wedded to any particular explanation or explanation combo for mega beast extinction. I'm also not wedded to whether the Clovis sites represent the earliest American cultures, or whether there are lots of pre-Clovis sites. 1491 argues for pre-Clovis sites, and GG&S argues against. But here's the thing. If there are pre-Clovis sites then you've got humans hanging out with megafauna for thousands of years before the mass extinctions. That hurts the overkill theory, but it also hurts the whole theory of human development as popularized by Diamond and Mann. Why didn't someone domesticate the horses or camels or megallamas, with all that implies?

PS: In other book news, Ventus, which I mentioned a few entries ago, is available as a free ebook. Take the curtain!

[Comments] (1) Bust a Birthday Rhyme: Adam Parrish and Susanna share today as their birthday, as you know if you peruse Today In History. Adam put up a great chiptune song that has the quivering synth that is the sound of something tugging on my nostalgia strings. In other music links, everyone who will get the in-jokes has probably already seen it, but Jason Scott's video for MC Frontalot's text adventure song is great. Not-so-fun fact: the first time I heard the song I heard "Nord and Bert" as "Niklaus Wirth".

: One more cool thing about It Is Pitch Dark. Sumana and I hashed this out together.

And I retain plane tickets, snapshots, receipts,
yet I stand unconvinced that this has happened to me.

In those lines near the end, MC Frontalot compares the Infocom feelies to the fake documents from "We Can Remember It For You Wholesale". Both attempts to add realism to an experience you didn't actually have.

: Sumana's in the living room.

"I'm gonna watch this video slideshow on the history of the laugh track."
"Yeah, I'm gonna shut the door for that."

[Comments] (2) : Time to plug my other weblog again. "Hey! Robot dog here!"

Unrelated: "It's like watching home movies of Lwaxana Troi."

[Comments] (2) : Useful literary concept: just-in-time exposition. (looking I see that Patrick Nielsen Hayden came up with this term earlier.)

: Actual quote from Florida car dealership ad: "Just look for the giant American flag!"

: I bought a laptop for my new job, which will involve a lot of travel (less mysterious details after I start it). It's one of the Dell Ubuntu laptops, and so far it's worked great and didn't cost an insane amount. I got it off of Ben Pollack's recommendation.

Teenage Angst Has Paid Off Poorly: OK, time to post something real. A couple days ago I auditioned for a science fiction writer's group here in New York. In a preview of what's in store for me at Viable Paradise, they took apart my story and complained about it in helpful ways, to the extent that I'll be embarrassed if it gets accepted by the magazine I submitted it to, and published with what now appear to be glaring flaws. Which, given my previous experience with publishing, is probably par for the course, but especially distressing when combined with my obsession with determining what "really" happened within a fictional universe.

Argh, despite my promises of posting real things I'm self-censoring for stupid reasons, not telling you about the other people in the group or which story of mine got critiqued or what the most devastating critiques were. I feel like I'm talking to someone who's waiting for me to say something they can take out of context. Plus: my soul is being crushed by things to do with my mother's estate, which I don't want to talk about until they're resolved.

Okay, seriously. Real things include: tomatoes, cement. The smell of rubbing alchohol. The natural numbers, except for that bastard five.

[Comments] (1) Passport to Pimlico: The original P2P troublemaker. This was a great movie that kind of copped out at the end. I don't remember how "The Napoleon of Notting Hill" ended, which is good because that means it's time to read it again, but it probably wasn't with an "everyone just needs to pitch in" message.

Oh, that reminds me that the TV Tropes wiki has grown a lot since I looked at it last, possibly because Wikipedia's banished trivia sections are moving there. It's now a pretty useful random-browsing dictionary of craft. Which in turn reminds me of a piece of implicit feedback from the writer's group. I'm not good enough at fiction writing yet to pull off cliche parodies; they read like the actual cliches. I actually learned this with "Mallory" but I keep thinking this story's the one where I can push the envelope.

Para-elemental: AD&D has long had the traditional four Empedoclean elements as a gameplay element. There's a whole theme park/plane of existence devoted to each element. Then it got silly: they created para-elemental planes where the elemental planes touched. So at the intersection of Fire and Air you got the para-elemental theme park/plane of Smoke. Then it got even sillier with quasi-elemental planes like Salt and Vacuum. Andy and I mocked this trend in one of our ZZT games. But recently (ie. ten minutes ago) I had the idea of using modern materials science to create new para-elemental planes, equally ridiculous but cooler than Smoke:

[Comments] (1) Unfree Japanese Game Roundup: Recently I got addicted to two Japanese games with very similar graphics: Doukutsu (aka "Cave Story") for Windows (and now Linux) and Mother 2 (aka "Earthbound") for the SNES. Cave Story was fun mostly for the large and varied environments and the Metroidesque variety of weapons; the plot I could take or leave. It was pretty generic-Japanese-RPG. One thing that bothered me was how the machine gun's recoil could be used to propel you upwards, but not to propel you in any other direction.

Earthbound (totally spoileriffic and erudite review) is not very fun as a game—I got enough of this kind of gameplay with Dragon Warrior, which I don't think I ever beat despite many Saturdays spent getting up at 5AM to grind through mid-level enemies. But Earthbound has great music, even larger and more varied environments than Cave Story, eccentrically-written NPCs, and a totally insane ZZT-like plot that manages to hit all the RPG cliches (town area, desert area, snow area, water area, jungle area, graveyard, alternate universe) while violating many of the conventions of RPGs. Plus, designed by the guy who voiced the father in My Neighbor Totoro. Recommended.

: In concerts of the future, instead of waving lighters and shouting "Play 'Freebird'", concert-goers will wave their cell phones with the ringtone set to play "Freebird".

[Comments] (1) : Today I went through my bag of old Linux World Expo schwag looking for the Linuxcare "LINUXGRUVEN" bumper sticker to put on my laptop. I ended up spreading the schwag out and taking pictures of it. I can't believe how old this stuff is. Includes my collection of LNX-BBC CDs and my increasingly dubious can of OpenCola. I've thrown away that cup from the Slashdot party; it was in pretty bad shape. At one time it may have had sentimental value, but I've conveniently forgotten what that value might be.

The Dang Bus: Catch It!: Time to catch the dang bus.

: I'm safe in "The Yard", as the hip demographic I just manufactured out of whole cloth calls it. Every once in a while, my laptop makes the kind of noise my stomach makes when I'm hungry.

: I've now got Internet access in my room, just in time for the big uninterrupted stretch of time when I have to finish my writing assignments.

[Comments] (5) Leafy Leonard: Quick toy. I was talking to Cory Doctorow in the parking lot and we started coming up with silly Ubuntu release names (note: unlike every other time I've mentioned Cory Doctorow on my weblog, this actually happened). To spread the fun to a larger audience, I wrote a cheap CGI script that will name an Ubuntu release after you or the animal of your choice.

Yes, I did my writing assignments. One of my stories is 2500 words instead of 5000, but it's a good story and it's as long as it needs to be.

"I never believed the letters to Penthouse were true until I marched with King Richard's army.": We just completed an innuendo-filled performance of Richard III. It was great.

[Comments] (1) : Sumana claims that people want to know that I'm back. I am! I'm trying to synthesize the wisdom of the week in a way that's not in-jokey or based entirely on quoting Elizabeth Bear's excellent cusses.

[Comments] (3) Pseudonyms: This is a pretty easy one to start with. Patrick Nielsen Hayden said at one point that writers need to be brands, and for this entry I'm going to take that very literally. A writer's name is a brand, the same way a publishing imprint is a brand. There are many reasons for putting a name on your writing that's not the one on your birth certificate, but they all have to do with branding.

Your name might be uneuphonic, difficult to spell or pronounce, or very long. The same reason a lot of performance artists use stage names.

You might use different names when writing in different genres. Genre readers are pretty picky, and if you put the same name on all your books, bookstores may not stock as many of your titles. Publishing imprints work on this principle.

If you get caught in the midlist death spiral (which is definitely caused by an algorithm, though I'm still going back and forth on whether it's a bad algorithm even by the shortsighted standards of big business), changing your pseudonymn can be an effective way to fool the algorithm and reboot your career. Publishing imprints also contain elements of fooling bookstores' algorithms.

Finally, you might want to avoid prejudice. Still common is the girl cooties theory of literature which holds that certain genres are intrinsically less macho than others, and has as a subtext the idea that hard SF written by women can never achieve the synthetic-diamond hardness of hard SF written by men. So a lot of women use their initials or gender-neutral or male pseudonyms. (Attempting to defeat the GCToL can also lead to overcompensating within the story.)

Through the workshop I got wildly varying assessments of my story's position on the Mohr scale of science fiction, and I'm pretty sure this had to do, not with the GCToL directly, but different readers' perception of the mass market's perception of the GCToL.

Despite the not-terribly-surprising fact that the vast majority of people who write SF under their initials are women (there was a survey on this topic but I can't find a link), readers tend to assume that unless the writer's unambiguously feminine name is spelled out for them, the writer is male (different survey, ditto on link). I guess even thinking about it requires confronting the prejudice.

It's still a little early for me to be picking out my science fiction pseudonym, but I'm considering writing under my initials 1) out of solidarity with female SF writers, and 2) to avoid confusion with the two nonfiction books already published under my full name. However, it's difficult for me to pass up an opportunity to sow confusion.

OAuth: In RESTful Web Services I wrote over five pages (notably 253-258) of pretty dense prose discussing a problem with web service authentication: the user doesn't trust the client. We generally trust our web browsers to send our passwords to the site we're logging in to, and not also to seedy Russian IRC channels. But we can't extend that same level of trust to a web service client, especially when the client is running on a server we don't control. So how is the web service client supposed to make web service calls on our behalf?

That part of the book is now outdated because I went on to describe a set of equivalent ad hoc solutions to this problem, each created by a different web service provider for their services, with the implication that someone who's not me should get off their butt and come up with an open standard. This has now happened, and the result is OAuth. The people working on the standard are posting introductory guides to drum up interest. The standard is good, I've been pushing it on the companies I consult with, and the time is right to use the NYCB bully pulpit to spread it further. If I were Kenneth Turan I would rave, "The most significant HTTP authentication mechanism since Basic!"

Incidentally, today's the first day of my job, but I don't actually start until tomorrow because it's a holiday.


"You got peanut butter on the sheet!"
"You got sheet on my peanut butter!"
"No! That's not how it happened!"


"You wanna go dance in the rain?"
"I think we just reenacted an xkcd cartoon."
"I'm fine with that."
"I think we just reenacted another one."

[Comments] (2) : In my non-expert opinion a good story has two parts: a thought experiment, and the psychology of people who live the thought experiment. I have all kinds of meta-thought-experiments on this topic that I'll spare you, such as what makes a New Yorker story boring and how your standards would change if a story you thought was real turned out to be made up. Further I hold that science fiction and fantasy are popular genres and that they're gradually bleeding into mainstream fiction because they're the genres where you can do really amazing counterfactuals.

The short form is the natural experimental form for science fiction, and I think it's the one where you can really advance the state of the art. But one of the less controversial things you can say in this troubled world is that the market for short-form science fiction is pretty bad. Subscription numbers to the big three print fiction magazines are in decline. So are the pay rates: a story published in 1930 might have netted you the 1930 equivalent of $1000; today the same story might fetch you $300. Etc. etc. etc.

I'm going to talk generally about money in a bit but tonight I want to focus on what's the deal with short stories. You can't blame piracy because nobody even bothers to make unauthorized copies of short stories. The audience is just gone.

At VP I heard things to the effect of: the short story is the farm team, the garage music of science fiction. It's a mechanism for editors, writers, and fans to keep abreast of developments in the field. There's your problem: that's a really small audience! I've been an SF/F fan since before I could read on my own, and I like the short form, but I only started reading the magazines when I became serious about getting my own stuff published; ie. took the field itself as an object of study. For these purposes the market is drastically oversupplied.

The short form is ideal for evaluating new writers: you have to concisely demonstrate the quality of your counterfactuals and psychological treatment. But the market is based on the outdated premise that their core audience wants a certain thrill every month and that a print magazine is the best way to deliver it.

I've said before that the vectors of change are online magazines like Strange Horizons, but after VP I see why. It's not just generic "online is awesome", though that's part of it: the people who want the thrill that SF provides (inc. me) are starting to want it online. The other part is that online magazines are making it possible to regard modern short SF/F as an indexed body of work, the fictional equivalent of a field of science: the study of thought experiments. (Remember that the web was originally designed, if I may quote myself, "to schlep project notes around a physics lab.") As a bonus, for those interested in short SF/F solely as entertainment, it's easy and permanent access to the entertainment.

This is why I keep linking to the old science fiction that shows up in Project Gutenberg: it fills in the enormous gaps in the indexed body of work. This is why it's so bad that the Sci Fi Channel claims they've taken down their archive of new and classic stories (it looks like they haven't actually done it yet): it brings into the online world a taste of the impermanence that is completely standard in the print world.

Lying in wait like an unwelcome subtext to this discussion is the topic of my own humble contributions to the field. Post-VP I've been editing my stories for submission to the big-name print magazines; but really, why am I doing this? Well, there is the blood oath I took on Friday. But what do I want out of it? At any time I could short-circuit the whole boring process by publishing my stories online. The money's really bad either way, and my online readership over time would approach the basically-one-time print readership.

Really what I want out of it is recognition from my would-be peers. Right now that comes by voluntarily going through an established gatekeeper instead of self-publishing. This is important because the traditional career trajectory for a science fiction writer (insofar as such a thing can be considered a career, which as I'll claim later is not very far at all) starts out with you building a name for yourself in this increasingly misaligned short story market. I don't particularly want a trajectory right now, but I would like to have something of a name in the field, so I press onward.

When I asked Patrick Nielsen Hayden what new career trajectories he saw taking shape, he said "If I knew that, I'd be rich." Well, nothing's going to make you rich in this field, but if he knew this it'd be a lot easier for him to find people he should sign for novels. I'm coming up with alternate schemes for advancing the state of the art, schemes based more around peer review, but they tend to reduce to starting my own online magazine.

In semi-related news, someone at VP wrote a constrained story based on the premise that teleology was a real science. I didn't read this story but I'd really like to.

: "I go there and see... the same stories that are on Slashdot and Ars Technica and boring old ZDnet too."

"If you want best-sellers you can check the best-seller list."

[Comments] (3) Roguelike Roundup: Quick takes on a bunch of roguelike games I've played recently.

One ludeme shared by most of these games is non-regenerating HP. I find this ups the difficulty greatly in a roguelike, where you can't rely on dexterity to evade enemies, so I tend to go for magicians or other characters who can self-heal, like the allegedly reformed vampire in CastlevaniaRL.

Dear Penthouse Forum #2: I was just able to deliver the snappy comeback suggested in the opening to MST3K "Laserblast". "If I were you, I'd wait 'til somebody slams a thunderdome."

[Comments] (1) : Going to Montreal for a week on the proverbial business.

: "Schroeder's fanaticism is ludicrous, and Lucy's love is wasted." (q.v.) Caution: It's the Wall Street Journal. On the other hand, it's Bill Watterson.

Lost in Non-Translation: The Americans solicited advice on where to eat dinner. We were intrigued by the "smoked meat" restaurant. A whole cuisine devoted to smoked meat? Like barbecue? Yes, but not so sauce-heavy. We were intrigued! We went to the restaurant. It was a deli.

However, the waiter did offer us the ability to poutine-ize our fries.


"You know the joke about how all the superheroes are Jewish? Cause their names are Batman, Superman, Spiderman..."
"Well, you know who's not Jewish. Robin the Goy Wonder."

[Comments] (2) Notes on Notes Towards a Roguelike: Zack wanted me to comment on his Notes Towards a Roguelike, where he talks about his problems with Nethack. Nethack does have serious problems, but some of them are coupled with the things that make Nethack fun, so they can't just be ripped out.

Anonymous commenter on Zack's Livejournal says to take a look at Dwarf Fortress. I definitely think everyone should take a look at Dwarf Fortress, but the roguelike part of DF is pretty lame. Instead I would suggest Zack take a look at ADOM, which has most of Nethack's fun features, few of the aggravations, and not many of the second-order aggravations that come from fixing the first-order aggravations.

Zack's complaints about Nethack:

More later as I need to go to sleep.

Update: The promised "more".

[Comments] (7) More Roguelike Notes: The meta-adventure continues as I consider more of Zack's complaints about Nethack.

[Comments] (1) : Jeff Soesbe has an excellent day-by-day writeup of Viable Paradise XI, and does a good job of explaining the tiresome-to-everyone-else Richard III in-jokes.

Restaurant #2: Mexican restaurant described guacamole as "a purée of avocado."

[Comments] (1) : Best thing about Quebec: bilingual fortune cookies!

Making a Living: Part III or something of my synthesis of knowledge from Viable Paradise. I'm trying to go beyond a simple chronology, which others have provided ably. Tonight: a bit on what I heard about SF writing as a career.

Realistically it's not going to happen, if by "career" you mean "source of enough money to live on" and not "thing you're primarily known for doing". In fact, if I may speak from experience, writing in general isn't going to do it. John Scalzi (he of the unorthodox career trajectory, of which more anon) made $67k last year as an SF writer. That's really good for an SF writer, but it's about entry-level for, say, a computer programmer.

The telling detail for me came during the discussion of conventions. Many fans who are heavily involved in the SF community are perfectly capable of writing professional-quality SF. They don't do it because they're happy making 10 times the money as theoretical physicists or sysadmins. In other words, they're rational.

But of course lots of people, including most of the VP instructors, devote big chunks of their lives to and are best known for writing science fiction. How do they do it? Here are the tactics I discerned.

One thing that doesn't work is selling movie rights to your book. Steven Gould's Jumper has been turned into a big-budget Hollywood movie (I hear tell it takes place in a world) and he certainly got a chunk of money from that, but it's not life-changing money. It's money for paying off a big one-time expense like a kid's college education. Selling one set of movie rights is not fundamentally different from selling one novel. If you want Hollywood money you should go into Hollywood proper.

Bake A Cake, You Know I'm Coming: I haven't played and probably won't play the game, but I saw a couple videos for Portal, and listened to the Jonathan Coulton closing-credits song, and enjoyed them a lot. I was thinking about why that game (or at least the video I saw) is funny. Obviously it's because of the character of the AI NPC, but you could reskin Portal so that the AI was replaced by (say) a powerful space alien who took the same attitudes, and it wouldn't be as funny.

I've always enjoyed AI and robot characters in all kinds of fiction, but the AI NPC is powerful in a way that's unique to video games. This is partly because a video game is itself a primitive AI, and partly because there's a closer affinity between the player and an AI NPC than between the player and their own PC.

An alien is not human. Game aliens are either humans with foreheads, or they're cannon fodder and you're not supposed to identify with them. The latter works out great because aliens are alien to the extent that you can't identify with them. Outside of games, the space-alien concept is powerful because it forces you to confront the difference between an enemy, who you can identify with but you're not supposed to, and someone who might be friendly but whom you can't identify with. Games usually pull a cheap equivocation: you can't identify with the aliens because there's nothing there.

An AI is a broken human. A well-conceived alien, as John Campbell said, "thinks as well as a man... but not like a man." An AI is the alien we get when we try to make something that thinks like a man but we fail. Usually we fail because an AI doesn't have a human body. It's traditionally embodied in an immobile computer and it sees the world through cameras. It can't identify with other in-fiction people, so its behavior tends to be at odds with what its designers intended.

We get a game when we try to replicate some aspect of real life and fail. A game just isn't real life. Not only will the graphics and physics never be perfectly accurate, but the ludic lessons we learn in games never apply directly to real situations. Except for Math Blaster. Man, I can't even tell you how many times that saved my bacon.

Now let's get heavy. When we play a video game we embody ourselves in an immobile screen, looking through a camera at the game world. We send electronic commands into an interface box to change the game world. The AI NPC and the player have the same relationship to the game world. In a sense we can identify with an AI NPC better than we can identify with our own PC! We share the feeling of being right up against the edge of the world but not really part of it, the frustration of not being able to do something because of the coarseness of our controls.

The AI in Portal was designed to be helpful but has "ridiculously base assumptions about human intellect and motivation." It's broken in the same way HAL is broken: it has human desires but it can't interpret them in terms of the real world, only in terms of its hard-coded mission goals. It can't even empathize with itself. So it treats the satisfaction of its desires as an optimization problem. Similarly, we often have trouble empathizing with the PC's desires, even though according to the fiction of game-playing we are the PC. We optimize the PC's behavior for our own convenience or other goals, even if that's certainly not what the PC would want.

So I think the trick of Portal is that the AI NPC is really the player. The NPC addresses the PC in the same patronizing tone I address characters I control when they suffer ten consecutive bad die rolls or slide off the platform I tried to land them on. The player identifies with their antagonist over "themselves". That's what makes it funny.

All part of my ongoing plan to out-Adam P. Adam P. More on how a corporation, another kind of artificial human, has the same empathy problems as an AI, and how this ties into the atmosphere of Portal, will not be forthcoming.

PS/Update: Sumana suggests I explain the title of this entry, my beautiful obscure reference which violates all audience-retainership rules about the title serving as a summary. Here you go.

PPS: The best thing about the Coulton song is that now, all other songs that use vocoder sound like they're sung by the AI.

: Is the Mudville Nine the actual name of the baseball team?

[Comments] (4) Manuscript Formatting: The unofficial document format for SF/F manuscripts seems to be RTF. Printed manuscripts are supposed to be formatted in a very simple style that looks like you typewrote it, but the style is far enough from plain text that I can't edit it in Emacs, because it includes relatively complex things like numbered pages. RTF again.

What to do? There's the de rigeur Emacs RTF plugin, but all it can do right now is read some RTF documents. I've found the process of manuscript conversion is pretty automatic as long as you distinguish poetry from prose. That means I should be able to write a script using Ruby RTF to do the conversion. (It's missing some features but I can just hard-code the corresponding markup.)

I'm mainly posting this to find out if anyone else is in this same, admittedly only slightly leaky, boat.

[Comments] (1) : In one of my less pride-engendering milestones, I put up liner notes for all the really horrible spoken-word bits from Nowhere Standard Time, which now means I've got notes up for all my released albums. The NST spoken-word notes are probably only of passing interest, but they do explain a previously unexplained NKI, and they're more fun than listening to the spoken-word bits themselves.

Lonely Weblog: Hi. Apparently having a job takes up most of your day. Here are some random links from browser tabs. These links look cool but I haven't actually done much with them.

: Speaking of Dwarf Fortress, perhaps you'd like to smith your own sword from hematite ore.

[Comments] (4) Bread Salad: This was a big hit and is useful for getting rid of leftover farmer's market vegetables. Here's stuff for one big serving:

Toast the bread and dice it. Put it in a bowl. Pour olive oil and vinegar on top. Dice the tomato and put it on top. Meanwhile, cook the green beans. Put them on top of the tomato. By this time the tomato juice should have soaked into the bread. Or help it out by tossing everything together with tongs.

Another recipe coming immediately because my sister-in-law just requested it. Immediate update: No need, Sumana already posted the Indian-style popcorn recipe.

Yo Ho Ho: and a Seth David Schoen.

How Many Levels?: I was playing the 2D fan version of Portal and basically figured it had 40 levels. I was right. Then I wondered why I'd thought that. Probably something to do with the pacing as new game mechanics were introduced. But when I was a kid, puzzle games had 30 levels and then you had to register for two more sets of 30 because it was shareware. How many levels are in a typical video game that has a discrete number of levels?

I decided to do a semi-scientific test where I measured this by searching for game "X levels" and comparing the numbers of results. I did a few Google searches until I remembered that Google doesn't want my business for this. I switched to Yahoo!, which has a handy web search service.

I graphed the number of search results against the number of levels for every X in 1 to 100:

Graph for games with 1-100 levels.

According to that, most games have 10, 50, or 100 levels. 4 levels is also extremely common (though I think there's a lot of pollution there from things that have 4 levels, like malls). A number divisible by 10 or 5 is the most common, but you can plug in any small number of levels and find some oddball game (random example).

Then I graphed X=1 to X=1000, with a skip of 10 between 100 and 1000. I had to use a log scale because 90% of the total matches are for X=1 to X=100.

The left side of the graph is a "long tail" type graph, but there are very popular data points near round numbers. I also graphed X=1 to X=2000, again with a skip of 10. As we can see the adventure continues. Between 1900 and 2000 there's significant pollution from years ("returning to 1990 levels of greenhouse gas emissions").

I collected data up to X=5000, but 2000 levels is really the limit of how many levels one entity can create for a specific "game", unless that entity be a computer generating them randomly. I don't think I've ever even seen a Rocks 'N' Diamonds level set that had more than 2000 levels. So I won't show you another graph. But if you want the raw data I put up a Gnumeric spreadsheet with my original graphs. Around 3500 there's a lot of financial crap from India for some reason ("support at 3575 levels from the past three trading sessions").

Random tidbit: judging from hits, the least popular number of levels 1-100 is 79. However, 46 stands out from its neighbors as being especially unpopular. Also mysterious: why is 80 more popular than 70?

[Comments] (1) : I was thinking of tracking science fiction in NYCB as it's stuck into Project Gutenberg, but then I remembered Free Speculative Fiction Online, which has the Gutenberg stuff and more, plus a syndication feed.

Spent the afternoon writing up Future Stuff entries, building up the backlog for yet another business trip next week. I hope y'all appreciate this, as this is very real time I could be spending playing roguelike games. We are approaching the two-thirds mark of Future Stuff, but still have many bizarre items left to go, like "Holograph Bifocal Contact Lenses", "The Vilest Taste", and "Edible Pet Spoon".

: New 3D interface for Dwarf Fortress: difficult to figure out. Relax instead and watch some silly Claymation Star Trek parodies.

Molagraphic: Mike Popovic sent me the November 2002 National Geographic, which includes a big article on the mola mola. Also about Tierney Thys, who gave the talk about molas I probably made you watch. Thanks, Mola Mike! Or Mike, if you prefer.

Leonard Region Traveller: Here I am in scenic Boston, home of the wicked pissah.

[Comments] (1) Secret Origin--Revealed!: Pete Peterson II makes a shocking discovery about Jake Berendes.

: Cool Google Tech Talk (via Sumana) on precursors to the Web. Haven't watched the whole thing so I don't know if it eventually impinges upon my still-unpublished essay about Gopher. Includes the Plankalkül of the Internet. Also the usual Vannevar Bush, Ted Nelson stuff. Not many kids named Vannevar these days.

Update: Who shows up at the end? Vint Cerf!

Random VP Quote: "You can have nanotech in Mundane SF, but you can only use it in textiles."

[Comments] (3) : First, there was The Lego Fantasy Roleplaying Game. Then, there was BrickQuest. Now, there's BrikWars, the game of ultimate LEGO-like carnage.

[Comments] (3) Brown Blanket: I've spent time in some fancy hotels recently, mostly against my will. One really aggravating thing I've noticed is the nylon (!) blanket that's the same horrible sweaty scratchy blanket you get at the Motel 6, or when sleeping on the floor of someone's basement rec room in the 1970s. No matter how fancy the hotel gets, they never think of using a real blanket like you might use at home. In your real-high end hotels they do come up with the idea of sandwiching the blanket between two sheets. Like you won't notice it's still there. Also, that damn pea under the mattress!

Update: Wow, the day I posted this I checked into a hotel that doesn't have that blanket on the beds.

[Comments] (3) Fanfic: Not canon?

Presumably inspired by this Future Stuff review.

Incidentally, Greg Knauss registered a domain name for TF:AR, undoubtedly as some scheme to steal my Google juice. They're always after me lucky charms!

Next Stop: Livejournal: Sorry, I don't want to write about the thing I was going to write about. I keep typing words and erasing them. Instead, check out these fascinating wargames about the Cold War and the civil rights movement.

[Comments] (6) : This might be a futile question, but are there any printers that were designed as printers and not as ways to move ink units?

It All Makes Sense Now: A while ago I designed a greatly superior web service for Google search which had the same interface as the website. It turns out they implemented that sort of service in July, as a commercial venture.

Together At Last! Search Requests: liquid nitrogen and girls

If only liquid nitrogen supported life.

[Comments] (1) Retro Kid: On the train there was a nine- or ten-year-old kid with an 80s-style camera. He took pictures, and asked people if they remembered when that kind of camera was popular, if they'd ever seen what real film looks like, etc. It turned out he'd also applied for his own credit card, and been the first person in recent memory to be turned down for one.

Better Know A Game Roundup: What better way to spend a holiday than by cleaning up my games-to-be-rounded-up directory?

[Comments] (1) : I stumbled upon a guy selling Linux distribution CDs on eBay ("+BONUS Ubuntu!"). It's a volume business, about 200 sold for basically nothing + $8 shipping. Similar to the books you see sold on Amazon for a penny, but sketchier since most people probably wouldn't buy the cow if they knew they could get the milk for free. Or, indeed, the cow for free.

[Comments] (6) It's A Race Condition: Lately Sumana has been obsessed with the theme songs to sitcoms. I heard some of these songs when I was a kid but they all merged into one. Understandably so, now that I hear them again from the next room. One thing I didn't pick up on back then was that the lyrics of many of the songs are made of mortared-together cliches. Now, I've written songs out of cliches, but I try to put my own spin on them or juxtapose them in interesting ways, and more importantly my songs don't become cultural touchstones.

A corollary of this is that the theme song to Star Trek: Enterprise would make a good sitcom theme song. I lack the raw materials and skill, but you could get some mileage out of playing the Enterprise theme song over the opening sequence to Perfect Strangers.

Another thing I didn't pick up on until now was that sitcom theme songs never mention the name of the sitcom, [Update: not true, see comments] probably because they were commissioned long before the name of the sitcom was finalized, and probably because they were written long before that and shopped out to multiple sitcoms. Also, a common trope in these songs is to talk about how the world has gone to pot and how the relationship formed by the sitcom's main characters (family/friendship/bar) is the last outpost of civilization. So you could switch a lot of theme songs and it would work fine.

As a test I improvised the worst imaginable theme song, for a sitcom called "Healthy, Wealthy, and Wise". It was terrible.

: So this year I remembered the Nethack tournament before the last minute, and over the weekend I made my third ascension. I say that pretty casually but I got really lucky in that game and at the end what did I have to show for it? I'm up against players who can ascend multiple games in a row, such that a single ascension only gets me to the midpoint on the scale of trophies. So let this be a lesson to you! Somehow.

[Comments] (5) Bed, Math, and Beyond: When I was a kid there was an awesome math exhibit at the Museum of Science and Industry. Most of the other exhibits were chintzy early-80s interactive things where you'd pretend to run a McDonalds, or answer questions about acid rain to be rewarded with 30 seconds of Frogger. The math exhibit was not interactive; it just showed you awesome things that you would just mess up if you could touch them, like a demonstration of probability using balls that clattered through a pachinko machine to form a bell curve. Man, I loved that exhibit. There was lots of text I didn't read, and a huge timeline that I didn't really pay attention to, but it was comforting to know it was there. Surely, people who had put that much work into a math timeline were competent to model the normal distribution.

I've mentioned this exhibit before, in the context of the second time I saw it: in the Exploratorium in 2002. The exhibit is called "Mathematica: A World of Numbers... and Beyond", and it was on tour! I figured it would go back to Los Angeles afterward.

One of our corporate trips when we went to Boston was to the Boston Science Museum. This is an old-school wunderkammer museum that believes in showing off everything it's got with minimal overarching theme. A section of the bottom floor is full of cool model ships in glass cases, each donated by the widow of the guy who built the ship.

There's also a special self-justifying exhibit on collecting and classifying. And the Tinkertoy computer, a huge van de Graaff generator, a little Massachusetts state flag that was taken on Apollo 11, casts of hands with different developmental problems, stuffed animals in simulated biomes, glitzy biotech exhibit bought and paid for by Massachusett's biotech industry, diorama of people building a pyramid, etc. And the Mathematica exhibit!

Still on tour? I doubted the Boston Museum of Science would let any exhibit leave its premises once it had been set up. What was going on here? In a fit of brilliance, Ray and Charles Eames mass-produced the museum exhibit itself and gave it out to hungry museums across the land! "Two identical copies of the exhibition were made by the Eames Office in the sixties and they currently reside in Boston and Atlanta." The main one is right next door to me, having moved from LA to the New York Hall of Science.

: Must... post... on weekday... So some Don Marti-style links. Did you know that public-key cryptography was invented in the UK and then hidden and nothing done with it?

I'm really enjoying this diary of a developer of an Angband variant, to the extent that I'm probably going to play their Angband variant despite hating Angband variants. It lets you play around in Hobbiton! Incidentally, I'd really love a SimCity-type game for hobbits, something that does for hobbits what Dwarf Fortress does for dwarves.

Lego Abominations gets points for effort. I do like the swordfish/bicycle pairing.

A fun introduction to game cladistics.

: Hey, happy Thanksgiving. I'm here with my in-laws. I'm sorry I haven't been posting the usual drivel lately; as often happens, my new job is to blame. It's really cliche to say that but it turns out that clicheness has relatively little effect on truth value.

Ultimate Hollywood Trivia: Ultimateness may vary, as may the definition of "trivia". Did you know that Ray Harryhausen is still alive and working?

Second, is there a name for that style of close singing you hear in the opening credits of 40s movies?

[Comments] (1) : Before there was the Sears Catalog, there was The gentleman and cabinet-maker's director.

: Mushiness: The Ruby Module

[Comments] (5) : The NYC transit system has two places where you can do an "out-of-system transfer". In an OOST two stations aren't connected through the subway system, but you can get out, walk to the other station, and go back in without having to pay another $2. One of these transfers is just going down some stairs past a pizza restaurant and into the other station, but the Lexington Avenue external transfer has you walking four blocks.

For a while I've thought it would be really useful if there was an external transfer between Queensboro Plaza and Queens Plaza, which are about two blocks apart. Yesterday coming home from jury duty I resolved to spend $2 to evaluate the external transfer possibilities. I'm pretty sure they don't put an external transfer there because the area is a freaking deathtrap, cars going everywhere and bad signage and no crosswalks. It did get me home faster though.

: Sumana's DM Hal gives a rave for The Future: A Retrospective.

George Orwell correctly predicted that the future would be "a boot stomping on a human face forever," but he failed to perceive that in the real future the face and the boot would belong to the same person.

[Comments] (4) : If you liked RESTful Web Services but thought the words were in the wrong order, you'll like Services Web RESTful.

: Sumana and probably other family members will enjoy this list of intellectually stimulating podcasts. Not like our podcasts, that's for sure.

QOTD: Sumana on minimalist music: "It's like a zillion ringtones."

[Comments] (1) I'll form an alliance with the crown. Not the king, just the crown!: We just re-watched Love and Death. Even funnier than when I saw it in college and didn't get it.

: We're having Backup Thanksgiving and playing Powerpoint Karaoke. Rachel Chalmers says, "Let's make an interactive blog!"

Claire's Powerpoint Karaoke review of Charlotte's Web: "The goose egg made a smelly smell." Jeremy suggested "Charlotte's Web 2.0".

[Comments] (1) Flag Patents: Did you know that you can patent the design for a flag? I discovered this doing research for The Future: A Retrospective and there's one jaw-dropping patented flag that I'm saving for the forthcoming entry, but I thought I'd share a few others with you.

This American flag shows the actual states instead of abstract stars. This flag has another flag on it. This one is like a See's Candy sampler of other flags. Nobody ever patents a simple design for a flag. Hopefully your flag patent also covers more competent renditions of the same image.

One popular theme is a "peace flag". Here's one from 1919 and here's one from 2003. Or if you prefer war there's a war on terrorism flag.

The Iowa state flag was patented in 1921, by Dixie Gebhardt, presumably a relative of Dick Gebhardt.

Maybe you'd like to texture-map flags onto non-flat surfaces? Like shoes? Here's one you can wear on your ponytail.

What happens to politicians' mandatory flag pins in times of national crisis? You need the half-staff flag label pin!

I've been drifting away from specific flag designs, so here are a few more. Why not put a comic strip on your flag? This guy filed a whole bunch of patents for new arrangements of the stars on the American flag.

Most of the patented flags are pretty bad, but these two are cool, and have birds on them: dove, eagle.

[Comments] (1) I Gotta Stop: One more: "United States of America shaped food product"

Update: Rachel reminded me of the Texas cheese. I think when we cleaned out my mother's freezer after she died that cheese was still in there.

[Comments] (3) : I guess today is Patent Madness Day. Incited by Sumana I searched the patent database for swear words and other phrases likely to turn up funny parts of patents. The former was fruitless except for funny puerile OCR errors (notable exception). The latter worked out well.

Strangely, "they mocked me" and "i'll show them all" never show up in patent applications. Ahmed El Dessouky does point out, sensibly, that "it would be impractical to show them all."

"Ridiculous" got a bunch of good results. A sample of my findings:

: Thanks to the miracle of self-selection, if you read my weblog you probably know aobut Nethack's database of quotes and literary references. What I didn't find out until today is that Aardy DeVarque has assembled a similar list of literary sources for first edition D&D. I had no idea so much of that stuff came from one Poul Anderson novel.

: I put up pictures from Backup Thanksgiving. Mostly pictures of us doing Powerpoint Karaoke.

Incidentally, the reason I haven't put up many pictures recently is that I stuck all my photos into F-Spot, which it turns out is really slow to load when there are 5000 pictures in its database. Should I use something else?

: I'm on a low-grade roll, and put up October's pictures from Viable Paradise. This one really shows the mechanics of how VP improves your writing..

[Comments] (3) : The roll continues, with pictures from Florida. Includes the Fawlty Towers Motel, and Atticus and Samuel trying to get us to play Ticket to Ride.

[Comments] (2) Send Resume: Neolithic job fair: "Join wheel economy!" "Our business on fire, selling fire." "Work on cutting edge making cutting edges."

: So around 1957 was the International Geophysical Year, which Arthur C. Clarke always wrote about as if it were a turning point in world history, and because of that I've long wanted to write a story about the kind of world where we can think back and say "Yes, it all started with the International Geophysical Year..."

My point is that right now we're in the middle of an International Polar Year! In celebration, the USGS has put a web interface on high-resolution photos of Antarctica. Via Google Sightseeing I also discovered that Google Maps also has high-res photos (but not medium-res photos) of Antarctica. I remember when the whole continent was just a smear of pixels on Google Maps. Of course, that was before the INTERNATIONAL POLAR YEAR. Coming soon: the International Polar Bear.

: An old edition of Hoyle's is online, but unlike today's fact-packed edition it covers very few card games, and has an unhealthy obsession with gambling. It's practically a manual for squandering the family estate!

This list of period game rules is more interesting from a ludology perspective, containing things like the 16th-century precursor to Blackjack.

[Comments] (2) Prodigy Undergrounds: I just wrote about Prodigy for The Future: A Retrospective and was reminded of a cool hack from my youth, possibly the first computer-related hack I participated in. TF:AR writing takes up most of my spare writing time, so a lot of my recent weblog entries flow ultimately from the trains of thought it christens and sends chugging off on poorly-subsidized rails.

I couldn't find this mentioned anywhere except Prodigy's Wikipedia page, and there not in much detail and anything on Wikipedia is written on water anyway. So here's a permanent description of Prodigy Undergrounds.

Once you passed a certain monthly threshold, Prodigy charged 25 cents to deliver a private email. This is especially onerous when you're a kid in 1991 and an unexpected $10 expense is cause for panic. But you can't have random chat in a public forum because 1) random people can see you chatting, and 2) it takes a long time for a message to show up in the forum. Because every message must be scoured by purple-lipped censors. Not only do messages take a long time to go through the queue, they're often rejected for arbitrary reasons. Like being random chatter instead of being directly related to the topic of the forum. What to do?

When you signed up with Prodigy you got, I believe, 5 accounts. Idea being that you could give one out to each family member. But someone had the idea of emailing their friends the password to one of the accounts and forming a private chat room. You'd go into the private email composition screen, write a message, and save it as a draft instead of sending it. (Wikipedia article says you "[sent] messages back to the same account", but I think the messages were never sent at all.) Once you were done on the UG (oh-so-hip slang for "Underground") you'd log off and someone else could have a turn, prepending (I think that was the convention) their reply to your draft. This way you could run AD&D games or write mushy notes to each other or just talk in private about being kids.

I picked up the UG idea from the AD&D boards and brought it over to the Hitchhiker's Guide boards. It was annoying but exciting to try to log into an UG and see that someone else was using it--it probably meant fresh messages when you managed to get on.

This was all unauthorized, of course. Person-to-person communication was a big cost sink for Prodigy as I found out reading Future Stuff, which focuses entirely on the online shopping aspect. Thus the 25 cent email charge in the first place. This left you with no recourse when—as happened in one high-profile incident[0]—a notorious villain befriended people under an alter-ego, gained access to several UGs, then hijacked the accounts to send a huge number of private emails. I was one of the hijacked and I think the charge was like $10, but see earlier note w/r/t $10 charges. These things loom larger when you're very young.

Some people I met through Prodigy I still talk to occasionally (Sara Geer) or frequently (Andy Schile). I occasionally search for people I knew back then, and sometimes I find something (one of my AD&D UG companions worked at a company designing role-playing games for a while), but other people don't show up anywhere; maybe they got married and changed their names, or they weren't using their real names to begin with (as if "Linnette the Psycho Elf" wasn't enough of an alias).

Recently I read a story about some extremists who'd reinvented the technique, using Hotmail or some other service as a dropbox to avoid sending mail through the SMTP forest. I don't think it ever made much sense from a security standpoint; HTTPS is surely more secure than email at the typical extremist level of expertise, but you're still storing the messages on someone's server. But it sure is good for saving money on email.

[0] By "high-profile incident" I mean "everyone on the AD&D Prodigy board at the time knew about this." Also, a few months later he tried it again with another alter-ego, but by this time I had sussed out his writing style and I didn't fall for it again.

Better Have Known A Game Roundup: People on the net are raving about Passage, a game by Jason Rohrer. It is a good game (yeah!), but in an Indie Rock Pete moment of triumph I'd like to point out that I discovered Jason Rohrer years ago, reviewing his previous innovative games Cultivation (review) and Transcend (review) in Game Roundup.

Gutenberg Gem: ""The Building of a Book" had its origin in the wish to give practical, non-technical information to readers and lovers of books." Wow. Includes heart-pounding "The Printer's Roller".

: I was putting off an entry about how many of the MST3K writer/actors are once again doing MST3K-related or MST3K-like projects, and I'm glad I put it off because I believe I have now collected them all. There are four of these projects.

Put those together and you've got everybody, except for Patrick Brantseg (who played Gypsy for a couple seasons), and Bridget Nelson, who shows up only peripherally in her husband's projects. I think it's great that all these people are producing fun in a style I enjoy, but it's also a little sad. It's not quite like skating on your previous accomplishments, since everyone's producing new stuff, but it's something similar: skating on the style of your previous accomplishments.

Joel left MST3K right at the time it was getting big, explaining (as I read in a newspaper at the time) that he didn't want to "end up signing pictures at an R.V. show." Later I found out that MST3K wasn't even the first time Joel walked away from a career that was going really well. This aspect of Joel's psychology is well-known to the extent that it made one fan call Cinematic Titanic a hoax. (Before pictures went up on the site of everyone holding props and working on the set, I'm guessing.)

I can empathize with Joel's walking away whever he's on the cusp of fame. "I want to get on to the NEXT weird show. I want to be an idea man." I had two great ideas, I can have three great ideas. But what if two great ideas is all you get? Why stop doing something if you're still having fun? On the Internet everyone is famous for fifteen people; that might be a number Joel can be happy with.

PS: If you're sick of my rambling and psychoanalysis, here's a straight news take on all these projects, which brings up the excellent point that there's now an experimental framework in place for Joel vs. Mike analysis.

: Atomic cake.

Silhouettes of men: Incidentally, if you're interested in how Cinematic Titanic will work, there's a little more information in the trademark application. "[O]ne of the figures is standing on a ladder and placing a DVD into a sylised time capsule hanging from a cable."

: For random Lego pictures it's hard to beat Brickshelf, but recently I discovered MOCPages, which tries to bring some top-down classification to the folksonomy.

There must be some web design class you can take that teaches you how not to make your website look like a domain squatter's placeholder page.

"You die. You are no longer bleeding.": I heard good things about radically-altered Angband variant Steamband, so I gave it a try. I really like the classic Jules Verne science fiction aesthetic, and Steamband mixes that well with Lost World stuff and imperialist pulp stuff. It's got a hilarious parody of the typical Angband race-selection menu, eg.:

[T]he British expand throughout the world sharing their superior way of life to [sic] those not fortunate enough to be born under the rule of Queen Victoria. They are the standard by which the rest of the world is judged.

Said menu also lets you play as a rakshasa.

The game mechanics are well-thought-out and intended to make it less of a slog than other Angband variants. Once you get firearms, the game really gives you the feeling of blasting Compsognathi in the face like Dick Cheney only wishes he could. So, overall, recommended.

Here's a big problem: in my inventory I've got a Device [spellbook], a Mechanism [scroll], a Generator (rod?), and a Tool (wand). In vanilla it's bad enough that there are rods, wands, and staffs, but they all do kind of the same thing. Giving half the objects in the game similar names is just crazy, especially when they're still activated with different keys. At least "mechanism" makes more sense as an alternate name for "scroll" than "floppy disk".

Here's another big problem: I still don't like Angband variants. I spent fifteen years getting good at Nethack and by my learning curve so far I can tell it's gonna take another five to get good at *band. However I am going to keep Steamband around on my disk drive because 1) the author has put thought into making less tedious the endless cycle of death and rebirth that is the Angband variant, and 2) I finally got one of these SOBs to compile, I'm not throwing that away easily.

[Comments] (6) : Sumana asked me if I'd ever kissed anyone underneath the mistletoe. I said I'd never even seen mistletoe. On reflection I have seen wild mistletoe, growing on trees in the Tehachapi Mountains when I was a kid. That's why it never seemed odd to me that First Edition druids were always going out and cutting mistletoe for spell components or whatever. But I've never seen it in someone's house around Christmas time, I guess because my family's not much for random kissing.

Where would you even get mistletoe? You can get it online now, but was there a span of about fifty years where people living in cities couldn't get it? Maybe it's a seasonal item in flower shops.

Does anyone of my generational cohort or the one before it 'do' mistletoe? It seems like something that died when office Christmas parties were toned down.

Hmm-hmm!: Cooking with Booze! And microformats!

: Selected clarifications of idioms in RESTful Web Services, from conversation with Collin, the guy doing the Chinese translation. Maybe I should put these on a webpage like Joel did.

What did the supernova metaphor mean here? Especially what do supernova and meme refer to here?

"Supernova" is being used as a verb similar to "explode". A meme is an idea. The same thing in simpler language might be:

The world of web services has gotten a lot of money and attention ever since the architects of bloated systems spotted another simple idea that they could make complicated and sell to big companies.

What does this metaphor mean? ["the Whoopee Cushion and Joy Buzzer of Internet protocols"]

The whoopie cushion and joy buzzer are cheap toys that you buy to play tricks on someone. The joy buzzer sends a vibration into someone's hand when you shake hands with them. The whoopie cushion is a bladder that's inflated and placed under a chair cushion; when someone sits in the chair it makes a fart noise. The implication is that HTTP and HTML are cheap and that to use them is to have a trick played on you.

Why did you say "That table looks kind of ridiculous"?

Because it has seems important but all it says is "DELETE deletes something. GET gets something."

What does "moving parts" mean, exactly?

The moving parts of a mechanism are the parts of it that do the job, as opposed to a piece of metal or plastic that holds them in place in relation to each other.

What does "plumbing about ..." mean?

Plumbing is the opposite of "moving parts". It's the structure that holds together the pieces that do the work. Here the built-in cryptographic functions are the moving parts, and the Ruby code I wrote is plumbing that makes them work in a certain way.

In chapter 4, there is a section titled "Resource-Oriented What Now?". I failed to figure out that "what now" means here. Can you explain the title?

It's an expression of incredulity. The idea is that I suddenly introduced a new buzzword without justifying its meaning or explaining why you should be excited about it (so I explain in that section). I walk up to you and say "Resource Oriented Architecture!!" and you might say "Resource oriented *what*, now?"

"Resource Oriented What?" would be similar and might be more familiar to you, except the implication would be of confusion. Here, it's not that the word "Architecture" is strange but that the whole phrase is strange.

What does it mean by "it doesn't know a username from an ostrich"? Does the "ostrich" here have any special meaning?

No, it's just a random thing that's not a username.

Why did you say the stock quote web service is a toy?

It's a common application that's used to demonstrate new devices, architectures, etc. But very few people really need or want real-time stock quotes for random stocks. And if you do actually need real-time stock quotes then you also need the ability to act on the information, or it's just a pretty thing to look at: a toy.

Does dissed here mean critized?

Yes, it's slang from "disrespected." The implication is that I just said [certain URIs] were bad rather than making a cogent argument against them.

Update: strangely (or not), nobody asked about "Don't Bogart the Benefits of REST."

Membrane-associated ring finger: As long as I'm talking about RWS, I'd like to pass along a service written by a reader. HGNC/wr is a bioinformatic web service that exposes every gene of the human genome as a resource. There are resources INSIDE YOU now.

: Basically tonight I'm trying to make a little progress on my inbox because I've got 750 messages in there, some from 2005. So I got this great spam last month about a new way of generating power from the sun even when the sun is on the other side of the earth. I wasn't sure how to bring it to your attention but now that some time has passed I can just link to it at a solar energy site. And here's the INVENTOR's response to a fellow INVENTOR's questions.

But I was intrigued by the audacity of the idea. Solar power at night! You could do it with a neutrino collector, since those just plow through the earth.

I like to think that if I invented something like that I would give it away for the good of humanity and not try to nickel-and-dime investors. Relatedly, one interesting thing about writing Mundane SF (tm) is that there's not much difference between a story idea and a real idea. I came up with a business idea for "Mallory" which (as you'll see if Futurismic ever publishes it) is similar to businesses that are starting up now. Things just got cheaper faster in the fictional world. I think this is a subtext of MSF: a farm for workable solutions to our problems. As RachelC put it once, not just escapism, but a map showing how to escape.

: Beautiful Soup 3.0.5 is out. Nothing to get excited about, unless you really like pickling and deep copying.

Two Things For REST Fans: I feel an Internet-Draft: URI Fragment Identifiers for the text/plain Media Type. Simple and long overdue.

A new kind of (SOA) Registry. In del.icio.us, that great sandbox for rhetorical questions, Mark Baker asked "So what's the difference between a RESTful SOA registry and a Wiki?". I'd say the main difference is that someone points at the RESTful SOA registry and says "Everyone should use this as a RESTful SOA registry." Also the registry will probably have rules about providing credentials to modify a registry entry. So, I think it's like the difference between my weblog and a wiki.

[Comments] (2) : Still on email cleanup duty (which tonight involves burning 3 DVDs of spam for a researcher). And I've got all these emails that I let sit around because I didn't have 5 spare minutes to reply and say "thanks" or whatever. Some of these emails are months old (haven't gotten to the year-old ones yet).

I feel self-conscious because I never seem to be on the receiving end of these emails. If I send email to someone and they don't respond within, say, a week, they never respond. And I know how it is, believe me. I've moved on with my life. (Still curious though; if you've got an ancient email from me in your inbox that you intend to address someday, feel free to confess in an anonymous comment.) But how do my repliands feel getting a response from me many months late? Does it even help them out? Do these people still have whatever little Beautiful Soup problem they emailed me about, or have they moved on too?


"Man, there are so many baseball players in this big ol' list."

"Yeah, that's Wikipedia for you."

Speaking of Baseball: I just finished The Universal Baseball Association, Inc., J. Henry Waugh, Prop.. Wow. That's the book Giles Goat-Boy should have been, and at 1/3 the length.

[Comments] (4) Scientist and Penguin: Another sitcom day apparently. Sumana and I seem to have invented a role-playing game where we make up a sitcom and then act out an episode, plot further episodes, figure out when it jumps the shark, etc. Today the sitcom was called "Scientist and Penguin". I was the penguin.

One episode involved me having eaten the fish the scientist was saving for a research station party, and having to go catch more before six o'clock, when the other scientists showed up. Then there was a sort of body-swap episode where I got the skills and worldview of a scientist but none of the domain knowledge. The show jumped the shark when we introduced a spy (nosy neighbor) who was always trying to prove that I was in fact a penguin.

Oh yeah, the worst part was my catchphrase: "I'm a penguin!" This always got a huge (canned) laugh even though it's one of the worst catchphrases imaginable. And of course it didn't help the show's position w/r/t the shark that at least once an episode I flat-out announced the thing that the spy was always trying and failing to prove.

[Comments] (4) SR: is there a game that you can creare your own dinasaur with evry day problems No, but that's a great idea! Get to work, game designers!

: Amazon has a new schemaless database web service (remember, you can't spell "schemaless" without "shemales"), which is cool but has some serious problems from a REST and general web architecture perspective. The weird thing is that by my count this is the fourth time this has happened. (Here's last time.) This despite the following mitigating factors:

Reading the tea leaves it looks like Amazon has some internal framework that takes a set of functions, and generates code for a web service that handles calls to those functions through HTTP GET or SOAP. If people complain and an Amazon coder gets around to it, said coder can generate or write a proper resource-oriented interface to the same underlying code, but that's not what's generated by default. S3 and the web service that controls EC2 were done by different teams who didn't use or didn't know about this framework.

[Comments] (1) : Sumana has posted her promised Powerpoint Karaoke best practices.

[Comments] (9) Horrid Tragedy In Private Life: Oh, frabjous day. Short-time readers may recall back in July when I heard of an incomprehensible Punch cartoon drawn by W.M. Thackeray, a cartoon so bizarre that "[a] rival magazine helpfully offered five hundred pounds to anybody who could explain the drawing. Nobody could." Since then I've been on a cartoon-hunt (not really), and today I not only found the cartoon, I found out what it means!


Instead of telling you what the cartoon means right now, I thought it would be fun to do some information scarcity reenactment and invite unfounded speculation as to what it means. Leave your theories in comments. I'll post an explanation tomorrow.

If you don't like not knowing something, it's not hard to find the canonical explanation once you know the title. I must warn you that, in the "Cow Tools" tradition, the explanation is quite the anticlimax. Meanwhile, I'll be perfecting my time machine to collect that five hundred pounds.

: I forgot to mention that yesterday's sordid story of Vending Machine French Fries is one of my favorite episodes of The Future: A Retrospective.

[Comments] (6) And Now, The Conclusion: Previously, on News You Can Bruise:


We pick up the story with The History of "Punch", new to Project Gutenberg. They have a whole chapter on Thackeray, including the section "A Mysterious Picture", which describes the cartoon:

In 1847 (Volume XII., p. 59) Thackeray contributed a "social" picture which is to this day a wonder to all beholders. It is entitled "Horrid Tragedy in Private Life," and represents a room in which two ladies, or a lady and a servant, are in a state of the greatest alarm. [The maximum possible alarm was lower then -ed.] What the meaning of it all is there is nothing whatever to indicate (unless it be that something has fallen on the taller lady's dress); and on its appearance the "Man in the Moon" offered a reward of £500 and a free pardon to anyone who would publish an explanation. The reward was never claimed; and Thackeray's contribution remains one of Punch's Prize Puzzles, unsolved, and, apparently, unsolvable.

First, "Man in the Moon" is a great name for a magazine. Second, it's awesome that in those days magazines held the power of pardon. Truly it was a more, or possibly less, enlightened time.

Now, searching on the cartoon's name gets you to The Works of William Makepeace Thackeray with bibliographic commentary and nostalgia by his daughter, Anne Ritchie:

Is it too late to claim the £500? The room was my father's study, where two little girls were found by him dressed up in various tablecloths and curtains. One was enacting a queen, and was ordering the rival sovereign off to instant execution, when he came home unexepectedly, and drew them then and there.

Jake Berendes came closest to divining the purpose of the cartoon: 'i think the message is "there is a lot of nonsense you will have to put up with if you have children so don't bother".'

As The Hitherto Unidentified Contributions of W. M. Thackeray to "Punch", which I'd actually encountered on a previous cartoon hunt but given up on because I was looking for the wrong year, points out, "neither in drawing nor text is there any clue to the situation; nor, if there were, could the joke be considered a very funny one."

Indeed. This discovery opens up more questions, like, how did this cartoon get published?

[Comments] (2) 10 F#@king Years: Ten years ago today, I wrote what can now be considered the first entry in News You Can Bruise. I was eighteen years old. None of the stuff mentioned in that entry actually happened or is still around (including Leonard's Yummy Homepage, then the weblog's containing site), and I thought I was funnier than I actually was, but I think my enduring voice, such as it is, was present.

For those who would charge me with narcissism, I say this: I like going to people's homepages and looking at their pictures and seeing the cool things they've done.

Looking back through the archives I see no previous self-congratulatory anniversary basking; I guess I was saving it all for the ten-year mark. Bask!

: There's too much stuff here to absorb so these pages have been sitting in my browser tabs for a long time like kidney stones or something: University course lectures as podcasts, and "Ideas and culture" podcasts. Hey, I've got a great idea: culture! We'll paint some pots, weave some textiles and we'll raise enough money (after inventing the concept of money) to save this civilization!

The Frotzophone Considered: In my study I sat, looking through forbidden documents, researching the Frotzophone. It was said that this accursed invention of Adam al-Parrish, the Mad Mormon, took space-time itself as its score, and that its music resembled a cover version of Azathoth's more radio-friendly pipings. Judge for yourself.

As you know, Bob, a text adventure on the Z-machine is represented as an object graph. The Frotzophone keeps track of objects' movements through the graph as you play the game:

The Z-Machine interpreter sends an OSC message whenever such an attachment takes place, reporting both the parent object and the child object. The ChucK patch checks to see if the parent object has been seen before; if not, it associates that parent object with a note from a pre-determined scale. That note is then (and on subsequent appearances of that parent object) added to a list of notes for that child object. The ChucK patch plays the list of notes for each child object simultaneously and in a loop; the effect is sort of an aural history of how objects have been related to one another.

The instrument is pleasing but its name is not megalomaniacal enough; it should be named the Parrishophone. After all, Adolph Sax gave us the saxophone, John Phillip Sousa the sousaphone, Pierre-Auguste Sarrus (indirectly) the sarrusophone. Alexander Graham Bell invented the bellophone, and his evil twin Alexander Graham Cell the cellular bellophone. So why give Deveikis Frotz more credit than he deserves, just because he invented the virtual machine?

: I just realized that Droopy Dog's voice is Truman Capote's.

The Blue Strawberry Cookbook: One bit of conceptual continuity in my life that you may have picked up on is my interest in cookbooks that purport to teach you how to improvise instead of just listing a bunch of recipes. I think I've now collected all the books mentioned in that old entry except for the Anderson, and the Sindel/Splichal I think I got rid of when we moved to New York. The most recent acquisition was The Blue Strawberry Cookbook, via the always-recommended BookMooch, through which I was able to get rid of 62 books in 2007.

Like many books that claim to have no recipes, this book in fact has recipes, but they're not presented in the traditional Joy of Cooking form but in a narrative like you sometimes see when I write recipes, with many hooks for improvisation. The odd thing about this book is that it's a book from the mid-70s, which means it's stuck in the 70s and in a French culinary model that's very sauce-heavy. There is a trick for making sauces in the blender which is used to great effect throughout the book.

The author asserts that "if it's fresh it's nutritious", which unfortunately is not true! The Blue Strawberry Cookbook unflinchingly applies this logic to, eg. butter. Most of the sauce recipes start out "Melt a stick of butter." That's on top of a recipe that often has another half-stick or stick of butter in it.

To boil a potato and then mash it is insultingly mundane; but who doesn't like mashed potatoes? The next time you make them, bake the potatoes in their skins until soft, then scoop the meat out of the skins, add milk and butter and salt and pepper, and mash them that way. Much more taste and much better for you.

"Nooo!" "Nooo!" Mashed potatoes with butter are the vegetable equivalent of fudge. Interesting idea to bake them instead of boiling, though.

Basically there are lots of good ideas in this book, and an inspirational spirit of off-the-cuff invention, but now I think I know why the 70s were so greasy. I don't think it's true that any arbitrary flavor combinations will taste fine, as BSC claims, but this book has gotten me to do more experimentation when cooking and less a priori thinking about what might work well together.

Scientist and Penguin: The Essential Cut: In the unlikely event you were wondering how "Scientist and Penguin" goes, Sumana and I re-recorded the very end of a previously improvised episode (0:44) as one of our trademark non-podcast podcasts. The backstory is that the scientist took the penguin on a boat to an island to see if there were any other talking penguins on that island. There was one, owner of a bar, but he was really cranky and he was out of coconut cream. Then in a medieval bestiary twist it turned out the island was actually a giant coffinfish, so we fled.

Also somehow the name of the show changed to "Penguin and Scientist". That nutty penguin stole the top billing! He's a penguin!

Dream Hit Parade: In keeping with my longstanding rule about telling you my dreams, here are the good/funny bits from recent dreams.

: Cameleopards? Cameleopards!

: I heard Bizarro Johnny Cash once resuscitated a man just to watch him live.

: In Utah with Susanna and John and Maggie. We're working on having fun, and succeeding. The founder of JetBlue was on our flight; I'm guessing the December 24th flight from New York to Salt Lake gives you pretty good odds to see him.

[Comments] (1) Anacrusis #7 or whatever: I woke up this morning deciding to write an Anacrusis about Santa Claus, as my Christmas gift to you, my readers. I announced this plan to Sumana, who said "You know today's Anacrusis is about Santa, right?" Except she said it without the link.

I inquired how Sumana thought I might have known this, since like a magician preparing a trick I had booted up my laptop in full view of her and ostentatiously not looked at Anacrusis before telling her my idea. She said maybe I'd talked it over with Brendan beforehand.

Anyway, here is my totally different Anacrusish story. I like to call it...


"Ho ho ho," says Santa, "permanently."

"We're here to help, Santa," says Ogilvy. "Don't you miss your core identity?"

"I'll stuff your stocking—permanently!" Santa roars, but there's that flicker of doubt.

"You know what comes after 'beloved symbol reenvisioned as evil'? Semiotic nullity. You merge with the collective unconscious. This is the last stop, old man."

Santa busts a strap.

"Nurse, sedative," says Ogilvy. "We'll walk you back through modernity. Have you ever been a facile metaphor for quantum uncertainty?"

"I see it!" says Santa. "Naughty and Nice, superimposed in every soul."

"Treatment successful!" observes Ogilvy, just as Santa suddenly disappears.

: I've been wondering whether anyone reading this gave or received one of my books as a Holiday gift. It seems unlikely but hey, that's what idle curiosity is for. Send me email or leave a comment.

: TF:AR is getting some quality linkage (for instance from ValleyWag and Rob Walker's del.icio.us links), and it's been called "awesomely hilarious", which makes me happy. Today when filling in the backlog I encountered another Vending Machine French Fries-esque tale of corporate malfeasance, which you'll read about in a couple days.

The project is going to end in March, and not a moment too soon. I think I've mentioned before that TF:AR takes up all my non-work creativity, and it'll be nice to be able to think about writing scenarios other than weird predictions from the past. There's More Future Stuff, of course, but I can come back to that in maybe 5 years. Or someone else can pick up where I left off.

Laura J. Mixon: Look, I'm not any kind of science fiction expert. My inauspicious upbringing and my flailing attempts to catch up are matters of public record. Among my many unread books are about fifteen representative books from major genre writers that I've never read (current project: C. J. Cherryh). But when I applied to Viable Paradise I had never even heard of Laura Mixon, one of my instructors.

This entry is for anyone else currently in that boat, encouraging them to get out. I've now read Proxies and its very different sequel Burning the Ice (not in that order) and they're both great. I want to say "character-driven SF" but the labels we give invoke stereotypes, and there's a kind of inferior "character-driven SF" that's analogous to inferior space opera. It uses SF settings and characters but the basic dilemma of the story would work fine without them. What Laura/Mixon (not sure how informally to refer to her) does is exactly what that label should mean: she puts people with realistic psychology through situations that don't happen in real life.

There are a couple problems with the two books I've read. They both start off slow; if you get bored at the beginning you might want to skip fifty pages. Also, for brief periods Burning the Ice switches from believable hard SF to super-hardcore Hal Clement type stuff that makes my eyes glaze over. But they glaze over for a bit and then it's done, or maybe they don't and you learn something about orbital mechanics.

So, highly recommended, an author who had fallen through the cracks for me, and one who doesn't have many weblog entries written in praise of her work.

On apple bin at farmer's market:

: I hate jewelcases, even the really skinny ones. But I also hate giving or receiving data-discs without some kind of protection. When I mail n DVDs of spam to a researcher I don't want them scratching each other up. So I was cutting up paper and stapling it into paper cases.

Then today I discovered the ancient Eastern art of origami. Tom Hull devised instructions for folding an 8.5"x11" sheet of paper into a closable jewelcase, and there's a web application that lets you print customized cases with the folding lines marked so you don't have to guesstimate distances.

The Canadian national sport: Telling Americans which celebrities are Canadian.

: I'm running out of 2007. Can I borrow some?



Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.