[Comments] (2) Apples to Whatever: I came up with another AtA (or A2A, as we in the enterprise game business call it) variant: "Apples to Placebos". Unlike vanilla Apples to Apples, Apples to Placebos can be play with only two or three people. In each round, the non-judge players play a red card to be judged, but their cards must compete against random cards from the draw pile. The judge draws one (three players) or two (two players) placebo cards from the draw pile, shuffles them into the submitted cards, and then judges the cards normally. If the judge picks one of the placebo cards, nobody gets the point.

Bonus: from the A2A game at the New Years party last night: "I just realized that 'The IRS' spells 'Theirs'. I feel like a stand-up comic should have pointed this out to me long ago. 'Where'd my money go? It's not mine anymore, it's TheIRS.'"

My original Apples to Apples variant is still the best way to end a game of A2A--proved, yet again, last night.

Audio Bonus #3: Snuggles the Pillow: The end-of-year bonuses don't stop just because the year is over. Here's the seventh crummy.com non-podcast podcast, "Snuggles the pillow". In this episode the eponymous pillow visits our household, with wacky/disturbing results.

[Comments] (1) Kandinsky vs. the Guggenheim Museum: On Sunday, our last day of vacation, Sumana and I went to the Guggenheim museum for the first time. We'd planned to go about a week earlier, and then we got to the museum and there was a line wrapping around the block, in freezing cold weather. No thanks. We went to the Cooper-Hewitt museum instead. (Which was really small for the price, and also really preoccupied with the people and corporations that had been given awards by... the Cooper-Hewitt museum.)

It turns out you can buy Guggenheim tickets online, so I bought some for the 3rd. I cannot stress enough how important it is to buy tickets in advance. You don't want to be standing in the cold for 90 minutes. When we got into the museum we saw that the wraparound line wasn't even the whole line. There was insane chaos on the ground floor including milling tourists, a coat check off to the side, a small pond conveniently located for falling into, and a whole other winding line to the ticket sales area itself.

I should have seen this coming. My general theory of Frank Lloyd Wright is that his stuff is really beautiful but would be aggravating to use. I really love the FLW living room they have in the Met, but if I lived there (a la The Mixed-Up Files of Mrs. Basil E. Frankweiler), probably within an hour I'd reach for a magazine and bash my hand on something right-angled. And the Guggenheim is an amazingly well-designed museum so long as nobody is in it.

At the Met, the main entrance is really noisy and as you go into the exhibits it gets quieter and quieter. The entire Guggenheim is one big room. The whole time you're at the museum, you're in the same room as hundreds of people waiting in line for tickets, discussing with their friends what to do next, making phone calls, etc. You can't get away. They're a hundred feet away, but it's a hundred feet straight down through open air. You can see and hear everyone else just fine.

If you're the Guggenheim's only visitor, you'll find toilets are distributed for maximum convenience. Seemingly on every turn of every level you'll find a unisex toilet. That one person at a time can use. In real life you get people waiting in lines outside a toilet, blocking the ascent for everyone else, not willing to give up their space in line in hopes that a quarter-turn up or down the corkscrew is a toilet that doesn't have a line.

The same phenomenon happens whenever a timeline or exhibit description is painted on a wall. The Guggenheim is full of little inset niches containing 2-3 artworks each, where people can stand and admire the art without blocking traffic. This is good design. Good thinking, anticipating that an art museum would have art in it. Unfortunately, the same allowances have not been made for random walls with text on them. Bottom line, people stand immobile before these walls, reading, and you can't get past.

One good thing about the Guggenheim is the reading room. It's just a quiet room full of art books. Sumana and I killed time in there, reading (did you know that Alexander Calder painted full-size working airplanes? One of which was blown up in the movie "Bad Boys"?) and it was a good time.

I haven't mentioned the art itself because that changes all the time, and the museum's architecture is eternal. But wow! We went to see the Kandinsky exhibit (it's closing soon), and it was AMAZING. Kandinsky's stuff started out pretty dull--Sumana compared it unfavorably to Chagall, and I don't like Chagall in the first place. But around the time he joined Bahaus, Kandinsky literally shaped up. He started using stencils, clean lines, and proto-airbrush techniques, yielding nerdily precise paintings that look like scientific diagrams (eg. "Movement I" from 1935) or safety notices in an alien language (eg. "Succession", also from 1935).

I wrote down the names of our favorite paintings and I'll try to round up some links to pictures later. I'm absolutely not someone who tries to interpret abstract art in representational terms, but if you rotate 1932's "Black Grid" ninety degrees counterclockwise, it really looks like a seascape with airplanes, modern (for 1932) steamships, and old-fashioned sailing ships, all in front of a city. Plus a black grid and a bunch of random shapes in a corner to fool you.

Conclusion: Kandinsky is awesome, the Guggenheim is aggravating. Unfortunately, the other owns a lot of the one! We were talking about this at the New Years party; how the Guggenheim really loves collecting Kandinsky, how Charles Simonyi seems determined to buy up every Lichtenstein painting in the world. What artists would you buy up, if you had, say, a billion dollars to spend on art and could thus acquire a good chunk of anyone's ouvre?

Captain Raptor!: My now-undirected ongoing search for the phrase "awesome dinosaurs" has picked up another example of what if this was music would be called dinocore. From The Aviary I found out about a series (two is a series!) of illustrated children's books called "Captain Raptor": "CR and the Moon Mystery" and "CR and the Space Pirates". I got copies today and they're awesome. 1) dinosaurs in space! 2) everything's drawn like those gorgeous old-fashioned movie posters. 3) since it's a children's book you probably learn a valuable lesson. Minus points for stereotyping dinosaurs based on their species (which I also did).

[Comments] (1) : I'm in Boston, having fun with friends. In lieu of a NYCB post, here's Julia's summary of today, with pictures.

[Comments] (2) Things You've Probably Seen Already: 1. "Two Gentlemen of Lebowski" I think if Shakespeare had written The Big Lebowski he would have quoted his own plays a little less, but it's good stuff. And there's a New York performance in March!

Our ringer was a ringer for the same
In odious Lebowski's rotten game.

2. Art Clokey died on Friday. I've been a Gumby fan for ages--I'm pretty sure it's the first thing I ever saw on television[0]--but I didn't know much about Clokey until I watched the 2006 biopic "Gumby Dharma", which was really excellent and which I should have mentioned on my 2009 film list. It's got fourth-wall-smashing interviews with Gumby and Pokey themselves--I'm pretty sure Gumby claims that Pokey was prone to cocaine binges, or maybe vice versa. It's not on DVD but they used to play it on the Sundance Channel all the time, maybe they still do.

At this point in my life I'm becoming accustomed to the likelihood that any random old person has accumulated a whole lot of interesting life experiences, but even so, Art Clokey's experiences were a couple standard deviations further out than I was expecting.

[0] In kindergarten I'd walk with my friend Tony after school to his house and watch cartoons for a bit. There was Gumby, and, I believe, the Thundercats.

[Comments] (1) Leonard Nitpicks the Showtunes:

New York, New York, it's a hell of a town
The Bronx is up and the Battery's down

That's not really very convincing.

: Origin of Mother 3's save frogs--revealed! Even if you don't know or care about Mother 3, check out the song's cute lyrics.

[Comments] (4) Reviews of Old Science Fiction Magazines: F&SF 1986/03: A good issue, but the whole time I was reading, I was waiting for the story that fulfilled the promise of the cover. A spaceship landing (or, I suppose, taking off) near a stegosaur! Which story would it be? "Good Night, Sweethearts" by James Tiptree Jr.? "Still Life" by David S. Garnett? Probably not "The Dog of Truth" by Kit Reed. Well, I'm at the end of the magazine, by process of elimination it's gotta be "Sea Change" by Scott Baker. But no, it was just a misleading cover image that has nothing to do with any story in the magazine. Oh well.

I think the best story is "Sea Change", despite the stegosaurus disappointment. Although it has a little too much of a "I went on vacation and had a really evocative experience, so I wrote a story" feel. So maybe the Tiptree is the best. They're both very good.

Also recommended are Karen Joy Fowler's "Wild Boys", and Neil W. Hiller's "Peace Feelers", in which invading aliens have the same military structure as the US Army. (Points deducted for puns.) It's always strange to be on the New York subway reading about someone trying to blow up the New York subway.

Paul Di Filippo's "Skintwister" and David S. Garnett's "Still Life" are both the "eternal youth is possible but only for the rich--and at what cost?" story that was written a lot in the 80s, or maybe is written a lot by writers approaching middle age.

George Zebrowski is now officially my "writer whose work I find compelling when described but disappointing when I read it." He's got a story about semidecidability called "Gödel's Doom" (originally printed in Popular Computing!), but the story just can't happen. The Incompleteness Theorem says it can't happen. The author knows this. The characters in the story know this. They spend much of the story exchanging dialogue: "The Incompleteness Theorem says this can't happen!" "But what if it can?" And in the end it happens and makes no sense and is boring. Ted Chiang did it better ("Division by Zero").

On the plus side, because of "Gödel's Doom" I found MathFiction, which lists fiction about math and critiques the math. Here's its get-off-my-lawn page about "Gödel's Doom". Here's 29 more works of fiction that involve Gödel somehow. MathFiction also loves "Division By Zero".

In movie reviews, Harlan Ellison can't shut up about how great Brazil is (or, indeed, anything). It's an enjoyable column. Algys Burdis's book review column contains a review of Schismatrix and The Postman, which I just read. (3/4 kickass adventure, 1/4 David Brin's cranky blog!) Also the phrase "Now, Bruce Sterling is what they have begun calling a 'cyberpunk'", and these two footnotes:

*Someday if they don't stop giving Brin awards and money long enough to edit him properly, he, his publishers and we his readers will all lose. The initial burst of charming and/or socially praiseworthy ideas will have slackened a little, the need for a better grasp of storytelling per se will make itself felt, and Brin, like many another bright young star before him, will be left wondering where his career has gone. This will be a notable shame, in his case.
*At this point, I began picturing [Philip K.] Dick as a squid among the stars grappling Arthur C. Clarke's whale from Childhood's End. Fortunately, in most realities this footnote does not exist.

No interesting ads (apart from some classifieds pushing Halley's Comet kitsch), the cartoons still suck. The end.

Game Time:

[Comments] (2) Little Joke: via Lucian.

Have you heard about the new corduroy pillows? They're making headlines!

The end.

[Comments] (1) : I was watching Computer Networks: Heralds of Resource Sharing, the excellent 1972 documentary about the ARPAnet, and one statement jumped out at me: "the large superfiles, the 1011-bit weather files which we're putting on the Illiac". That's about 13 gigabytes, which will fit on a couple DVDs today but which was damn impressive in 1972.

Some Moore's Law style inflation shows just how impressive: an equivalent amount of data today might be 370 petabytes. They must have had a whole tape library devoted to that weather data.

Nethack Where You Don't Expect It: I decided to do something similar to my adventure to find the first known mention of the ARPAnet in popular culture. I'd find books that mentioned Nethack but were not books on computers or game design.

This adventure was fun but noticeably less successful. There were a number of government documents and books about oil mentioning "nethack agreements", but this was just an OCR error for "netback". I also saw one "setback" become "nethack".

There was a collection of User Friendly comics and one of BBspot news stories. I found only one work of prose fiction that mentioned the game Nethack: "Dyl", a self-published piece of French SF by Mirko Vidovic. Here's my machine-aided English translation of part of the section called "Rogue":

The system, which had seemed to boot normally, was suddenly seized with hiccups. The screen was going mad. Instead of presenting the expected prompt, Dyl found himself in the middle of a game of Hack, the successor to Rogue, itself the originator of Nethack.

"The system has managed to intercept the launching of Sarge [the Debian release?], and substituted the utility routines which it considers best suited to a strategic confrontation. Something tells me that in these dungeons are two antagonists which expect me," whistled Dyl. "I will play the game, go down there and beat them both."

Michael P. Kube-McDowell's "Vectors" contains the string "nethack", but it's a cyberpunk nonsense word ("covered with nethack gear"), possibly used as an in-joke.

Marylin Schrock's "Wake Up, Church! The Enemy Is Within Your Gates!: Astral Projection and The Church" tries to bring 80s-style Bible-thumping fantasy buzzkill into the Internet era by, near as I can tell, taking claims of astral projection at face value and blaming it all on Satan. Its big section on "Astral Projection in Our Culture" (hey, Wikipedia didn't want it[0]) says: "The astral plane is the final level of the computer game Nethack. The player must sacrifice the Amulet of Yendor to a deity in order to win." Otherkin, mentioned on the same page, are apparently an even bigger problem than Nethack.

On the other end of the spectrum, a Christian nerd with the ominous nom de plume of "Anakin Niceguy" has self-published "Rethinking 'Getting Serious about Getting Married' : A Biblical Response to Debbie Maken's Book and to the Assault on Unmarried Men by Religious Leaders". I know that religious leaders were always mounting assaults on me until I got married. Here's the Nethack graf:

A bachelor may indeed have his "golf or other hobbies" but married people have their weddings, receptions, honeymoons, McMansions, oversized SUVs [several other stereotypical status symbols elided], and piano lessons for Junior to make the parents proud. As a lawful [sic] as these things are, I fail to see how they bring a soul any closer to God than the time a single man spends in front of the computer playing NetHack.

I'm not really sure what is up with Benjamin Rowe's "The 91 Parts of the Earth", but I doubt Marilyn Shrock would approve of its "Enochian magick". The Nethack graf makes Rowe (?) sound like H.P. Lovecraft's most milquetoast narrator:

Possibly in reaction to this, I now find myself slightly reluctant to try entering the Part again. I've put off starting several times already today, on the faintest excuse, and a couple of times with no excuse at all. (In fact, I'm going to do so again as soon as I save this file, and play Nethack for a few minutes.)

Dishonorable mention to Ralph Roberts' "REBOL for Dummies", which implies that Nethack is a text adventure, and to Timothy Albee's "CGI Filmmaking: The Creation of Ghost Warrior" which implies that Nethack is a MUD. Frankly, I expected better from you.

[0] But seriously, folks: the section is largely plagiarized from Wikipedia.

[Comments] (2) She-Hulk Tie-In: When I was in Boston Kirk showed me a few of his favorite games of the 2000s, including the Gamecube tie-in game for the Incredible Hulk movie. Kirk mentioned how he liked the game's dreamlike atmosphere of running up the sides of buildings, throwing helicopters, etc.

I was not as impressed. But this entry is not about how difficult it is to impress me. Instead I wanted to share my awesome idea for a She-Hulk tie-in game. It would be a courtroom adventure game like Phoenix Wright, except funnier and with the occasional fit of smashing. I can almost taste it--the only thing preventing me is the fact that video games generally have no flavor. It's such a great idea it would almost be worth having a terrible She-Hulk movie made so that this game could be the tie-in.

[Comments] (2) Underrepresented in Wargames #2: I'm not a big player of wargames[0] but I like the idea of dramatizing interesting historical situations and/or exploring their tactical aspects. Especially the tactical aspects of non-military conflicts like protests, standoffs, and political struggles. After posting about UATWM! I mentioned this to Sumana, and spent a couple hours searching BoardGameGeek for wargames on such topics.

By the standard of interesting wargame topics, Ted Torgerson is our favorite game designer. He created Dawn of Freedom, a Twilight Struggle mod (?) that includes a Tiananmen Square track (not really tactical, but oh well), and Free At Last, a wargame about the civil rights movement. ("If the Non-violence track reaches Non-Violence Abandoned at the end of any game turn, the segregationist player wins the game.")

There are two games about the 1999 WTO protests: Battle Of Seattle and the longer-named N30: We Are Winning: The Battle of Seattle. Steve Jackson Games also published a tactical game about the 1980 attempt to free the American hostages in Iran.

In my experience a BoardGameGeek list is a fractal timesink as bad as TV Tropes, so instead of linking to "Wargames with Odd or Special Units" and "Overlooked but Important Battles" I'll just mention their names. If you go look at them, it's your own fault.

[0] But my current not-a-big-player state includes contingent factors like a lack of space to store games and a lack of friends who want to play them. In 2008 I played some Memoir '44 with Brendan and had a good time.

[Comments] (2) HP Sauce: Possibly the greatest Lovecraft sentence ever (from "The Strange Case of Charles Dexter Ward"):

To call it a dull wail, a doom-dragged whine or a hopeless howl of chorused anguish and stricken flesh without mind would be to miss its most quintessential loathsomeness and soul-sickening overtones.

Reminds me of a night when Kris and I were doing everything in Lovecraft style, like the "My most embarrassing moment" column in Seventeen magazine.

At once I felt a hideous upwelling of blood from within my bowels, a red stream of ichor that flowed without measure into the white trousers I had just purchased at this dying town's dusty Mercantile.

Kris also came up with the ultimate dinner-table line: "If you'll excuse me, I have to go give vent to certain measured sounds."

On a related note, does anyone else find it uncanny that the spokesman for Nintendo of America in the 1980s was named Howard Phillips?

[Comments] (1) You gained "cows" and "hate"!: Hey, check out the Global Game Jam entry of Adam Parrish et al, Humans Hanging Out. A matching game in which you must pass the Turing test against opponents who can't pass the Turing test. Some luck is involved, but once you figure out the underlying rules you can win pretty consistently. (It helps to sniff the Flash application's Ajax requests to the web service.) Unfortunately, when you win the game you get a screen that's much more disturbing than what you get when you lose.

PS: Oh yeah, I forgot to mention the game includes another sweet Adam P. chiptune.

[Comments] (1) Neti Pot: I've been subsceptible to sinus problems since I was a teenager, and many's the time I've wished I could just flush that system out with salt water. The neti pot is designed to do just that, but I didn't use it until recently, probably because I also have a deep fear of having water in my skull cavities. But it works great. Sumana got me one the last time I was sick, and it relieved the pain better than useless non-pseudoephedrine-containing medicine. Since then I think it's prevented an onset of sinus sickness, and even when I'm not sick, I've found it useful for generally not feeling miserable in dry weather.

So, at the risk of having told you more than you want to know about my sinuses, I recommend checking out the neti pot. Part of me wishes I'd had one when I was a kid, and part of me knows that me-as-a-kid would never have been able to use it correctly. I couldn't even swallow pills until I was about nineteen--too squeamish.

[Comments] (1) KJ Kabza: A few weeks ago when we went to Boston, we attended a dinner party with people from Julia's writing group. It's difficult for me to imagine setting up a dinner party for my writing group; we have enough trouble all getting together for the writing group itself. Anyway, one of the people I met, KJ Kabza, turned out to be a fan of mine! (Well, a fan of "Awesome Dinosaurs".) I had a great conversation with him, and this weblog entry gives me a reason to link to his webpage so you can check out his writing.

: Random link of excellence, I don't remember where I found it and it's seven years old, but check it out: Cartridge covers from Thai Atari 2600 games.

[Comments] (1) : I haven't been writing NYCB or the novel because I've been trying to write a paper for the First International Workshop on RESTful Design. I made a great breakthrough today when I decided to just cut a third of the paper and talk about that stuff later after I fully understand the problem, rather than to improvise something and get it in before Tuesday...

Except looking at the web page, I noticed that the deadline has been pushed a week into the future. I haven't gathered enough data to be sure, but it seems like conference paper deadlines always get extended. How come they never did that in college? A week is probably not enough time to do justice to that third part of the paper, but it gives me enough of a buffer that I can take it easy tomorrow and finish the novel chapter that's effectively already finished except for little details like the words not being on the page.

This entry got longer than I expected because I discovered the deadline got changed, but here's the link I was going to appease you with: weird Chinese fake Lego. (You can tell it's fake because it's not LEGO.)

PS: If my paper is not accepted, I'll post it on Crummy for you to read. I haven't written much about web services due to novel work, but the paper should give a little insight into what's been happening at my job.

Reviews of Not That Old Science Fiction Magazines: Apex Volume 1 Issue 11 (2007): Not to be confused with Abyss and Apex. I believe Sumana got this magazine from a friend in 2008 and gave it to me so I could study the market. I studied it enough to see "Science Fiction & Horror" at the top of the cover, and then put it in with the rest of my unread magazines. I do not like horror. I realize that this says more about me than about the genre, so I will spare you my half-baked opinions and nickel psychoanalyses of the horror writers profiled in this issue of Apex. Suffice to say that I am suspicious of any genre named after an emotion. Like if comedy was just called "laughing".

That said, there was one story in this issue I really liked. Sara King's "The Moldy Dead" is one of my favorite types of story: a first contact story with no humans in it, just alien-on-alien action. The horror element is surprisingly understated, and I appreciated it on an intellectual level when it came into play in the ending. It was kind of Star Trek-ish, though (if I may damn with faint praise) more interesting than any time Star Trek ever tried to do horror. (PS: Helpful hint to space explorers. If you go to a planet looking for intelligent life, and you find only one form of life on the planet, that might be it!)

I also enjoyed the title of one of the pieces: "Cain XP11 (Part 3): Sorry About All The Blood". That was the third part of a four-part novella about a government plan to clone history's great serial killers and train them as super-soldiers, a well-thought-out plan which surprisingly goes awry.

And that's the kind of thing found in the rest of the magazine. The ads are uniformly interesting: small-press stuff with the distinctive small-press art style, and because I don't believe in the reading conventions of horror the copy just makes me laugh. ("Resurrected against his will in an unholy deal with Hell, he must now use his surgical skills to harvest the living to feed an ever-growing army of the undead.")

However, I would like to give a special shout-out to David Wong, editor of Cracked.com and author of John Dies At The End, which in 2007 was advertised as available online for free, but which since then has been trapped in a paper book. Great title! I'm getting most of my entertainment here from the titles. ("Where Evil Lurks: Special Edition") Also Alethea Kontis had an editorial about curses that was pretty interesting.

Finally a note about the cover. I don't have my camera handy but it's a brownish painting of the face of some dude who looks like an octopus (or maybe it's the whole body, if dude really looks like an octopus). Tentacles, mottled skin, big round eye, etc. I looked at this cover and thought "Man, this is why I hate horror. I'm supposed to be prejudiced against this creature just because it looks like a tentacle monster. There's probably some Lovecraft ripoff story in this magazine, instead of a cool story about aliens." But no, the cover illustration was just a picture of one of the aliens from "The Moldy Dead", a cool story about aliens.

So that was a pleasant surprise. But then I started wondering how Apex readers distinguish between a horror tentacle monster and a science fiction tentacle monster. Then while looking at the ads I figured it out: teeth. The single most reliable indicator of horror art is exposed teeth (runner-up: an open mouth without exposed teeth).

Octopus-dude's teeth, if any, are not depicted on the cover. Its most prominent feature is the eye, which you'd think would be creepier (I'd rather see a tooth lying on the sidewalk than an eyeball), but in fact it creates empathy, letting you know that this other thing is a person. In the ads in this magazine, creepy things tend to have their eyes closed, or else their eyes lack pupils.

This teeth thing is also largely a matter of prejudice (there's a funny scene in Old Man's War that makes fun of this), but I think that's how the signalling works.

: "You're a pigeon, my friend."

[Comments] (6) Commissar Joe: Shopping at Trader Joe's is like living under a really good planned economy. You can get all sorts of exotic food at pretty decent prices, but there's only one brand of everything: the store brand. The few exceptions (soy milk, energy bars) feel like imports from another country. Some of the packaging hasn't been changed in thirty years. The products come and go at the whim of unseen "experts", seemingly unconnected to consumer demand. There's an in-house propaganda publication full of over-the-top writing about how good you have it.

I made this connection on Sunday when I spent twenty minutes standing in the twelve-item checkout line.

: "Did YOU have access to books?"

Crummy.com Podcasts: Leonard and Lucian's Inaccurately Sepia-Toned Retrofest #1: On Sunday, Lucian Kahn and I had a long conversation about our respective childhoods, growing up in southern California in the 1980s and 90s. I've cut the conversation into two parts and part 1 is now available.

In this 41-minute episode, Lucian and I discuss our early encounters with the mysterious personal computer. Most retrocomputing podcasts focus on video games, but we talk about everything: school computer labs, operating systems, paint programs and creativity suites, online services, weird DOS front-ends, wooden mice, and the "turbo" button. All with no nearby Internet access, so we can spout off half-baked theories informed only by the vague ideas we had as children.

In next week's episode, Lucian will explain things I never understood when I was a kid, like fashion and the Teenage Mutant Ninja Turtles.

Bonus: I have bowed to popular demand and created an RSS feed for the podcast. Let me know if it doesn't work. You can also see a HTML page with the same information as the RSS feed.

Videos I Haven't Watched: No guarantees.

Audio I'm listening to while running: The Tolkien Professor. And as long as I'm straying further and further from the title of this post, an excellent poem: "Answer to an Invitation to Dine at Fishmongers Hall", with its incredibly quotable first stanza.

[Comments] (1) Deadlines: In a remix of college insanity, I have to finish a project before the Ubuntu feature freeze on Thursday; plus yesterday I had to submit my WS-REST paper and complete a novel chapter for writing group. All that's missing is the crushing angst! Oh, there it is.

[Comments] (2) Hey, Who Doesn't?:

And forty-one, a prime number, was a significant number for the Shaa, who loved primes and multiples of primes.

--Walter Jon Williams, The Praxis

[Comments] (3) Crummy.com Podcasts: Leonard and Lucian's Remedial Pop Culture: Hey, it's part 2 of my conversation with Lucian. This time, we talk about boys' and girls' fashions from the late 80s and early 90s, the styles that caused a nationwide push for school uniforms. Lucian then explains the Teenage Mutant Ninja Turtles to me (apparently Raphael is cool but rude), and explores his lifelong obsession with being a cool dude.

I was going through a box of old stuff from my childhood and I have this thing I wrote then I was six, a list of things I like. And it's like "cats", blah blah blah, "COOL DOODS!"

Here's the direct download; here, the RSS feed.

[Comments] (1) More TV Oddities: Both from 1981, both thanks to bobtwcatlanta.

[Comments] (3) Guess The Verb! (It's "Said"): This has bothered me for a little while. In general, it's considered undesirable to use too many adverbs in writing.

He messily ate the sandwich.

But you can replace a generic verb with a fancy evocative verb that does the work of an adverb.

He assaulted the sandwich.

In fact, you can replace a whole clause (often including adverbs) with an evocative verb that conveys the same information.

He walked aimlessly around wandered the room.

Except when the generic verb is "said". Using fancy versions of "said" is "said-bookism", also considered undesirable.

"Just as you wish," he preened said.

And you can't use adverbs here either.

"Just as you wish," he said obsequiously

Hypothesis: by preventing you from describing the way someone says something, these rules force you to write dialogue that explains how it should be read.

"Just as you wish, O most esteemèd lord."


"Well," he said, "if such is my lord's wish..."

The Palace At 40 Million Dollars: Went to the MoMA yesterday with Peter Hodgson (high-quality photos coming soon). I was raving over The Palace at 4 A.M., official Crummy.com Sculpture Of The Millenium (1001-2000).

"I can't believe Alberto Giacometti did all those horrible elongated pinched statues of people, and then he also did my favorite sculpture of all time."

"You know, one of those statues just sold for a hundred million dollars. It's the most expensive sculpture of all time."

"That's awful," I said.

"Well, it means your favorite sculpture of all time probably just tripled in value."

"Great, now I'll never be able to buy it from the MoMA."

I guess I could make my own copy out of kebab skewers.

PS: I structured this entry like the weblog entries in my novel, because I was worried that the style would seem really unnatural in a real weblog. But I think it works okay.

Prime Suspect: More from Walter Jon Williams's The Praxis:

The 313-degree Shaa compass had no zero coordinate, but began instead with one, the odd number left over after factoring the prime number.

I guess that's true. Maybe the Shaa could help Bill Gates factor those large prime numbers.

Apart from prime number weirdness (and species essentialism), this is a really fun book. There was a lot of boring clan politics at the beginning, but it turns out that was setup for an examination of how totally dysfunctional is a society based on clan politics. I often suspect these authors of being secretly enamored of the petty intrigues of clan politics, but it's clearly not the case here.

Insta-update: Before posting this entry I asked Adi about the compass thing. His response:

I don't understand that statement at all. Do the Shaa simply relabel their compass? Instead of using labels of 0,1,...,360, their compass uses the labels 1,2,..,313? (i.e., their compass has a full range of motion, but simply a different scale)

If this is in fact true, then I wonder what additive identity the Shaa have chosen. From the statement you wrote, it seems as though the additive identity is 1... which can't of course be consistent with 1 working as a remainder after division by prime numbers. And the "odd number left over after factoring the prime number" does not make sense to me... Why one would use the multiplicative identity [ie. 1] as an additive identity is beyond me.

Unfortunately, by this point in the book the Shaa are all dead, so we can't ask them, and it's clear that a bad compass is the least element of their legacy of incompetence.

[Comments] (3) Satan vs. Leonard: In the late 90s I did some work on a rock opera called "Porcelain Puppy vs. Demon Dog". On the whole, it was terrible, and I never completed or recorded it, though some of the better songs have shown up in my subsequent albums ("Royal Jelly" is one). But I did record one tiny test skit to satisfy my love of overdubbing my voice with itself, and for some reason put it online.

A few years ago, Katie Bolte, student at the Minneapolis College of Art and Design, found this test skit and liked it enough to animate it. She emailed me about it yesterday. So check it out and relish my humiliation as teenage-me tries to do the voice of Satan in a Saturday morning cartoon. The narrator's overblown description of Cerberus is funny, though.

Original Research: Sumana is planning a trip to the extensive archive of the Museum of Television and Radio, with the goal of resolving a couple nagging pop-culture conundra that can't be resolved by Internet-based means.

Since it costs $25 to get in to the archive, we thought it would be nice to pool conundra. Bothered by something about television or radio history that, if you had access to a huge archive, could be resolved within fifteen minutes? Search the archive index to see if they have what you need to check, and post your comments here or on Sumana's weblog.

[Comments] (1) Star Trek vs. Batman: No need to dream, it's a filmed mashup of the 1960s Star Trek and the 1960s Batman. The Batman writing is pretty decent, but the Star Trek writing is bland and doesn't capture the feel of the series.

: Last week Sumana and I went to the launch party for N.K. Jemisin's epic "The Hundred Thousand Kingdoms". Nora founded the writing group I'm in, and I read and critiqued a draft of the novel just before she sold it. Then she left the writing group and went off to be a famous novelist.

I always have a difficult time at events held in bars, but Sumana is very good at introducing me to people. For instance, I met Saladin Ahmed, who along with Nora was nominated for a Nebula this year. And then comes this SF Signal interview with Saladin, Nora, and many other Nebula nominees. "If your work couldn't have been on the ballot this year, what work would you have liked in its place?" Saladin:

I'd also have been happy to see more two-fisted fun on the ballot. Two of the absolute best stories I read this year were "Zeppelin City" by Michael Swanwick and Eileen Gunn, and "Let Us Now Praise Awesome Dinosaurs" by Leonard Richardson. Both were ridiculously enjoyable and Nebula-worthy to my mind.

I'm encouraged!

Incomprehensible Joke:

S: "I always wondered what would happen if you put a disc in the Wii the wrong way."
L: "It shows a Koopa Troopa on its back."

Work humor:

"I will lock you and [x] in a room for a week to sort this out."
"We would spend that week planning vengeance on you for locking us in a room!"
"The scenario you put forward seems all too plausible."

[Comments] (1) : Tired of finding kitten? In Robot Wants Kitty, kitten is dangled just out of your reach for the whole game. And since there's a power-up early on that makes precision movement pretty much impossible, I never found kitten. On the plus side, hey, it's another robotfindskittenlike game.

[Comments] (2) It's All Fun And Games: Check out REDDER, the psychotropic game with the palindromic name. I'm a big fan of the strange effect that happens as you play, but I won't mention too much to avoid whatever passes for spoilers when it comes to strange gameplay effects.

"Frankly, I do not feel this hatred.": The Israeli fanzine Bli Panika (Don't Panic) has published an awesome Hebrew translation of Let Us Now Praise Awesome Dinosaurs by Ehud Maimon. Google Translate translates the title back into English as "Mention dinosaurs and glory", and Tark and Entippa's names are transliterated Tariq and Antipathy. Pretty fun!

Back when I first heard about this project, I mentioned to editor Rami Shal'heveth that the story's title is a riff on a phrase originally in Hebrew, but he probably already knew that. Actually, no: "Ben-Sira's book is one of those canonical texts that everybody knows of, but nobody reads."

[Comments] (2) The Long Joke: In 2001 my sister Susanna sent me the birthday card you see before you. It said "Whee! You're 3 22!" I thought this was hilarious, and I kept the card.

Then Susanna had a daughter, and I had an idea. Recently Maggie turned three, and I gave my niece the birthday card Susanna had sent me eight years earlier. "Whee! You're 3 22 3!" The payoff was worth it. "I laughed for like 5 minutes," said Susanna.

Recently I was doing a video chat with Susanna and I mentioned:

L: So I'm jogging for an hour every day, and I realized I wasn't doing enough reading, so I decided I also needed to read for half an hour every day. And I also want to devote half an hour to games, though that's not as much of a problem. And I think I should also allocate at least half an hour for writing. But if I keep dividing up my free time like this then my whole life will be...

S: Organized?


: Evan: "You really need to watch Summer School on the original rental VHS. It's like listening to the Beatles on LP."

: Speaking of Evan, he's started a new weblog, walltype, where he curates photos from Flickr that fit his own baroque categorizations. I think it has explodingdog-esque potential.

Speaking of new weblogs by my friends: Pat Rafferty's Raffertyesque. Now you have something to read while you look at Evan's curated pictures.

[Comments] (8) Alternate ETag Validation Functions: Yes, months after driving away everyone who read this weblog hoping I would talk about RESTful topics, here's some REST stuff. This is an idea I got from my co-worker Björn Tillenius. I hope someone else has come up with the same idea and given it a better name.

Here's the problem, on a high level of abstraction. Consider a representation (#1):

<p id="1">Forklift</p>
<p class="read-only" id="2">Green</p>

And let's say the ETag of this representation is the string "x".

According to the protocol governing this media type, you can modify the text in any paragraph unless its class is "read-only". So maybe you can PUT a document like this (#2):

<p id="1">Hovercraft</p>
<p class="read-only" id="2">Green</p>

Or PATCH a document like this (#3):

<p id="1">Hovercraft</p>

OK, that's easy. Now suppose that the read-only text changes randomly according to conditions on the server. Let's say the read-only text suddenly changes from "Green" to "Red". If I were to GET the document again, I'd get this document (#4):

<p id="1">Forklift</p>
<p class="read-only" id="2">Red</p>

And let's say the ETag of this document is "y". If I sent a conditional GET with an If-None-Match of "x", I'd get 200 and a new representation instead of 304 ("Not Modified").

OK, but I don't send a conditional GET. I don't get the document again at all. Instead, I PUT document #2, with an If-Match of "x", and the request fails with 412 ("Precondition Failed"). Maybe it should fail anyway; maybe the server is very strict and thinks I'm trying to change a read-only paragraph from "Red" to "Green", which would probably be 400 ("Bad Request"). But we don't even get to that point because the ETags don't match.

The request also fails with 412 if I PATCH document #3 with an If-Match of "x". But there's nothing really wrong with that request. The point of If-Match in conditional writes is to avoid conflicts with other clients, and there are no other clients here. The ETag is different because a read-only paragraph changed on the server side.

One obvious solution is to calculate the ETag only from the read-write portion of the document. This fixes conditional writes, but it breaks conditional reads. A client that requests document 1 and then makes conditional requests will never get document 4. The ETag is no longer a strong validator (update: actually, it's not any kind of validator); the document might change significantly without the ETag changing. So that's no good.

The solution Björn came up with is to split the ETag into two parts. The first part is derived from the read-only portions of the document, and the second part is derived from the read-write portions. The ETag is a totally opaque string to the client, but the server knows what it means. On a conditional read, the server checks the entire ETag. On a conditional write, the server only checks the second half.

In this example, the ETag for document #1 might be "1.a" and the ETag for document #4 might be "2.a". A conditional GET of document #4 with If-None-Match="1.a" would fail, but a conditional write with If-Match="1.a" would succeed. When the write went through, the document's ETag would change to "2.b", and "1.a" would not be good for either conditional reads or writes.

From the client's perspective everything just works: your conditional read returns 200 iff the representation has changed, and your conditional write returns 412 iff someone else is messing with the resource. But is this okay from a standards perspective? Section 13.3.3 of RFC 2616 says "The only function that the HTTP/1.1 protocol defines on [ETags] is comparison." That doesn't seem to prohibit me from defining another one.

If "x" is a strong validator then so is "1.a", but the new comparison function ignores some of its information about the resource state, effectively treating it as a weak validator (update: or as something that's not a validator at all). Is that okay? Would you believe the following definition of a strong validation function? "In order to be considered equal, the second halves of both validators MUST be identical in every way, and both MUST NOT be weak." (cf 13.3.3 again)

I'm interested in your thoughts on this. Smartass comments like "you should have two resources" will not be dismissed out-of-hand but also will probably not convince me. If you're curious, here's the real-life bug that spawned this thinking.

: More REST stuff, this time outsourced to Martin Fowler. In the embarassingly-titled "Richardson Maturity Model: steps toward the glory of REST", Fowler talks about the maturity model I set out at QCon in 2008, and shows examples of services at the different maturity levels.

[Comments] (1) Tiny Youtube Party: In honor of Bach's birthday, an animation showing how the Crab Canon works.

In honor of awesome things, a 17-minute infomercial for the Univac. (Univac!) They're especially proud of having invented the numeric keypad. Also check out the enormous machine that reads from magnetic tape and writes to punch card, and the equally enormous machine that reads punch cards and writes to magnetic tape.

Camping It Up: Going to try to go camping this spring/summer with Sumana, Beth, and Lucian. Since Sumana has never been camping I thought we might start off with something simple, like camping in Brooklyn. Floyd Bennett Field is an abandoned airport that got turned into a campground. You can camp out in the woods, and you can walk around on the tarmac until that gets boring (probably just a few minutes, honestly). It's like the post-apocalyptic future, but nicer!

I kind of envy Sumana's campingless youth. If this works out, 2010 will be the first year I go camping voluntarily. I always got dragged along with family or church or Cub Scouts.

[Comments] (2) End Of An Era: It used to be that movies would advertise using taglines that made puns on the phrase "kick some ass". A quick IMDB movie tagline search (possibly the coolest specialized search engine ever) reveals "It's time to kick some glass" (Glass House), "Kick some ice" (Blades of Glory), "Time to kick some asteroid" (Armageddon), "Kick some grass" (Shaolin Soccer), "Kick some Ash" (My Name Is Bruce), and "Kick some past" (Hot Tub Time Machine). The two taglines I specifically remembered ("Kick some shell" from a TMNT movie and "Kick some asphalt" from who knows what) turn out not to have been official taglines, but I'm pretty sure I've heard them used in advertising.

See, it's funny because you can't say "ass" on a movie poster. (Dishonorable mention to Slap Shot 3: The Junior League, whose tagline "Get ready for a rough-and-tumble comedy that knows how to kick some serious puck!" is a) as long as the movie itself and b) can only bring itself to make a pun on "butt".) But that fig leaf has fluttered away, because there's a movie coming out called Kick-Ass and they've got a huge subway-visible ad in Queens that doesn't have a tagline at all, just the name of the movie with its three-story "ass".

Now that the taboo has fallen, the only thing standing in the way of an epidemic of the word "ass" on movie posters is the fact that, formally speaking, a tagline has to be a joke, and "kick some ass" isn't a joke. I'm sure they'll figure out a way, though, and when that day comes I'll be waiting and vengeful. It's time to kick some "ass"!

Modern Life:

S: Yes!
L: What is it?!
S: Just navigating this phone tree.
L: Oh.
S: Agent!

: When I have one link to share, it goes on del.icio.us. When I have a lot of links, it goes into NYCB.

And I still have a bunch of stuff in my browser tabs.

[0] I don't usually link to Wikipedia to explain concepts, but the "Shanzhai" entry hasn't been buffed to the personality-free NPOV sheen typical of Wikipedia entries for things like "Forest" and "Giant (mythology)", and itself somehow seems like a good example of the shanzhai spirit, insofar as I understand it.

[Comments] (1) Micro Matzah: Sumana and I went to Beth's Passover Seder yesterday. More about the Seder later, but I wanted to mention this matzah thing. See, I was in charge of making the chicken soup, and I decided to make a lot of small matzah balls instead of ~1 huge matzah ball per person. Because when I get soup at a deli I hate having to carve off a bit of that matzah bolus with every spoonful of soup I eat.

I told Beth about this plan and she said that matzah balls are traditionally made small. You only find huge matzah balls in delis (we decided this was for ease of portioning). I didn't know this because I'd only had matzah ball soup from delis, and from my mother, who'd probably only had it from delis. My crankiness unwittingly led to the fulfillment of tradition. So take a tip from Beth and me: small matzah balls means better soup.

Also, the Hillel sandwich is surprisingly good for something that sounds like a theorem in topology.

[Comments] (2) Crummy.com Podcasts: Sedermasochism Part 1: Beth's Seder was the first one I'd ever attended[0], and it was such an interesting experience I'm editing my recording of the Seder into a series of podcasts. As always, you can download the podcast or subscribe to the crummy.com podcast feed. This episode is rated M for mature, with pervasive suggestive themes, language, and of course alcohol references.

Participating in the Seder were Beth; Lucian; me and Sumana; and three others who wish to be known only by pseudonyms: Colonel Mustard, Professor Plum, and Princess Peach. The atmosphere was really fun; I'll try to convey it to non-Jewish Americans in a Beth-approved analogy. (If you're not American or Canadian, the analogy won't work; substitute Guy Fawkes Day or something, I dunno.)

Imagine being a kid at Thanksgiving. Except that Thanksgiving has a set agenda, a specific set of symbolic appetizers before you get to the meal, and a set of rituals and historical recreations (Pilgrims etc.) that give a consistent shape to your Thanksgiving afternoon, year after year. There are many Thanksgiving books giving different scripts for the recreations, and your parents probably have one specific book that they pull out every year.

Also, you and your family are living on a Mars colony, where most people come from countries that don't celebrate Thanksgiving. So, although Thanksgiving is intended to be celebrated with your close relatives, as a kid you often spend the holiday with lots of people whose closest relationship with your family is that they're also Americans. Lots of cranky old folks arguing about the right way to do Thanksgiving (this is an official part of the ceremony; it symbolizes American democracy), you as a child being forced to go on stage and perform ritual Thanksgiving songs. You as a teenager still stuck at the kids' table because there's no room for you at the grown-ups' table.

Then you grow up and leave home. You can do your own Thanksgiving dinner, you can mix and match from the books to get your own take on the meaning of the holiday, and you can invite your peers to the meal. Since the cranky old people are not present, you are free to swear and make dirty jokes and have the arguments you want to have about the right way to do Thanksgiving. And despite the aggravation of the Thanksgivings of your youth, despite the fact that you may no longer even think of yourself as "American" except by birth, you still have this emotional attachment to the old songs and rituals, and you still want to do things correctly.

And that's what Beth's Seder felt like. If you've never been to a Seder before, listen in to learn why there's an orange on the Seder plate (apparently not the real story), hear how Gul Maror reminds us of the bitterness of the Cardassian occupation, and endure the first of two terrible Passover filks.

More Seder podcasts to follow. I'm basically going through the recording, cutting out awkward pauses, and stopping once I've got an hour of footage. I expect it'll probably be 2.5 hours total, since not much happens during the meal.

[0] We only knew one Jewish family when I was growing up, and my Mormon parents wouldn't have been comfortable at a ceremony centered around getting smashed on wine.

[Comments] (4) Trending Topic: Within the past week I've added books to my wishlist called Designing Design and The Design of Design.

Update: I'm currently reading a translation of De Rerum Natura that calls it The Nature of the Universe[0], and I just received Brian Greene's The Fabric of the Cosmos from Bookmooch.

[0] The correct translation, of course, is On Stuff.

: Yesterday Lucian and I watched both Ghostbusters movies. The first one is still great; the second is an object lesson in how control of a franchise doesn't automatically prevent you from writing bad fanfic. Plus it was very implausible; as though five years after 9/11, New Yorkers were like "What? Planes? Terrorists? That can't happen!"

Sedermasochism Part 2: Yes, the multi-part Passover podcast rises again this fine Easter with an episode covering the rest of the pre-meal Seder, taking us from Lucian demanding to be the wicked son (Beth: "Eh, sure.") to Sumana's first taste of gefilte fish. I'm probably going to cut the whole dinner conversation since it's not Passover-specific, and later this week put up a part 3 that covers the last two glasses of wine. As always, you can subscribe to the crummy.com podcast feed. I'm gonna be writing that sentence for the rest of my life!

Now Appearing: Hey, I gotta tell you about three public appearances I'm making in the near future, breaking my normal Pynchonesque isolation. This Saturday, Sumana and I are going on Jim Freund's "Hour of the Wolf" science fiction radio talk show. At five in the freaking morning. We'll be talking about Thoughtcrime Experiments, I'll read from ...Awesome Dinosaurs a bit, and then there will be a call-in portion. I highly recommend listening/calling in if you're up that early. Maybe you're in town for the MOCCA festival and you can't sleep?

OK, that's in New York. On April 26th I'm going to be in Raleigh giving a paper at the WS-REST subconference of WWW2010. You probably already know if you're going, and I honestly don't recommend buying your own ticket--I had to, and it's damn expensive--but I thought I'd mention it. The true title of my paper is "Developers Like Hypermedia, But They Don't Like Web Browsers"; the title you see on the schedule was camouflage to make my paper look more academic when I submitted it.

And then while I'm in Raleigh, on the 27th I'm talking at the Triangle Zope and Python Users Group. Thanks to my co-workers Gary Poster and Brad Crittenden for setting this up. I'll probably give two mini-talks: I'm planning on "Six Years of Beautiful Soup", then a run through the maturity model heard 'round the world. Then, your questions.

The Only Awesome Choice: Photo of UK billboard from Kevan.

Seems like someone needs a visit from the Kick-your-ass-a-saurus.

: For a school project, Aapo Rantalainen ported robotfindskitten to a robot made of LEGO. In a very steampunk fashion you turn huge dials to move robot.

Crummy.com Podcasts: Sedermasochism Part 3: OK, time to give you the hard sell: this episode of Sedermasochism is like the first two except there's more singing and everyone's more drunk. It picks up with the after-dinner macaroons and continues until the Seder is over and Sumana convinces me to shut off the voice recorder. 33 minutes. Subscribe to the crummy.com podcast feed, why don't you.

Beautiful Soup Two very minor bugfixes in this release. Remember, I'll be giving a talk on (among other things) the history of Beautiful Soup at TriZPUG in Raleigh on the 27th.

Hour Of The Wolf Reminder: Tomorrow at 5 AM Eastern Sumana and I will be on the air on The Hour of the Wolf on WBAI--you can stream and call in, or listen to it later. After a quick timing test today, I can confirm (or at least assert) that I will be reading Let Us Now Praise Awesome Dinosaurs on the air. We'll also be talking a lot about Thoughtcrime Experiments and the process of putting together the anthology.

Reviews of Old Science Fiction Magazines: F&SF 2000/06: RoOSFM returns! Because I was near the end of a huge book (The Structure of the Cosmos, which is great) and didn't want to take it on the subway. Here we go!

There is some quality stuff in this issue, though "The Birthday of the World" by Ursula K. Le Guin and "In Shock" by Joyce Carol Oates (!) both start out slow. I recommend reading the first section of N. Lee Wood's "Three Merry Pranksters at the Louvre" as a non-genre story, and skipping the rest. My favorite story in the magazine was Chris Willrich's "The Thief With Two Deaths"--like a Discworld story written by someone with a completely different sense of humor from Terry Pratchett. The shorter pieces are forgettable, but just in terms of word count, most of the fiction in the magazine is good.

I also think this is the first old SF magazine I've ever reviewed to have good cartoons. By which I generally mean "New Yorker-quality cartoons that were rejected because they were too fantastical for The New Yorker." There's also an amazing cartoon in this issue, one that I think I or Sumana mentioned a while back but couldn't find. Here it is. That's by New Yorker staff cartoonist Tom Cheney--not Dick Cheney, as you might think. Actually three of the four cartoons in this issue are his; I guess he's a cut above.

In his science column Gregory Benford talks un-scientifically about how great Southern California is (which it is), and demonstrates that even talented science fiction writers can't write good science fiction and explicit futurism at the same time. (Why are people going to the mall to buy e-books?) There are some funny Hollywood-lunacy stories a la An Evening With Kevin Smith.

Zeitgeist miscellany: Kathi Maio's movie review column praises every aspect of Galaxy Quest. Charles De Lint's book review column covers In The Beginning... Was The Command Line and mentions "Linux, that outlaw maverick of operating systems". Remember the "Linux doldrums" of June 2000?

From the classifieds:

FREE FANTASY GIFTS CATALOG. Your #1 source for Dragons, Fantasy Figures, Skulls, Lamps, Clocks, Jewelry and much more! Call or write...

I've come to terms with this genre of kitsch--crystal dragons with semiprecious stones for eyes, pewter wizards holding glass orbs. But clocks? Clocks are SCIENCE!

[Comments] (1) : Yesterday Sumana wouldn't cooperate with the interrupting time traveller joke, so I made up this joke that requires only minimal cooperation:

"Knock knock."
"Who's there?"
"Godot who?"

[Comments] (2) Crummy.com Podcasts: Voiceover Apprentice: In today's episode, the crummy.com podcasts sell out and play you commercials. Specifically, a Zenith television commercial from 1978, which we found from our buddy bobtwcatlanta. Live the dream! Subscribe to the RSS feed!

This podcast is less than two minutes long, a sorbet after the huge Seder podcast. Don't-miss links: a sequel to the Zenith ad we discuss. PS: I spent a medium-sized amount of time converting and pasting in the original commercial audio rather than giving you the sound of it playing on our TV, so appreciate it, dammit.

Skin Horse: I have no idea how this happened, but Shaenon Garrity has been putting out a new webcomic for two years and I never heard about it until today. (Thanks, Andrew.)

: There was no NYCB this week because we spent a lot of time apartment hunting (no success) and I've been working on the three talks I need to give next week, and my novel has been catching on metaphorical fire. So, it's "stuff you can't see yet" week here at crummy.com. I will try to do a review of an old Analog this afternoon, but it's gonna be tough because there's a really amazing essay that I don't know if I can do justice.

: When Sumana calls my cell I like to answer the phone with a fake business name. Today I said:

L: Leonard's Apple-Eating Service.
S: What are you doing?
L: I'm eating an apple. I figured I'd try to turn my hobby into a business.

It can't fail!

[Comments] (3) : I spend today on the train to Raleigh, testing the question: "how long does the train ride have to be before I wish I'd taken an airplane instead?" Tomorrow I give my WS-REST talk about surprising ways my web service users responded (or didn't) to my design decisions. On Tuesday, I'm at the Triangle Zope and Python Group trying to cram in two talks: "Six Years of Beautiful Soup" and "How To Recognize Different Types of Web Services from Quite A Long Way Away".

: WS-REST talk went pretty well. Other peoples' talks were also neat. I can tell you more about them when I'm not going to sleep.

I wanted to write down something I thought of about fiction, and what better time than when I'm exausted and delirious. I'm writing the end of the novel, things are coming together, there are so many callbacks to concepts introduced earlier it's not even funny (not that it would be terribly funny if there were fewer). And I get these great epiphanies: one line from character A ties together their main motivation with two of the minor plot threads, and I realize I can build a scene leading up to that incredible line--a scene I need to do anyway because I need a scene between characters A and B. In that scene I can advance the plot entirely through callbacks to earlier in the novel. Remember this piece of technology I've been mentioning throughout, on and off? Character B wants to use it to rectify the injustice perpetrated in chapter N, and it's possible because of what happened for a totally different reason in chapter N-k, but B needs A's help, and thus--conversation!

And I know that the scene is not just using up callbacks; I'm setting up one more callback that will be used in the climax. It feels great and I gotta wonder, do real authors feel this way all the time? I was just messing around, dumping things into the story but so, so much of it is being reused.

(On the downside, in a recent chapter I resolved a subplot in a clattering climax and then my writing group said "Where is this subplot going? When will the payoff arrive?")

: Jaw-jaw is better than war-war, but is Jar-Jar better than war-war?

Train Verdict: A long train ride going away from home is totally fine. A long train ride back home gets a little tiring because I really want to get back home. Still a pretty relaxing way to do reading, work on novel, make WarioWare DIY minigames, etc.

Apartment Hunting Stories: Went to see an apartment. The super took me upstairs. Taped to the door was a summons for the management company. Not gonna take that apartment. (It was too small, anyway.)

[Comments] (1) : When reading about Angevine, the woman horribly Remade with a steam engine and wheels instead of legs in China Miéville's The Scar, all I could think of was Anjean, the crotchety human-locomotive grandma figure from The Legend of Zelda: Spirit Tracks.

I should have read the book first.

[Comments] (5) Coming Soon: Hey, things are happening. We finally found an apartment and signed a lease; we move soonish. Novel work is going amazingly well: I'm going to Utah tomorrow to see my niece and nephew, and depending on how I spent my time on the plane I might be done with the first draft by the time I come back. Then it'll just be a matter of making the first half of the book as awesome as the second half. I've also got audio of my WWW2010 talk and my TriZPUG talks to put up--don't think I've forgotten.

Regular readers of NYCB will know my longstanding interest in World's Fairs. There's a World's Fair going on right now, in Shanghai, but it's called "Shanghai World Expo 2010" so people don't realize it's the freaking World's Fair. Tell your friends!

If you're in New York anytime soon, check out the Japan Society's exhibition of Utagawa Kuniyoshi surreal prints from the mid-1800s that filled the same cultural niche as comic books do today. It's great stuff--if there's not a giant monster in a given print, someone's got a tattoo of a giant monster or is wearing a fabric pattern with a giant monster on it. We went there last week with Camille. And then yesterday we went to Camille's wedding--way to go, Camille! (Camille was one of the three guests at my and Sumana's wedding. Andy and Nandini are still single, but once they get married, we'll have wedding transitive closure! (pedantic note: not really))

Utah Update, and Tourist Kitsch: Maggie and Dalton: still cute. Maggie now recognizes me, and refers to me as "Uncle Leonard", which is nice. (I hope she doesn't think that's my legal name.)

I found out that Maggie like postcards, like her grandfather, so on Sunday after brunch, Evan and I wandered around Manhattan looking for a tourist shop. In retrospect I probably could have bought a Statue of Liberty postcard at the airport, but the last time I decided "I'll just buy this stereotypical souvenir at the airport" (I ♥ NY T-shirt) I got ripped off. And this way I got to see the largest collection of tiny New York-themed snow globes ever. I think they must now be making snow globes that contain less than 3 ounces of liquid.

Also seen at the tourist shop: postcards for other cities like Chicago. Barack Obama kitsch, including a postcard that mashes up the presidential portrait with a picture of the New York skyline. "Barack Obama ♥ NY." I'm sure he does--he went to college here--but... that's kitschy. And for disgruntled right-wingers, the ever-popular politically-themed fake dollar bills.

Stick to (non-mashup) postcards, folks. The classy souvenir. And if you want Barack Obama kitsch, head to Union Square. They're still selling it, and it's more creative than the stuff in the tourist shop.

[Comments] (1) Maggie Melodrama:

Leonard: Here, let me help you out of your car seat.
Maggie: No! Want Mommy!
Susanna: Maggie, Mommy's busy. Let Uncle Leonard help you.
Maggie: Never!

Reviews of Old Science Fiction Magazines: Analog 1989/01: The best thing here is Marc Stiegler's essay "Hypermedia and the Singularity". I've put off reviewing this issue for a long time because I wanted to do this essay justice, but I give up. I'll discuss it later. It's a prediction-filled essay from a dude who would shortly go on to take over development of Xanadu, and it's got lots of Mac Classic illustrations. It's like reading some contemporaneous Analog science article about how space colonies will work, in a future where there are actual space colonies all over the place.

What else we got? Rick Shelley's "To Give Them The Moon" is really fun, action-packed, and fulfills every nerd's fantasy of advancing a primitive society without having to know everything on Ryan's time travel poster. Just general "uh, somehow light is both a particle and a wave" type knowledge is good enough. It's a sequel to January 1988's "The Worlds I Used To Know", so keep a look out for that. Bonus: story includes an ominous alternate-world "Department of Security", the "equivalent of the Defense and Justice departments combined."

What is it with the 1980s and dull medical SF? After reading Timothy Zahn's "I Pray The Lord My Soul To Keep", I'm convinced that Zahn should stick to space opera. A.J. Austin's "The Promise" is another "inequitable social access to advanced medical technology" story--that makes at least four just in this random sampling of magazines I picked up way back when. They're all the same story!

L.A. Taylor's "Testing, 1, 2, 3..." is so 1980s I have no idea what the point of the story is. I've read it three times and it's got something to do with typewriters, but I don't get the joke. I've used a typewriter, folks. (Though, admittedly, only the display typewriter at Office Max back when I was a kid.)

J. Brian Clarke's "The Last Defender" reads disturbingly like a boring story written by me. I won't mention the rest of the fiction, except to express my amazement that Analog published a story (Arlan Andrews's "Indian Summa") in which the final revelation is literally "oh, yes, we did that with magic."

Stan Schmidt has a good editorial casting a Mars mission as a proving ground for techniques of international cooperation. Book reviewer Tom Easton points out that strict scientific accuracy is not Rudy Rucker's strong suit (Wetware). Letters column has some fun nitpicking-rebuttal involving big-O notation.

This is the issue where the unhelpful Analog story blurbs descend into nonsense: "What do you do when you know achieved something you could have that you haven't?" ([sic] throughout) I dunno, maybe Miss Manners would know what to do? If you're curious, here's the blurb for "Testing, 1, 2, 3...": "An important part of research and development is testing--and when the systems being tested get sophisticated enough, the methods may become a bit strange!" No kidding!!

Here's the photo gallery, featuring many crazy ads and one awesome piece of spot art. I could commission an entire anthology themed around that drawing and every piece would be awesome.

I just had brunch with Evan and his dad; the elder Baer has somehow acquired a double subscription to Analog, and gave me some of his extras. I've now got the June 2010 and the July/August 2010 issues to review. Yes, that's how cutting-edge is the science fiction in Analog. They're publishing two months into the future, not just one month like other magazines.

BTW, here's a story blurb from the July/August issue: "The ways a tool was designed to be used are not the only ways it can be used...." This sort of thing has been going on for over twenty years! (I'm apparently determined to reduce the already infinitesimal probability that I'll ever be published in Analog.)

[Comments] (1) Ghostbusters:

"Hey, I'm from the EPA. We heard you were running a nuclear reactor in this building."
"Yes, that's right, an experimental breeder reactor."
"Are you nuts? You can't operate a nuclear reactor in Manhattan! What if it melts down? We're here to force you to shut it down right now!"
"You can't just shut down a nuclear reactor! You'll cause a meltdown!"
"Too bad! Shuttin' it down!"

Every time I see Ghostbusters I think, this is the most idiot-y Idiot Plot scene ever.

[Update for those who haven't seen Ghostbusters: this is not a direct quote from one of the scenes, but an analogous scene I wrote to throw the idiocy into relief by removing the paranormal element.]

[Comments] (1) No Fish On Mars: Cool planet, Mars. But does it harbor life? Maybe! Early in its history, Mars had lots of liquid water, and you know what happened when Earth had lots of liquid water--complex multicellular life!

Obviously it's unlikely that complex life is still hanging around Mars, what with the UV and the thin atmosphere and lack of water and everything. But when I put some numbers together in a back-of-the-envelope way, I discovered it's also very unlikely that Mars ever supported multicellular life of any kind, even if you stipulate life on Mars and spot the planet some serious handicaps.

I'm going to show you one of those compressed timelines from the formation of the solar system to the present day. I tried to do a graphic representation, but I screwed it up, and graphs tend to give an impression that your numbers are precise, so here's a textual representation. Below is the text of five items from my Twitter feed. The five tweets and spaces between them add up to 454 characters. As it happens, Earth and Mars are both about 4,540 million years old. So consider each character of this text as representing 10 million years.

One extra wave of sinking nausea per news medium, but I suppose "physical newspaper front page" must be the last of it now.|I didn't get where I am today by having Irish labourers promoted over my head.|beautiful scrambled neologisms from spam today: trfiedy, hdunddrend, asbthma, mevdicinxes, onex, effzective, preventinon, jof|@danielsolis I salute your hair, sir.|Happy birthday @jong, with Milo Murgia and Amy Pond among my alltime favourite gingers!

It is only a matter of time before Twitter-based textual representations are used to bring all cosmic time scales into perspective. "If the history of life were represented as a tweet, all of mankind's achivements would be cut off when it was retweeted."

OK, check it out. Here's the same text, with formatting added to point out important points in the history of life.

One extra wave of sinking nausea per news medium, but I suppose "physical newspaper front page" must be the last of it now.|I didn't get where I am today by having Irish labourers promoted over my head.|beautiful scrambled neologisms from spam today: trfiedy, hdunddrend, asbthma, mevdicinxes, onex, effzective, preventinon, jof|@danielsolis I salute your hair, sir.|Happy birthday @jong, with Milo Murgia and Amy Pond among my alltime favourite gingers!

Planet formation takes about ten characters, up to the space after "One extra". After that point, both Earth and Mars have liquid water. Earth still has water today, but Mars loses its water somewhere around the word "be". Mars has liquid water for about a billion years, the duration of the underlined text from "wave" to "be".

What happened on Earth from "wave" to "be"? Not much! If you really want to suppose an early origin of life on Earth, you could say it started between "physical" and "newspaper" (italicized), but a more conservative estimate is that it started around "must be the"--right around the time Mars stopped supporting life. And if you demand fossils of the organisms themselves, life on Earth didn't begin until somewhere around "today by having".

How about complex life? Eukaryotes show up around "trfiedy". Multicellular life shows up around "asbthma". If you want some cool complex life like the Ediacaran fauna, you need to wait until "Milo". And even those aren't vertebrates.

Mars may have had enough time to evolve life before its oceans disappeared. And once you have life, it's tough to kill it off. But there wasn't enough time for multicellular life to evolve. Multicellular life is really difficult. And although the discovery of single-celled Martian life unrelated to Earth life would probably be the biggest discovery in human history, alien bacteria are not as cool as alien fish.

Obviously this is really imprecise. But no amount of fudging will put multicellular life in the Martian oceans, unless you can explain why Mars got multicellular life in less than 1 billion years when Earth took three times as long. In a work of fiction (such as the one for which I did this research) you might flex your artistic license and give Mars some tube worms or something, but I don't think fish are realistic.

Here's one complication I didn't mention: around "I suppose" there seems to have been an period called the Late Heavy Bombardment, during which there were a lot of impacts on the inner planets. The interesting thing is that the LHB immediately precedes "physical newspaper", which you'll recall contains the first tenative evidence of life on Earth. So, maybe life comes into being immediately (in geologic terms) whenever conditions are right. Maybe the LHB hit the reset button on Earth life, but spared Mars for some reason. Or maybe the LHB brought life to Earth from Mars! Either scenario would give Mars a 50-character head start. That's a lot, but still not enough for fish.

Another possibility is that the evolution of multicellular life is a freak accident which can happen at any time. It took a really long time to happen on Earth, but it happened right away on Mars. I think this is really unlikely. First, Earth has a much bigger surface area than Mars, so the freak accident should have happend on Earth first. Second, I doubt the whole "freak accident" idea. Prokaryotic life didn't spend billions of years sitting around doing nothing. It was evolving really rapidly through brief generations and horizontal gene transfer, creating the machinery that would eventually be co-opted to combine organisms into multicellular colonies.

: If you for whatever reason passed over Susan McCarthy's animal behavior weblog the last time I mentioned it, maybe this cartoon from a recent entry will convince you to subscribe.

[Comments] (3) Better Broadband?: Is there an ISP in New York that gives any advantage (price, performance, service, privacy) over the big oligopolists? I hear Speakeasy used to be good, but then they were acquired by Best Buy, which seems like the single most efficient way to ruin something. Is it still good? Any other options? Astroturfers welcome!

[Comments] (1) : I am Gell-Man! The only superhero with the awesome power of Murray Gell-Mann!

The Power of Autosuggestion: Tonight's episode: why aren't

A surprisingly varied list.

301 Moved Permanently:


[Comments] (3) Excess Capacity: Sooo close to having a completed draft of this novel. Writing it has been a humbling experience, as I often find myself criticizing someone else's work when I suddenly perceive the same flaw in myself.

For instance, recently people in my feed reader started writing about Lost. This has happened on and off for a few years and I always tuned it out, but this time the chatter didn't go away, and soon enough I learned that the series finale was approaching. Now, I don't own a TV, since I have more important things to--no, just kidding. I do own a TV, and I even watch a couple shows. But I've only seen one episode of Lost (the Allison Janney one, which I saw in Utah with Susanna and John).

When the show started, I didn't watch because it sounded like a boring soap opera. Over the years I heard faraway rumors of fantastic and science fictional elements being added to the show's world, but it never really stuck with me. When I saw JJ Abrams do something nerdy like guest-edit an issue of Wired or get hired to direct the Star Trek reboot, I'd think: wow, what a weird choice, like: "You know who would be great for this? The guy who created House, M.D.! He's busy? Okay, we'll settle for Lost!"

But recently things heated up. The tor.com weblog started doing a Lost roundtable every week, and a lot of people whose weblogs I read turned out to be Lost fans who'd simply been waiting until the end was in sight to post about it. Within the space of a couple weeks, the show's cred was hugely enhanced in my eyes. The Allison Janney episode was lackluster, but every show has bad episodes. I found myself eager to vicariously experience everyone's reaction to the finale.

And then the finale happened and the excited people in my feed reader became really disappointed. Not Battlestar Galactica disappointed, but pretty bad. Disappointed because almost none of the fantastic or science fictional elements introduced into the show had amounted to a hill of magic nanobeans. In terms of closure, it could have just been a regular soap opera.

Except, wait, why am I saying "soap opera"? That's kind of a disparaging term, but it's exactly how I was thinking of my novel: a story about more-or-less ordinary people who have weird interrelationships and complicated backstories. And achieving any kind of closure in a soap opera is nothing to sneeze at, since soap operas, like life, are not designed with stopping points.

But given that a show is gonna end, generally better to pay off any outstanding plot-loans. I went to a fan wiki to check out these fantastical elements that didn't participate in the closure. Honestly, I was blown away. There is some great, evocative stuff here, especially in the DHARMA Initiative region. I was sold on the cheesy orientation films alone. If you dig deeper into the worldbuilding it decoheres, the same way the Star Trek movie makes less sense the more you think about it, but that's television SF for you. The worldbuilding was entertaining enough to get me to spend an hour browsing a fan wiki for a show I've only seen once.

But yeah, what happened to this stuff? In fantastic fiction the constructed world is a character. In Lost it's the most interesting character by far. And that character didn't get any closure. If you're Stanislaw Lem you can get away with this--I don't have a pressing need to know what "really" happened on the Lost-esque planet in "Eden". But you're not Stanislaw Lem.

But I can't stop there anymore, because I now see the same flaw in myself. My novel contains elements that advance characterization or plot within the context of a specific chapter, but which someone looking at a wiki page afterwards might say "Why didn't that go anywhere?" Well, it didn't go anywhere because it was a flashlight designed to illuminate something else. That's just a technique I use to avoid infodumps. But what if this whole time you thought the flashlight was a gun I'd carefully placed on the mantelpiece?

I'm pretty happy with the ending I'm writing. It won't be perfect, but I'll get better with practice. I hope I'll stay happy with it, but the more I complain about other peoples' work, the more problems I see in my own. Moral: stop complaining??

: Eye doctor, trying to jam something into my eye: "C'mon, keep your eye open, it's not a puff." That puff has a hell of a bad reputation!

Update: I was sitting in the office wondering if anyone actually calls doctors "Doc", and then someone walked by and said "Hey, Doc." So, there are people who do that.

[Comments] (2) : I'm mesmerized by this Dali-esque landscape of inappropriately scaled Honeywell products from the 1950s.

Man Bites Dog: Now Fun!: Kevan and Holly are here! They brought Sumana and me some games as gifts, including Man Bites Dog, a deck of cards with common New York Post-style headline words like "FEDS", "CROOKED", and "BLASTS". There are also some rules for a game, but upon reading the rules we came to the same conclusion as Board Game Geek reviewers ("it is totally about luck", mean rating 4.74 out of 10). Instead of playing, we started experimenting to try to make a more fun game using the same cards. Here's what we eventually came up with.

Everyone gets five cards, and when you play a card you draw back up to five. Everyone scans their hand looking for a word that can be a headline all by itself, like "HERO" or "TERROR". If you've got one, play it in the center of the board. If no one has one, exchange cards until someone does.

Your goal is to make magic squares of headlines: an NxN grid of headlines that can be read either horizontally or vertically. You start off with a 1x1 magic square:


Now play proceeds clockwise from whoever played the first card. Play three additional cards around the first one to make a 2x2 magic square:


Now you've got four front-page Post headlines: "HERO COP", about a heroic cop, "DRUGS CRAZY", about someone who really likes drugs, "HERO DRUGS", about new lifesaving drugs, and "COP CRAZY", which might be about a crazy cop or about someone who's crazy for cops.

Now do it again. Build around two of the edges to make a 3x3 magic square. You're free to play a card on top of a card already played if you really need to get rid of a problematic word, but in general you should just fill in the two new edges. Here's a 3x3 square I made up--you can see there are now nine headlines.


That's "Attacks Rare: Czar", clearly some kind of Homeland Security thing. I don't recommend playing to ensure the diagonals also work, but you can often find something fun by reading them, like "INDICTED DRUGS CZAR" in this case.

Fill in another two edges to get a 4x4 magic square, and then another two to get a 5x5 square. You've won! Laugh and learn. There is no way and no reason to keep score.

The fun of newspaper headlines, as longtime readers of either this weblog or Language Log know, stems from the fact that they've given up the short words that let you figure out what the longer words mean. In a crossword puzzle, a letter can be used in two different words. By making a crossword puzzle out of headline words, a word can be in two different headlines and pleasingly mean different things each time.

We tried a number of crossword variations, but we liked the magic square version the best. At every stage you end up with valid headlines, and the headlines grow over the course of the game, from "HERO" to "HERO COP" to "INDICTED HERO COP" to "INDICTED HERO COP NAKED" to "INDICTED HERO COP NAKED AGAIN". At the end you have a compact mass of silliness.

So, that's our variant. You can make your own MBD deck by picking nouns and verbs from actual headlines, a process that if automated would keep the game fresh and topical. I would also really like to see a magic square made from four or five real headlines.

[Comments] (8) 100% Completion: The first draft of my novel is complete! At 91,500 words, it's five times longer than the longest fiction I'd written up to this point. Now that I've finished a draft, I can tell you the name of the story without feeling like that'll jinx it: it's called Constellation Games.

ACK!: Sumana showed me ACK!, a fun web comic that brings the Amar Chitra Katha drawing style into the present day. "Yo, I was huge in the Mahabharata!" It's like a Sumana-friendly "Space Ghost: Coast to Coast". Humor value for those who haven't read ACK comics? TOTALLY UNKNOWN.

The Joy of Being Sick:

Leonard: [burp]
Sumana: Wow, that sounded like Skype booting up.

[Comments] (5) Roy's Postcards Anniversary: A year ago on Father's Day I launched Roy's Postcards, a project to transcribe and comment on the >1000 postcards in my late father's collection. This weekend I'm sick, for the first time in quite a while, and it turns out to be the perfect mental state to type up transcriptions and do menial tasks in the GIMP. So I topped up the backlog with another 100 postcards. And since today is Father's Day, you get an AWESOME BONUS POSTCARD: Hobbiton in Northern California!

Stats update: there are now almost 400 postcards in the Roy's Postcards archive, 250 in the backlog, and 550 still to be typed up. Beyond that, since starting this project Susanna sent me 175 postcards our father sent her, and in a masterful display of parental non-favoritism, I've got almost exactly the same number of postcards for Rachel. With my sisters' postcards added in, this project can go on a whole year longer than I originally planned. So it's like I'm launching it today!

[Comments] (1) How To Recognize Different Types of Web Service From Quite A Long Way Away: As I emerge from the swamp of sickness, I bring you free stuff on the Internet. Today, it's a record of one of the two talks I gave at TriPZUG back in April when I went to North Carolina for WWW2010. The other talk, and my WWW2010 talk itself, will be forthcoming.

This talk is a quick exegesis of the "Richardson Maturity Model" for web services. If you want to get into it you can see the slides and hear the (slightly edited) recording. If you just want the stuff from my talk that's not in other, similar, discussions, here it is:

First, a clarification: some people think the Richardson Maturity Model is named after me, but that would violate Stigler's Law of Eponymy. It's actually named after my father.

Second: for this talk I identified three really simple questions you can ask to determine where a web service sits on the RMM:

  1. Is there more than one URI?
  2. Do URIs designate specific things? (As opposed to invoking actions.)
  3. Are there any links?

Third, something I mention on the main talk page but that I'd like to give more exposure here and get feedback on. After the talk I got dinged by a friend for not giving a good enough response to this question in the Q&A:

"We've been pounded with REST for the past ten years, and no one has come up with a standard besides 'HTML' or 'XML', ad nauseum. Do you see any resolution to that coming?"

What I said in response to that question was technically accurate, but I didn't provide any advice. Here's my advice. You want a good default choice that can settle arguments and save you from having to make all the design decisions yourself? There is a standard: AtomPub. Take whatever you're trying to do and make it fit the AtomPub paradigm. Not only will your design be RESTful, your service will fit into a preexisting ecosystem.

If you think AtomPub won't work with what you're trying to do, you're probably wrong. Google, for instance, publishes web services for many very different applications (spreadsheet, calendar, map, etc. — basically anything that gets pluralized and has "Google" slapped on the front), and they're all based on AtomPub. You might find a better fit with your problem space if you did a RESTful design from scratch, but that's the nature of standards.


The Network Is The Computer Wore Tennis Shoes: In my quest for the pop culture origins of the Internet, I bought a used copy of the 1969 Disney movie The Computer Wore Tennis Shoes, starring Kurt Russell. Why? Basically because Wikipedia listed it under "The ARPANET in film and other media". This got me pretty excited.

It's a little far-fetched to expect an ARPANET reference in a kids' movie released almost immediately after the ARPANET was created, but the movie does take place at a college, and I figured it was possible someone had gone to Stanford, talked to some computer people to see "what's up with computers these days", and gotten the phrase "Interface Message Processor" or something to use as a bit of set dressing.

After all, moviemakers today routinely employ science advisors to tell them that what happens in the screenplay is impossible because it violates the second law of thermodynamics; the moviemakers then decline to totally rewrite their screenplay and instead add a little scene of someone shouting "We need more thermodynamics!" I wasn't expecting accuracy, but I was hoping for a throwaway reference on a chalkboard.

But, in point of fact, Wikipedia is wrong: this movie contains absolutely no references to the ARPANET. [0] In fact, it barely contains any computer. The computer breaks about fifteen minutes in, Kurt Russell gives himself superpowers trying to fix it, and we never see it operational again. The rest of the movie focuses on Kurt Russell's new computer-like ability to scan and regurgitate a wide variety of data.

In an accidentally realistic twist, the Russell character's powers don't make him any smarter—there's no question of using him to solve the world's problems—he just knows a lot of facts. (He's also good with languages, and there's one line that claims he's solved the Chinese Room, but they don't go anywhere with this. They show him going to the UN and palling around with all the delegates, but it's not like they're asking him for advice.)

The movie also deals in an antiseptic Walt Disney way with topics like student demonstrations (misleadingly played up on the movie poster), but it all takes second place to the dean's rivalry with the dean of the nearby state college, a numbers game run by the always-enjoyable Cesar Romero, and the use of a superhuman with the powers of Wikipedia to win a trivia quiz show.

Why would someone watch this movie and think it had some reference to the ARPANET? I have no idea. I find it likely that this movie was copied into the Wikipedia entry from a more general list of old movies about computers, like this one. In the movie there's one computer component that superficially resembles an IMP, but 1) it's not an IMP, and 2) the H316 hardware used in the IMP was also used in other minicomputers, including the incorrectly-maligned Kitchen Computer, so even spotting something that looks like an IMP proves nothing.

Someone with more hardware knowledge might know what computer was used as a prop in the movie, if it's a real computer at all. Judging from glimpses of the labels on buttons, I think it's a mishmash of equipment from the early 60s that was stripped and rewired to blink randomly.

I did find one interesting bit of window-dressing: at 10:30 there's a partial shot of what looks like a cheat sheet for a computer's instruction set or operating system. It's called "POS", the instructions are divided into a "Physical Level" and a "Logical Level", and they include "EXCP", "WAIT", "OPEN FILE", "CLOSE FILE", "GET FILE", and "PUT FILE"--all of those take an argument (?) "CCB-NAME". Since the ISO networking stack has a "physical layer", it's possible someone glimpsed this card, thought "Aha! The Internet!" and rushed to Wikipedia or whatever source Wikipedia is based on. That's the best I can come up with.

If I may damn with faint praise, the first fifteen minutes of the movie are fun. The opening credits are great, with a corny sitcom-theme-style opening song (which describes a much better movie) and visuals that combine colorful 60s geometric design with computer imagery like punch card chads and reel-to-reel tape.

The first scene features a professor played by William Schallert (who'd just played the Federation bureaucrat in "The Trouble with Tribbles") trying to convince the antediluvian dean that dropping $10k on a computer (about $60k in today's money) would be a great investment for the school.

Meanwhile the loveable, nonthreatening youth of the college are eavesdropping on this conversation via transitor radio, and check this out--Kurt Russell is eighteen years old when they're filming this movie. The other kids are in their early twenties. I've been watching all these old B-movies that cast twenty-four-year-olds as high school students, and by comparison these college-age kids look too young to be in college! It's insanity.

Anyway, the kids convince local businessman Cesar Romero to donate an old computer to the college, he does so (apparently without wiping the tapes he's been using to computerize his numbers racket), there's a great scene where they set up the enormous computer, and then an interesting scene where the computer's capabilities are demonstrated (pretty realistic, by the standards of the rest of the movie). In a very strange twist, the computer breaks when the professor tries to get it to run a twenty-year-old program off a tape. (That would be a program from 1950--like a friggin' UNIVAC program or something. Supposedly this computer's twenty years old.) That's pretty much the end of the good part.

Of all the movie's inaccuracies, the worst comes at the end, when the guy who was in "The Trouble With Tribbles" reenacts the first scene with the dean, except instead of a computer, he's trying to get the dean to drop a few grand on another technological wonder, the electroheliospectrograph. Apparently computers are just a fad for this guy. Kurt Russell reprised his bland college-student character in two sequels, which employ more traditional SF gimmicks like invisibility potions and strength serums. If I'd been in charge I would have made a new stupid college computer teen comedy every few years as a kind of marker to track society's feelings towards computers through the 70s and 80s.

I watched the movie with Pat, 1) to make watching a bad old movie bearable, 2) to have another pair of eyes looking for ARPANET references. Pat's opinion: "They should do a sequel starring Kurt Russell as he is now."

The movie was remade with Kirk Cameron in 1995, and it's possible that movie is the one with the reference to the Internet, but I'm not really interested in something that late.

[0] I got a used DVD of the movie, and there were a few seconds of skipped video. It's possible the elusive ARPANET reference was in there. It's very very unlikely.

The Update Wore Tennis Shoes: Oh, I forgot to mention this in my review: a scene in The Computer Wore Tennis Shoes features the art of Marcel Duchamp. There's a gag where a few of the boys squint at Nude Descending a Staircase for a while before deciding it doesn't appeal to their prurient interest.

[Comments] (3) Fourth of July Party Pun:

"Can I take your bowl?"
"No, I'm going to eat more in it."
"Are you British?"

Useless graph:

[Comments] (4) : Remember a couple weeks ago when I was sick? That never really went away. Fortunately, I'm now on a different course of antibiotics, I'm lying around on the couch instead of trying to do work, and feeling all right.

I'm also thirty-one years old today. In order to feel less old I'm reading Time's Arrow, Time's Cycle by Steven Jay Gould (one of only a couple of his books I haven't read). Afterwords I'll do some novel revisions, assuming that doesn't seem too much like "work". I also shaved my beard. This is Leonard's exciting life!!!

[Comments] (4) : I'm in Prague! Bet you didn't expect that! It's for work, but I have today to look around. The subway system is great!

Reviewed!: Locus has a review of the Retro Spec anthology (out in September), including a tiny spoiler-filled review of my story, "The Day Alan Turing Came Out".

: I did my impression of Richard Ayoade. Sumana said it sounded more like Robin Leach. I believe this merely demonstrates that their voices are more similar than you might have thought.

[Comments] (2) : Where's my book on the Fermi Paradox?

[Comments] (5) Name That (This) Game: While writing a new scene for Constellation Games I came up a game that's like strip poker, except that instead of taking off your clothes when you lose a hand, you replace your clothes with opposite-gendered clothes. The current name of the game is "Cross-Dressing Antistrip Poker". I'm trying to think of a name that's closer to the "Texas Hold 'Em" part of the spectrum--something that alludes to what makes this game special but focuses more on color than on flat descriptiveness. Ideas?

(It's possible that Cross-Dressing Antistrip Poker already exists and has a good name, but on the Internet as it exists now, it's not possible to find reliable information on such things.)

[Comments] (1) : This weblog has been silent because I was in India attending Sumana's father's funeral. I have some stuff to say about the people I met there, etc. but I'm going to think about it for a little while longer.

I want to briefly mention a weird thing I came home to. Although I don't use Twitter, I do occasionally search for people who link to my site in their Twitter feeds. Usually they're linking to Beautiful Soup. Today I saw a typical example:

Rubyist, pythonista or even php fan. We can all love http://bit.ly/7aRD8T amazing parser library #beautifulsoup

The atypical part was that this was from Paula Deen's Twitter feed. Paula Deen has a show on the Food Network, and I associate her with making food out of butter and hanging out with Jimmy Carter. I could see her tweeting about beautiful soup, but not Beautiful Soup.

I guess what happened is that, like many celebrities, Deen has a tech person who posts on her behalf, and the tech person forgot to sign out as Paula_Deen before posting to what they thought would be their own Twitter feed. The rogue tweet alarmed some people (example), and has been removed, but this follow-up that refers to Deen in the third person bolsters the "tech person" theory:

Paula hasn't gone techy, she's off today but getting ready to head to Alaska for a working vacation.

Paula Deen's tech person, I'm glad you like Beautiful Soup, and everyone makes embarrassing mistakes, so don't feel bad.

[Comments] (1) Purchase Order Equivalent: Before I left for India, someone emailed me with a random REST question. Yesterday, they re-sent the email with a kind of rude preface that implied I have some sort of SLA for answering peoples' random REST questions. Which I don't! I'm a private citizen who's free to answer a given email whenever I want, or even to never get around to it—the same right I allow the Internet pseudo-celebrities to whom I send email.

So I was kind of cheesed off at this person, but frankly the rudeness worked—I answered the question just to get them out of my hair. The question is, how do you make the creation of a new resource an idempotent operation? Imagine a factory resource that you POST to to create something new. Typically, if you send the same POST request twice, you'll get two new resources. How do you make it so that the first request creates a new resource and the second request fails?

The short answer is to use POST Once Exactly. I mention POE in the REST book, but POE never made it out of the Internet-Draft stage, and I can't even find the Internet-Draft at Mark Nottingham's site anymore. Besides which, the email message described something similar to POE as an option, but wanted something simpler. So here's something simpler, for some value of "simpler".

When you buy (eg.) computer hardware from NewEgg, they give you a space for a "purchase order" along with shipping address etc. This is for use when you're buying stuff in a commercial context. You can put whatever you want in that space. The purchase order is a key into your company's purchasing system. It's meaningless to NewEgg.

Newegg doesn't use the purchase order for anything, they just put it on the invoice for your convenience. But in theory, they could keep track of the purchase orders you've used. Since they know which orders are yours, when you place a new order the site can run a quick check to see if you've used that purchase order before. If you have, they can stop the purchase from going through, since you're probably trying to process the same purchase request twice.

So the simpler solution is. You're defining the media type or the form describing what the client is supposed to POST to the factory. Include a slot for a "purchase order". This is a random string chosen by the client whose only purpose is to uniquely identify a resource to be created. On the server side, reject a POST request that uses a purchase order already used by this client ("this client" distinguished from other clients by the authentication credentials). Now the POST request is idempotent: sending it 10 times is the same as sending it once.

I call this strategy "Purchase Order Equivalent", or POE. Thoughts?

[Comments] (4) Bully For Torosaurus: While I was gone there was an online flurry of interest about a paper in the Journal of Vertebrate Paleontology, "Torosaurus Marsh, 1891, is Triceratops Marsh, 1889 (Ceratopsidae: Chasmosaurinae): synonymy through ontogeny". The general tenor of this discussion is conveyed by this Daily Mail headline: "Triceratops 'never really existed but was just a young version of another dinosaur'". And the larger implication is conveyed by this guest post to Kottke, classifying Triceratops with Brontosaurus and Pluto as an instance of science cruely taking away a beloved childhood icon.

First off, the Daily Mail headline is inaccurate. (Shocking, I know.) It should be "Torosaurus 'never really existed but was just a mature version of another dinosaur'." Why? Look at the dates. The first Triceratops was discovered in 1899, and Torosaurus was discovered two years later. When two species turn out to be the same, the earlier name takes precedence; that's why Brontosaurus became Apatosaurus and not vice versa. The name of the paper is "Torosaurus is Triceratops", not "Triceratops is Torosaurus". So whatever happens, the name Triceratops stays.

But it is just a name. There's not some platonic form of Triceratops that can be taken away from you. Nothing changed about the universe. Pluto is still out there and these animals did exist. But we come up with abstractions like "planet" and "Triceratops" to help us manage the complexity of the universe, and abstractions are always leaky.

All three of the incidents in that Kottke guest post have this in common: you learned to give a name to something, and then the people responsible for names changed the name on you. Here's a 1989 New York Times editorial quoted by Steven Jay Gould in the title essay of Bully for Brontosaurus:

The Postal Service has taken heavy flak for mislabeling its new 25-cent dinosaur stamp, a drawing of a pair of dinosaurs captioned ''Brontosaurus.'' Furious purists point out that the ''brontosaurus'' is now properly called ''apatosaurus.'' They accuse the stamp's authors of fostering scientific illiteracy, and want the stamps recalled.

Apparently there was backlash against this, even though Brontosaurus was formally retired in 1903, so there's no reason except pop culture that anyone in 2010 (or even 1989) should even remember the name "brontosaurus". And people got really angry about the redefinition of "planet" to exclude Pluto. But if scientists made some discovery that shattered our preconceptions, like discovering that Triceratops was a carnivore or that Pluto is actually the size of Jupiter, no one would be angry. There'd be no one to be angry at.

People get angry when they see the social constructs of science being refactored to be simpler. It looks like the scientists are cheating, because the refactoring has no basis in physical reality. But the constructs themselves—"planet" and "species"—are just tools we came up with to make thinking easier. This is why two species can be discovered to be the same species, and why the name of the combined species is chosen according to arbitrary rules. The rules are all there are.

Incidentally, you know how the Apatosaurus/Brontosaurus thing happened? Well, in 1877 A.O. Marsh described Apatosaurus in a "typically rushed note" (Gould), and then two years later he described Brontosaurus. As I mentioned, the distinction lasted until 1903. Quoting Gould again:

When [Elmer] Riggs restudied Apatosaurus and Brontosaurus, he recognized them as two versions of the same creature, with Apatosaurus as a more juvenile specimen. No big deal; it happens all the time.

That's exactly what happened with Triceratops! A.O. Marsh really loves taking credit for discovering species. He describes some juvenile specimens as Species A, and two years later some more mature specimens as Species B. Still later, some other paleontologists restudy the specimens and call him on it. Same story both times. It's just that in the case of Apatosaurus it took about twenty years, and in the case of Triceratops it took a hundred and thirty.

At the Museum of the Rockies there's a line of Triceratops skulls from juvenile to adult. Jack Horner, one of the authors of this paper, is the paleontology curator at the MotR and probably worked on that exhibit. I wonder if there was some moment where Horner looked at that line of skulls and thought "Maybe that should keep going..."

[Comments] (1) : On the plane back to New York I watched The Good, The Bad, And The Ugly. It was listed in the in-flight entertainment system as "Good, The Bad, And The Ugly, The." They should have gone all the way and called it "Good, Bad, Ugly, The The And The."

: Hey there. I've been writing a whole lot, but it's all been work on Constellation Games. None for immediate consumption by you. It's a really strange feeling—now that I'm no longer worried that I'll flake out before reaching the end of the novel, I can really concentrate on flexing my dramaturgical powers, bending reality to my will for the sake of a smoother narrative.

It's a mixed bag. I like slipping in a new scene where there was no scene before—the secret history of the second draft!—and I really like fleshing out a sparse exposition-heavy scene into a full drama with characters and dialogue and jokes. But I really don't like when the thing I need to say next is scattered across three chapters throughout the book, three chapters that are ultimately pointless because they don't significantly advance the plot. Such that I have to come up with a brand new framework and then snip off bits from those three chapters to decorate my tree, discarding everything else.

But, once I finish this bit, the revision will be about one-quarter done. And once we get to the halfway mark, we'll see about finally making it possible for you to start reading this sucker...

Bonus link: REST Fest 2010. I don't think I'll be going, but it looks cool.

[Comments] (1) : Susanna told me about Contemporary Masters, a big installation piece at the Salt Lake Art Center that's a playable miniature golf course inside the gallery. Awesome! Here are pictures of Susanna, John, and the kids playing the courses.

Retro Spec Now Available: Retro Spec, the 20th-century-themed specfic anthology, is now available for purchase! (Amazon, B&N)

This anthology includes my short story "The Day Alan Turing Came Out", which Locus described as "A moving vision from a happier world." This is probably the only time anyone will ever describe my fiction that way, so act now.

[Comments] (4) Pac-Man vs. Fever: After Sumana bought the Wii for our household, breaking my long sojourn away from the world of closed-source video games, I did some catch-up work. I looked online to see which Gamecube games people had really liked, and bought a bunch of used games cheaply. My research was cursory, involving the application of simple heuristics like "are the words in this top-ten list spelled correctly?" and "is this not a one-on-one fighting game?"

Which is how I ended up buying Pac-Man vs. (heuristic: a Pac-Man game designed by Shigeru Miyamoto?!?!!) before learning about its draconian hardware requirements. It's best as a four-player game, so you need four controllers. But only three of those controllers are Gamecube controllers. The fourth controller is another computer: a Game Boy Advance connected to the Gamecube (or, in this case, the Wii) with a special cable.

So that's a) a Game Boy Advance, b) a special cable, c) three Gamecube controllers (I had one), d) three other people nerdy enough to put up with all this for the sake of a Pac-Man game.

OK, it's just a game, I'm out five dollars, no big deal. (The disc I got is actually the bonus pack-in bundled with Pac-Man World 2, a game so awful that its main purpose in life is to drive down prices of the bundle for people who want Pac-Man vs..) But then I met Pat Rafferty. One day Pat was browsing through my Gamecube games looking for stuff to borrow and never give back. When he saw Pac-Man vs. he mentioned that he had played it, and that it had been one of the greatest gaming experiences of his life. What's more, at his parents' house in upstate New York he had a Game Boy Advance and the connecting cable.

I treated allegations of these "parents" who had exactly the now-obsolete hardware necessary to play Pac-Man vs. with the kind of skepticism I usually reserve for supposed Canadian girlfriends (and the supposed American girlfriends of my Canadian friends). I mean, if Lake Ontario had formed a little to the south, upstate New York would be Canada. Why wouldn't Pat show me his birth certificate?

It didn't help when after Pat's next visit to his "parents' house" he conveniently "forgot" to bring back the goods. But, recently, he reported that he'd made another trip, and this time he had the hardware. Pat also owns two wireless Gamecube controllers to my one, so now it was just a matter of finding two other players.

After some false alarms, we finally got it set up yesterday, at the Manhattan apartment of Pat's friend Kevin. By this time Pac-Man vs. had acquired Lucky Wander Boy-like status in my mind due to the difficulty of even playing it. But unlike Lucky Wander Boy, Pac-Man vs. is a really well-designed game.

Here's how it works. The player with the Game Boy Advance plays Pac-Man on the Game Boy Advance. Looks just like regular Pac-Man, except instead of four ghosts (or whatever), there are three. The other three players look at the television and each controls one of the ghosts.

On the television, each ghost sees a rendered isometric view of their part of the maze. The person playing Pac-Man can see the whole maze, because that's how you play Pac-Man. The ghosts have to coordinate to trap Pac-Man and clobber him.

In an event with great implications for Pac-Man continuity, the ghost who's able to clobber Pac-Man becomes Pac-Man for the next round. Whoever made the kill gets off the couch and swaps places with the person who has the Game Boy Advance. Eventually one of the players plays a good enough game of Pac-Man to exceed some point threshold, and they are dubbed the winner. Then you immediately play another round because it's real fun.

Was it worth it? Well, I don't know whether it would have been worth buying all this gear, but it was definitely worth patience in waiting for everything to come together. Now, if I could only get Four Swords to work...

[Comments] (3) : There's this stanza in "Chattanooga Choo-Choo":

Leave the Pennsylvania Station 'bout a quarter to four
Read a magazine and then you're in Baltimore
Dinner at the diner, nothing could be finer
Than to have your ham and eggs in Carolina

This promised timeline has been bothering me ever since April, when I took a trip on this very route, Penn Station to 'Carolina'. A Harper's or something similarly dense might occupy you from New York to Baltimore, but your ham-and-egg dinner would take place in the middle of the night. But maybe there are two trips to the dining car, with ham and eggs being breakfast the next day? It is kind of an odd dinner.

[Comments] (1) The Highest Distinction That One Can Obtain: Have you been waiting for some new music from me? Well, keep waiting, because I don't really have anything planned. But my friend Lucian (frequent guest on the crummy.com podcast) just started a Jewish transsexual rock band called Schmekel, and they had their first gig last night. Here's a video of Schmekel playing "Surgical Drains" (song itself starts at 0:55), a silly song whose lyrics I helped write. They've got five more videos; the sound quality varies.

I should mention that, unlike most of the stuff I link to/am involved with, these songs are pretty filthy. I'm sure it's possible to have a Jewish transsexual rock band whose songs are all very tasteful, but that is not Lucian's way! I didn't write the dirty parts of "Surgical Drains"—I just came up with a lot of the couplets in the choruses.

: Did Hammer ever decide whether or not to hurt 'em?

: Evan has a couple of 9/11 stories with a really amazing photograph.

[Comments] (3) Self-Promotion: Haven't done this for a while, though Sumana says she talked up Constellation Games at WorldCon to a goodly amount of interest (thanks, Sumana!).

First off, a one-day promotion from O'Reilly: all the "Cookbook" titles, including Ruby Cookbook, have had their prices slashed, slashed! to $9.99. Judging from the emails O'Reilly sent me about this, they really wanted me to put this in my Twitter feed, but although I should probably start posting there[0], I don't think that would have made a good first post. Anyway, this is a heck, or even a hell, of a deal—you can save thirty or forty bucks easy. Myself, I'm probably going to buy the RESTful Web Services Cookbook, because it seems cheesy to keep asking for free copies from O'Reilly years after the last thing I wrote for them.

Second, check out that cover for Retro Spec, the anthology containing my story "The Day Alan Turing Came Out". That's my complimentary copy, I've dipped into it, and it's nice. But I've already told you about the book. The news hook for today is that Julia Rios interviewed me, Retro Spec editor Karen Romanko, and fellow contributor CD Covington for The Outer Alliance.

[0] Because I want to write an in-character Twitter feed to go along with Constellation Games, and I don't want the posts to sound fake, like I never actually wrote for Twitter. As of last night, BTW, the CG second draft was 1/3 complete, and that's the third that contained most of the heavy rewrites, so we're lookin' good.

[Comments] (2) What I Do: When I meet someone and they ask what I "do", I gauge their level of tech knowledge to determine how much detail to go into. Have they heard of Ubuntu? (I work for Canonical.) Have they heard of Linux? (I work for a company that puts out a Linux distribution.) Maybe at they've used a computer? (I write software.) I do this rather than just going straight to "I write software" (from which I've only had to back off once), because when, as sometimes happens, I'm asked this question by an Ubuntu user, the question of "what do you do" turns from a social nicety into a real conversation. And it's really nice to get appreciation from someone just because of where you work.

This week, Canonical employees are writing about how their day jobs interact with the open source community. For some people, like the desktop team, the connection is pretty obvious. For me it's a little more subtle. I give open source developers control over their accumulated software artifacts, and I give them back some time that they'd otherwise spend doing boring things.

The projects I work on are open source, but for the most part that just means I'm doing my work in public. My main project, lazr.restful, is used a fair amount within Canonical, but not much outside of it. So saying "hey, I write open source software" is cheating. What's really going on?

Launchpad is going on. Launchpad is a website for doing software development. When you work on a project, you're generating document-type artifacts (stuff that's part of your completed project) and process-type artifacts (stuff detailing the actions you took to get to the completed project). Document-type artifacts need to be version-controlled, and process-type artifacts need to be shepherded through a workflow.

Such sites are nothing new. For almost my whole showing-up-for-work-every-day career, I've been working on one of these sites: before Canonical, it was CollabNet. What's new about my work on Launchpad is that with the web service I give you (the developers using the site) direct access to your process-type artifacts. This benefits you in two ways:

  1. Automation

    Not all the code you write goes into your project. Some of it is utility code you use to maintain the project itself.

    For instance, I wrote a little shell script to run whenever I do a new release of lazr.restful. Make a tarball, sign it with my GPG key, create a new release series on Launchpad (if appropriate), upload the tarball and GPG key as a release for that series, upload the release to PyPI, use bzr tag to tag the current revision with the release number. All I have to do is type my GPG passphrase.

    Well, you know how to tarball and GPG-sign with shell commands, and bzr tag is a shell command, but PyPI and launchpad are websites, and to tell them about a new release requires a web service client. The setup.py script is the web service client for PyPI, and the web service client for Launchpad is launchpadlib, the code I wrote. If Launchpad's web service didn't publish release series and release files as resources, I'd have to do that step by hand.

    And just as there's code you write but don't release, there's code you never write at all—you execute it yourself, over and over and over, using a web browser. You're pushing process-type artifacts—bugs, questions, code reviews—through some kind of workflow.

    A tool can provide the framework for a workflow, but the work won't flow on its own. Someone has to operate the pump, and that can get boring. Some rules are easy to describe algorithmically but time-consuming to execute. Like "If a commit message mentions that this commit fixes a bug, go ahead and mark the bug fixed." Or "When making a new milestone, move in all the bugs that didn't get addressed in the last milestone."

    As the developers of the Launchpad website, we could force everyone into a specific workflow and optimize for that workflow. Or we could try to create a tool that's so general you could use the website to define arbitrary rules like the commit-message rule. Or, we can publish the software development artifacts as HTTP resources and get out of the way.

    When I think about the Launchpad web service, I mostly think about allowing developers to scratch their own itches and automate the automatible parts of their jobs.

    (BTW, the Launchpad portion of my release script is in lp:launchpadlib/contrib/upload_release_tarball.py.)

  2. Integration

    This is the code that gets published—applications where communication with Launchpad is a feature. For instance, if an application crashes while you're using the Ubuntu desktop, Apport pops up and gives you a chance to report a bug against that application. Apport reports those bugs through the Launchpad web service. There are also programs like Ground Control, which let you manage your software development artifacts from your desktop instead of your web browser. These all bring Launchpad to your desktop.

    You're just using these applications, you didn't write them yourself, so you don't know that the Launchpad web service is involved at all. But all these products—better bug reports, easier administration—feed data and saved time back into the open source ecosystem.

And for me it is fundamentally about saving people time. There's a story from the development of the Macintosh that has stuck with me for years. Steve Jobs is doing what he does best: berating developers. In this case he's telling them to make the boot time faster.

Well, let's say you can shave 10 seconds off of the boot time. Multiply that by five million users and thats 50 million seconds, every single day. Over a year, that's probably dozens of lifetimes. So if you make it boot ten seconds faster, you've saved a dozen lives. That's really worth it, don't you think?

I don't have fifty million users, but I'm also not in the business of saving each of my users ten seconds. I want to save you three hours, or a week would be better. That's why I do what I do—you can see this thread running through every job I've had, both my nonfiction books, and my most successful open source projects. Check the intro to Ruby Cookbook: I just realized I wrote the same damn thing in there.

This book is meant to save you time. Time, as they say, is money, but a span of time is also a piece of your life. Our lives are better spent creating new things than fighting our own errors, or trying to solve problems that have already been solved. We present this book in the hope that the time it saves, distributed across all its readers, will greatly outweigh the time we spent creating it.

Beautiful Soup is showing its age, but I don't think it's totally crazy to estimate that it's saved thirty or forty person-years since 2004. Someday I'll die, and I don't want the main thing people say about me to be "The time he saved other people was a greater-than-unity multiple of his own lifespan." But that is an important part of my personal philosophy. It's Tim O'Reilly's "Create more value than you capture" applied to time.

Actual Tow Truck License Plate: "UR NEXT"

Towin' stuff, huh?

Resolved: The Great Race was the Austin Powers of its time.

You Got Me There:

"Okay, how about this theory. What if none of the stuff in Murder, She Wrote actually happened..."
"It didn't!"

[Comments] (1) : Hey, I'm still here, but personal stuff and novel work are taking precedence. This is going to be the greatest novel I've ever written.

: Something interesting happened to me yesterday, and I will write about it--let's say, tomorrow--but right now I'm just going to tell you that I just reached the halfway point in my second-draft revisions for Constellation Games. I think I've reached the point in the text where I can stop totally rewriting half the scenes, and I'm going to try really hard to complete the second draft in time for next month's writing group. Depending on how it's received and what happens on the business side, you might start reading it early next year. (Assuming you want to read it--I won't make you.)

Some data points: The first draft was 96,500 words. Halfway through the second draft I'm at 112,400 words. This is due to characterization and such. I don't think I'll be adding another sixteen thousand words to the second half of the novel, but it could go up to 120k or so.

[Comments] (3) Beautiful Type: Well, my cool gallery-generation script doesn't work anymore because Maverick got rid of I stopped using F-Spot [see UPDATE below], but here are the photos from yesterday. What happened was a few days ago Mark Hansen sent me a donation for Beautiful Soup. I saw that Mark had a ucla.edu address and as a UCLA alum myself, I was curious and went to investigate. Pretty awesome guy—professor of statistics, spam poetry on his webpage. "[M]y time will be split between the Research and Development Group at the New York Times..."

So I emailed Mark and asked when he would be in New York next. He said he would be in New York starting Thursday! Okay then. Yesterday I went to the Times building (near Times Square, strangely enough) and had lunch with Mark and with Jer Thorp, in the second best corporate cafeteria I've ever eaten in, not that I've eaten in very many.

Great conversation and then a little tour of (selected floors of) the Times building, which you can see a bit of in the pictures. Don't miss the "Page One" room, a room dedicated to a single ritual, where the editors gather every day at 4 PM to decide what goes on the next day's front page.

But, you may ask, what is this picture I've embedded align="right" in this entry, this photo of me standing in front of some screens? Well, I'm looking at Movable Type, a 2007 piece of digital art by Mark Hansen and Ben Rubin. It's on public display in the Times lobby. It shows a constantly changing tableau of sentences, photo captions, crossword puzzle clues, etc. from the latest edition of the NYT. And it turns out that the "custom software" mentioned in the artist's statement includes Beautiful Soup! Yes, the New York Times is using my software to scrape its own data stores for use in a work of art. I did not begin this week expecting to learn that!

[UPDATE] I should be more precise in my language, especially since I work for Canonical. Maverick did not "get rid of" F-Spot. It was moved from "main" to "universe", and replaced by Shotwell. Shotwell is much better, except that when you tell it to export photos to a directory, it exports only the photos themselves and no extra metadata or thumbnails.

[Comments] (6) : The year 2011 has the same days of the week as (for instance) the year 3431. I should be able to buy a year-3431 calendar and pretend to live in the future. I think there would be a small market for such things.

(I already pretend to live in the future, but would be easier with a little cooperation from the wall calendar.)

[Comments] (4) : On a subway platform in New York City, there's a wide variety of ads. Lots of billboards on the wall, each an ad for something different. But when you enter a subway car, the whole car is usually dedicated to a single kind of ad. Why are platform ads sold differently than car ads?

(This only changed recently. A few years ago, all cars featured variety in their ads. Now almost all cars are dedicated to a single type of ad, which means you encounter Dr. Zizmor less often.)

I thought about this and came up with a couple reasons. First, there are a lot more car spaces than platform spaces. Probably 500x as many car spaces. Maybe the MTA looked at their numbers and saw an individual car ad was costing more to manage than it was producing. So they started forcing advertisers to buy an entire car's worth of ads at a time.

Second: a single platform ad will have about the same effect as a whole car of car ads. People usually sit still in a subway car, but they walk along the platform when they get out. Everyone in a subway car will walk by a few platform ads on their way in and out, but within a car they will only see the ads in front of them.

And while the people are sitting down, the subway cars are moving through the stations. An ad on the subway platform will be seen by people in the facing car. So, to make sure a carload of people sees your ad, you either need to buy up the entire car's ads, or one or two of the platform ads facing that car.

I've also noticed that movies are only advertised on the platforms, and booze is only advertised in the cars. (TV shows are advertised in both places.) What's the pattern?

: Went to Lucian's house yesterday to watch Star Wars on VHS. I noticed this interesting tidbit, which I think deserves to be much better known: the Weighted Companion Cube from Portal looks a lot like the crates they use in Star Wars.

Earlier in the week, a conversation with a friend who shall remain nameless:

Leonard: So Lucian is now really into Babylon 5. Which is understandable because the character arcs are so great.
Friend: Yeah, I saw some of that when it was airing, it was pretty good.
L: Can I give you an example? Like, you don't mind spoilers?
F: Yeah, I'm not gonna see it.
L: [Explains his favorite Babylon 5 character arc in some detail.]
F: I like Baltar.
L: That's Battlestar Galactica.
F: Oops.

: Despite a tough political environment, Beautiful Soup remains the incumbent in Kansas after four years. (thanks, clickolinko)

[Comments] (1) : All right, Constellation Games is done! Now let's see who wants to publish it.

(The novel has one more writing group date, but I'm feeling good enough about the manuscript to call it "done" and send it out. Big thanks to Kirk, Sumana, and the Cabal.)

: I bet you didn't know that The Eater of Meaning was fine art. (link via BoogaBooga) Well, maybe you did.

: Is there some fake sociobiology reason for why people like looking at fall leaves? It doesn't seem like you'd see those colors very often if everything was going well on the proverbial savanna. Do they look like fruit?

[Comments] (5) : Last weekend I went up to Boston to work with Julia and Kirk on the Constellation Games synopsis. Rather than complaining about the publication process, let me tell you that on Sunday Kirk and I drove up to New Hampshire. (Here's Kirk's take, with pictures.) I thought this was a big deal, but I'd forgotten that when you start in Boston, New Hampshire isn't all that far away.

Our destination was Funspot, home of the "American Classic Arcade Museum", which is actually just a functional arcade. Like, imagine that bookstores continue going out of business, until you find yourself running one of ten large bookstores in the entire country. At that point, it might make sense to rename your bookstore the "American Classic Bookstore Museum".

Funspot does have some old games of particular historical interest, like Death Race, the first game to start a "wait a minute, those pixels look like a person!" moral panic. But, they also have Skee-Ball and bad pizza. And there's nothing explaining the importance of Death Race. Suffice to say I'm a little dubious about the "museum" idea.

But they do have over 200 old arcade games, organized by manufacturer, so, seriously, enough complaining. It was great! Kirk and I played just about every two-player simultaneous game they had, including classic shoots-em-up like Contra and Heavy Barrel, as well as good old Joust. We had worse luck with Marble Madness and Xenophobe.

I was also surprised to see Donkey Kong II, since that game doesn't exist. I invested a token and quickly discovered that it's actually a brutally difficult ROM hack, put into an arcade cabinet as a cruel prank. It turns out I'm not very good at any of these games (Kirk is really good at selected games, like Pengo), but I think it's safe to say that Donkey Kong II is only for those who relish a challenge.

I'd heard lots of people talk about how much better Asteroids looks on an original vector screen than on a CRT or LCD, and kind of written them off as snobs. But I guess I have to write myself off now, because Asteroids on a vector screen looks awesome.

We arrived in Funspot on the same day as a reunion of the General Computer Corporation, the company that sold unlicensed hacks of arcade games in the early 80s, under the assumption that no one would ever successfully serve a subpoena on the "general computer corporation". That didn't work out so well, but they went legit after one of their hacks was turned into Ms. Pac-Man. Now, reunion time: lots of middle-aged engineers and their spouses.

I remembered that Ned Batchelder used to work at the General Computer Corporation, so I looked around for him at Funspot, but he wasn't there and he confirms he'd never heard of the reunion—I guess they didn't invite the summer interns.

[Comments] (3) Beautiful Soup 3.2.0: Ta-da. This is not a release to fix bugs or add new features. There are almost no changes to the code, which is why it took me so long to do this—it seemed silly. This is a release to stop people from getting confused.

Previously, there were a couple versions of Beautiful Soup you might conceivably use. They were and 3.1.0. Version was the stable release, and version 3.1.0 was the development branch. Except 3.1.0 wasn't actually the "development" branch, since a) no development is happening right now, and b) 3.1.0 in particular turned out to be a huge mistake. But for almost two years now, 3.1.0 has been hanging around with a higher version number than 3.0.x, looking like the latest version. And people have been using it, and having problems.

I'm not working on BS right now, but the least I can do is stop actively misleading people, so I added a tiny new feature suggested by Aaron and leapfrogged the 3.1 series with the UNAMBIGUOUSLY THE VERSION YOU SHOULD USE version 3.2.0. I've also set up a new build system which uploads the new releases to Crummy, to PyPI, and to Launchpad. So if my hosting provider randomly shuts down my instance, as happened last night, your craving for the tarball can still be fulfilled.

Pictures of Pictures: Susanna came to town for Thanksgiving, so we've been alternately going out and doing things, and completing the unfinished-since-movein work of making the apartment look like a place where someone lives.

For instance, we matted inclusive-or framed all the photos and MOCCA art that Sumana and I never put up, or else stuck to the wall with thumbtacks:

And in the realm of "art I can't afford", here's a geeky drawing we saw at the MoMA: Dorothy Dehner's 1958 "What Happens To Squares":

: Thank you, authors of REST in Practice, for giving me the bizarre experience of opening a book to a random page only to find my own name on that page.

[Comments] (7) Can't Relax: So if Joel hadn't built the 'bots, he would have control over "where the movies begin or end"? Really?

This has been bothering me for fifteen years.

: Sumana and I saw this old casting letter from ST:TNG and started brainstorming ideas for re-casting ST:TNG with today's actors. (Wil Wheaton as Riker: too much to hope for?)

It all went downhill once Sumana suggested casting Dulé Hill as Geordi La Forge. I think Dulé Hill would make a better Data, but this never came up because somehow we got the incorrect idea that Dulé Hill is two years younger than Levar Burton was when he started doing TNG, and started coming up with strategies to compensate for the age difference:

"Well, we could wait a couple years to do our imaginary remake of Nextgen."

"Or, we could clone Dulé Hill, and since memory is genetic, we can age the clone at an accelerated rate while maintaining his acting ability."

"He could contract the aging virus that Dr. Pulaski got, and get cured after five minutes."

"He could breach the singularity of a Romulan warbird and spend some time in one of the areas where time runs faster."

"We could cast the rest of the show, then they could spend two years in a transporter pattern buffer, the way Scotty did in 'Relics'."

"Or they could live through the three-day time loop from 'Cause and Effect' over and over again."

"We could do a controlled version of what happened to Crewman Daniels when he became unstuck in time and his body was aging at different rates."

"He could move to the planet from 'Children of Time', and we could cast one of his descendants."

"He could wait two years and come back to the present day through the Guardian of Forever."

"Or use the slingshot effect."

"We could create a holographic representation of what Dulé Hill will look like in two years, then hire it when it inevitably achieves sentience."

"We could cause a quantum fissure like in "Parallels" and mine alternate realities for one in which Dulé Hill was born two years earlier."

"If we need him to be more mature as an actor, not necessarily older, he could spend two subjective years in his own head, like those aliens did to O'Brien in 'Hard Time'."

"Or he could run into that probe from 'The Inner Light' and gain a whole lifetime of experience."

"He could acquire a Trill symbiont that's two years old."

"He could use temporary cosmetic surgery to make him look like a human, when he's actually a slightly younger human."

"We could use a telepathic trick or an addictive video game to trick the whole world into thinking Dulé Hill is two years older than he really is."

"We could do a new animated series and just have him do the voice."

"The Traveller could do something."

"If Q were around he could do it by changing the gravitational constant."

"Isn't there something we can do with relativity?"

"There's no relativity in Star Trek."

Unfortunately, I ruined the whole thing by checking IMDB:

"Wow, Dulé Hill was born in 1975! He's thirty-five!"

"How old was Levar Burton in 1987?"

"Only thirty! It's a temporal paradox!"

"So Dulé Hill needs to become younger."

"There can be only one answer: reproduce the transporter accident from 'Rascals'."

[Comments] (1) These Are The Supply Chains I Forged In Life: For a while I've been fascinated by Alibaba.com, a sort of B2B Etsy that connects you to the Chinese and Indian companies that manufacture all of the manufactured objects in your life. For instance, I searched for "dinosaur" and discovered Zigong Gengulongteng Science and Technology Co., which makes animatronic dinosaurs for amusement parks and museums. They have a video corporate intro and pictures of the dinosaurs under construction.

Based on the original fossil was discovered, with use of modern voice, light, electricity, mechanism to produce. It could accomplish the movements of eyes, mouth, head, hand, tail, stomach breath, walking, laying an egg, [!!] seating and riding, and make voice.

In fact, the city of Zigong is full of companies that make animatronic or large-scale replica dinosaurs. There's also Zigong City Dragon Culture and Art Co. ("simulation skin grafting elaborate process is made available for tourists to view, play, all kinds of dinosaurs to the audience as if return to the Cretaceous era"), Jade Bamboo Culture Development ("Our vision... Leading people to walk into dinosaurs’ world, helping to make dinosaurs stand with you!"), and a dozen more. (Although some of them may not be totally independent companies--Zigong Hualong Art uses the same "Based on the original fossil" catalog copy as Zigong Gengulongteng Science and Technology) Why so many? I guess because Zigong is a really good place for dinosaurs in general--there are lots of fossils and even a museum there. ("As a famous saying goes, one finds a veritable nest of dinosaurs at Zigong.")

Okay, so that's giant animatronic dinosaurs. You can get similar, though less awesome, results with anything else. Not only finished products, but raw materials and intermediate parts, and the machines used to assemble them into finished products. Just browse the recently added products for ideas.

Automatic ketchup packing machine? Here it is, with pictures. Molybdenum? It's sold as sheets, plates, bars, powder, disks, wire, and custom-cast parts. Sodium benzoate? Minimum order 1 metric ton! Things not normally considered to be manufactured products, such as software development or voice dubbing? We've got that B-roll!

On the road between Bangalore and Mysore there's a town called Channapatna, and a big Lions Club-type sign declaring it "City of Toys". And here's a toy company from Channapatna on Alibaba: Kaveri Handicraft Industry. There are probably more, but it's tough to search for a specific city.

A couple more. The Shenzhen Dojust Painting Co. does custom paintings. Those anti-counterfeiting holographic stickers? They have to be manufactured, and the Dongguan Linbiao Anti-Fake Technology Co. manufactures them.

It's really amazing. My only complaint is not so much spam, as that it's difficult to restrict a product search to original manufacturers, so you get a lot of random resellers. (You can do a supplier search and restrict your search to original manufacturers, which is probably what I'd do if I wanted to buy anything.) It's a glimpse into a world you knew was there but didn't think much about apart from the occasional Bunnie Huang essay.

[Comments] (1) Technology As Folk Art: I did some work today but it's nothing you need to see yet, so instead I'll just show you some more stuff I found looking around Alibaba:

Venera 3: I'm reading New Cosmic Horizons: Space Astronomy from the V2 to the Hubble Space Telescope, by David Leverington. When I read a sentence like "The exact mission of Venera 3 is a mystery even today," the science fiction author in me (or, more accurately, coextensive with me) sits up and takes notice. But, the book was published in 2001, so I went to the Internet to see if the Venera 3 mystery had been resolved.

As it turns out, the book has more information on Venera 3 than the Internet does, so I'm putting up a quote. All the Internet's English-language information derives from this NASA page, which is contradicted by New Cosmic Horizons (p73-74):

The exact mission of Venera 3 is a mystery even today. The Russian Academician Leonid Sedov said early on in the flight that it was a twin of Venera 2 and was to take photographs as it flew by Venus on the opposite side to Venera 2. The Soviet news agency TASS, on the other hand, said that Venera 3 included a landing capsule which replaced the photographic module of Venera 2. TASS also said that communications were lost just before the lander was due to separate from the main spacecraft, and that Venera 3 struck the surface at 9.56 a.m. Moscow time on 1st March 1966. [This is also what the NASA page says.] For some time it was thought in the West that Venera 3 was the first spacecraft to have impacted Venus, but later information showed that communications had been lost some three months earlier than stated by the Russians, so whether the spacecraft had hit Venus or not can only be a matter of surmise.

There are no endnotes in the book, so I don't know what this "later information" is. But if you lose contact before the lander separates, whether it's immediately before or three months before, I don't think you get to say with any certainty that the lander successfully landed.

[Comments] (1) Prerequisite: It's the end of the year, and time for the traditional navel-gazing. I was going to shun the sight of my own navel this year, but as I get older these roundups are very useful, both at the time and in retrospect, so let's go for it. Unlike last year, I'm not going to go crazy putting up all the photo galleries I neglected to put up throughout the year. I do have some cool photo galleries I'd like to show you, but I don't have time.

Because the theme of 2010 is not having time for things. I had a huge project in the form of Constellation Games, and Sumana had a lot of personal work taking care of her mom, and just about everything else fell by the wayside. As such, a big part of the 2010 wrapup will be things that happened in 2010 that I need to carry over.

All of which is to say that I've put up the paper I gave at WS-REST back in April: Developers Like Hypermedia, But They Don't Like Web Browsers. There may or may not be some ACM-related reason why I can't put up the paper I wrote on my own website--I don't remember, so up it goes.

The conclusion of the second half of the paper--that desktop developers hate browser-based OAuth token authorization models and will do almost any amount of work to hack around one--turned out to be a major driver of my work for Canonical in the second half of 2010. And I really want to write a follow-up essay because I've discovered that to a first approximation, the desktop developers were right. I was making them do a lot of extra work for no security benefit, because I was applying a web-based security model to the desktop. But, it's 2010, year of not having enough time.

I do want to highlight this quote from my paper:

I propose a natural experiment: as I write, a client for the Twitter web service can authenticate its requests using an OAuth token, or by providing a Twitter username and password with HTTP Basic Auth. Twitter developers plan to deprecate Basic Auth starting in June 2010. I predict that as Basic Auth is deprecated, client-side Twitter hackers will resist Twitter's OAuth token authorization protocol, just as client-side Launchpad hackers resisted Launchpad's similar protocol.

Well, that sure happened. At the time, people referred to the changeover as the "OAuthpocalypse". Or possibly the #oauthpocalypse, I'm not really up on these things. And that's for a web service for which real bad guys would really like to grab your credentials, so in theory OAuth could be a very nice feature. Here's Jon Udell describing how to make Twitter's token authorization protocol feel like Basic Auth.

More later. Now to hang out with Sumana before she leaves for Washington. Because it's still 2010 and there's still not enough time.

[Comments] (3) The Crummy.com Review of Things 2010: That's right. I haven't covered everything I want to, because Rachel has arrived (yay) and I need to go to sleep so we can visit a museum in the morning. But you're not gonna read this until you go back to work anyway, so here it is:

Books: I read about 35 books in 2010, compared to 88 in 2009. Not many books, and not much fiction. I did read Gravity's Rainbow and the prose was great, but I found it annoying in the way that only a book from the 1960s or 1970s can be annoying.

The Crummy.com Book of the Year is James Tiptree, Jr., Julie Phillips's biography of Alice Sheldon. Runners-up are two books I read for Constellation Games research: From Eternity to Here by Sean Carroll, and Packing For Mars by Mary Roach. According to my contemporaneous ratings, I really liked Fear and Loathing in Las Vegas and Lovecraft's The Dream-Quest of Unknown Kadath, but neither seems terribly appetizing right now. Oh, and the first half of A Case of Conscience is really good.

Games: My big discovery of 2010 was board games. With Sumana away so often, I did a lot of game nights with my Astoria friends: Pat, Lucian and Beth. Our favorites are Dominion, Carcassonne, Cosmic Encounter (Crummy.com Game of the Year), and (Pat only) Twilight Struggle. Yes, by BoardGameGeek standards we are not indie at all. By anyone else's standards, we're trailblazers. In 2011 I plan to get into Power Grid, Agricola, and Small World.

I don't really have video game recommendations because I didn't play many deep or obscure games in 2010--mostly grindy stuff like Etrian Odyssey III to kill time during travel. (EO3 is a great game, and even innovative, but its innovations are very subtle.) I did think What Did I Do To Deserve This, My Lord? 2 was really interesting--like a puzzle version of Conway's Life. I would also like to publicize the fact that Super Scribblenauts fixes all of the non-conceptual problems with Scribblenauts. And if you can play Pac-Man vs., you should.

Video: 2010 was the year I finished a project I began in 2005, to watch all the Mystery Science Theater 3000 episodes more or less in order. I still haven't seen a couple KTMA episodes that were reused as Comedy Central episodes, but I'm basically done. I don't think you need me to tell you this, but MST3K is an amazing TV show. It has some big problems, and I think it's a less important show now that the Internet serves as your inoculation against the idea of passive media consumption. But it's really fun, there's a surprising amount of continuity, and in terms of sheer volume it's probably humanity's largest aggregation of jokes (at least until The Simpsons does a couple more seasons). Eventually I'll turn my show notes into an enormous web page, but don't hold your breath (or, indeed, postpone any vital biological function) waiting for it.

Online video: Board Games With Scott is great and may lead to you spending money.

Audio: MST3K isn't the only groundbreaking media from the 1990s I've been re-experiencing. In 2010 I spent many a sleepless hour in a strange hotel room listening to Schickele Mix, from PRI, Public Radio International. If you're not familiar: Schickele Mix was a radio show which gave you an education in music theory as part of a relentless, endearingly corny schtick. I'm almost through all the shows I have, and near the end it becomes less a music-theory show and more of a themed clip show, but nearly every episode is great.

It occurs to me that Schickele Mix was a podcast avant la lettre. Are there any other good music theory podcasts? I know that Pandora used to have one, but I don't think they do anymore.

Speaking of podcasts: this year I became able to exercise without visual stimulus, an adaptation that served me well. I'm a fan of a bunch of gaming podcasts: Three Moves Ahead, selectbutton.net, Dwarf Fortress Talk, and The Retro League. My favorite non-gaming podcasts are Astronomy Cast and the Long Now Foundation's Seminars About Long-Term Thinking.

This was not a big music-album year for me, but Schickele Mix introduced me to Laurie Anderson, and re-introduced me to Igor Stravinsky. The coveted "Best New Artist" award goes to Tally Hall.

[Comments] (3) Year Of Links:

Plus one more link about which I had so much to say that I started writing a whole nother post. You'll see it... in THE YEAR 2011!



Unless otherwise noted, all content licensed by Leonard Richardson
under a Creative Commons License.