[Comments] (3) Frances Daily: We're out of the gate with the first Crummy project of the new year. I spent Christmas in Utah, and while I was there my sister Susanna foisted on me my mother's old Franklin day planner. She's already typed up my mother's Franklin diary from the 80s and 90s, a diary very similar to the weblog she kept from 2001 until she died in 2006, so all that was left of the day planner was an enormous block of calendars.

It's a very detailed calendar that will be useful for family history purposes but quite boring otherwise. Except, at the beginning of each month there was an "index" page on which my mother had written a brief summary of every day of that month. There were index pages from January 1987 to November 1990, with a few sporadic months from later on.

The cumulative effect of these daily summaries was incredibly powerful. This was a time of major upheaval in my family, leading up to (but not ending with) my father's death in 1992. The monthly summaries show my mother trying to keep it together while studying for a graduate degree and raising three kids pretty much on her own. It's inspiring and a bit horrifying.

I've started a Twitter account, @FrancesDaily, which is using Sycorax to reprint the daily summaries 25 years after my mother wrote them. (Here's the RSS feed.) The summary for each day will go up at 4 PM Pacific time. It's a little spotty in January, but once it picks up she doesn't miss many days for the next three years.

I don't know what the effect of the summaries will be when experienced in real time. Probably when I read one I'm going to mentally compare my day against the day Frances had 25 years earlier, and you might want to do the same.

This is a much lower-bandwidth project than Roy's Postcards, but where my father's writing almost never showed any emotion, these summaries pack a lot into just a couple words. Susanna read the index and said "Mom was really hard on herself." So please take entries like "wasted day" as accurate depictions of my mother's mental state, but not necessarily of reality.

A note about the names. I did the thing you frequently see in old journals that have passed through the hands of the journal-writer's descendants, and replaced most of the names with initials. For instance, the January 18 summary, "Mario's Eagle", became "M's Eagle". The Mario mentioned is Mario Canton, one of my dad's Boy Scouts and later a family friend. I initialized most of the names because you don't have the context to know who all these people are, and I think giving each entry an explanation significantly longer than the entry itself would ruin the effect.

In a few cases, making peoples' names into initials was also necessary to protect their privacy. I left a few names intact: mostly my mother's close relatives like her aunt LeJeune ("Jeuney"), her sister Anne, my father, and of course me and my sisters.

Again, that Twitter account is @FrancesDaily. Here's the RSS feed.

[Comments] (1) CG Author Commentary #5: "The Stars My Screensaver": Yeah, you know it's getting serious now. The microblog archive is up, I'm feeling good and it's time for some commentary:

And there's the commentary. Stay glued to the proverbial set for chapter 7, when Ariel will say, "Well, her hardware's Chinese..."

Image credits: Gisela Giardino, The United States Department of State, and the East German postal service.

<- Last week Next week ->

GeekDad Reviews Constellation Games: Wired's Jonathan Liu got an advance copy and calls it "a perfect blend of aliens, video game geekiness, and modern social media." Other quotes relevant to my interests include "absolutely loved it — it might not be the best book I read in 2011, but it’s certainly in the top 10."

C'mon, folks, do I have to draw you a picture? Because I can't draw very well. I use words instead.

Dear Santa: Dinosaurs:

My niece's Christmas stocking project.

Connected Tragedies: Sumana noticed this. 1, 2.

CG Author Commentary #7: "Party Creation": Ariel's Twitter will be pretty quiet this week because the entire chapter takes place over the course of one day. Your only solace is farmers market quail sausage, and this COMMENTARY:

Stay tuned for chapter 8, a chapter I think is one of the best in the book, the chapter that got me to give up on the first draft and rewrite the entire book to be more like it. The only chapter in which Jenny will say, "Wait a minute, are you naked?"

Image credits: I got the first image from Flickr user marsmet462, not sure if they put in enough transformative elbow grease to put their own license on it. Second image comes from Sven-S. "☃" Porst .

<- Last week | Next week ->

[Comments] (8) Hostile Witness: The Vechs Interview: Minecraft can be a tough game. The controls are kind of blocky, the best resources are hidden deep in the map alongside deadly lava rivers, and the night hosts monsters that will kill you just as soon as look at you (or, in one case, just as soon as you look at them). But it's not that tough. All that terrain is generated by algorithm. It's not like the random number generator is trying to kill you.

But there's this guy named Vechs who is trying to kill you. His "Super Hostile" series of custom Minecraft maps offer challenges that prohibit or subvert every survival strategy you learned in vanilla Minecraft. Even in his easier maps you'll find bottomless pits, world-spanning ceilings that block Minecraft's all-important sunlight, swarms of monsters pouring from hacked spawners, and TNT in unfortunate places. Just getting your first tree is a challenge. Complete a Super Hostile map, and vanilla Minecraft will seem easy.

But Vechs' maps are not just tough: they're creative, fun to play, and they look great. Vechs uses landscape features and lighting to grab the player's attention, direct the flow and pacing of their playthrough, and give them a spectacular environment to build in once they've conquered the map.

I've raved about Super Hostile a couple times before here on NYCB, but with the release of "Spellbound Caves", the tenth entry in the series, I knew it was time to get serious. I sat down with Vechs (I assume he was sitting down, anyway) and interviewed him over minecraftforum.net's private message feature. My goal was to pick up where this interview from July 2011 left off, with in-depth questions about his style and his mapmaking wish-list. The interview contains some Minecraft jargon, but anyone with an interest in game design should get something out of it.

Leonard: You play a kind of character on your maps, an angry trickster god who hates his players and taunts them by writing things on signs. But clearly you're not actually like that. I've played maps made by people who really did hate me, who wanted me to farm cobblestone for an hour or dig through obsidian without a tool, and I said "screw this" and quit the map. I don't think you'd ever do that, right? What's the difference between you and the "Vechs" in your maps?

Vechs: It has to do with challenge. There is a difference between making the player use skill or ingenuity, and making the player do something tedious. Sometimes a solution to an area can involve using lots of blocks (Like the player making a cobblestone tube for them to safely move through.), but these are usually just one option of many the player can use to conquer an area.

Sometimes the "Vechs character" in my maps is pretty mean, and just downright spiteful, especially when it comes to traps. In real life, I'm not like that at all.

In the Obsidian Block interview you say that you recently graduated from college and are looking for a career as a game designer or world designer. What did you study in college?

I am a Media Arts major. I studied everything from digital image editing, video editing, to stage lighting, to writing scripts and screenplays for movies, and more. I'm glad to have a diverse background, even though my passion is still game design.

What would be your ideal job? Would you rather work on a big-budget project with high production values, or an indie project where you have more creative control?

My first choice would actually be to have my own studio and bring to life some of the game ideas I have. One idea I've had for a while, and as far as I know, nobody has ever made a game like it. I wouldn't mind making it all myself, but that means I would have to re-learn a lot of programming. I've programmed some text-based games in C++, but programming is not my main forte.

That said, I also wouldn't mind working for a major company. Like, for example, Valve. Love those guys.

What other games have you made maps for? You mention Duke Nukem 3D in the Obsidian Block interview; what else?

Just off hand: Red Alert, Warcraft II, Warcraft III, Neverwinter Nights, Total Annihilation, TA:Spring, Terraria, Command and Conquer (and several sequels), The Elder Scrolls series, and obviously I'm the world designer for the RPG games I've worked on, using the XP and VX engines.

Are you currently making maps for any games other than Minecraft?

At this moment, no, but I have been meaning to make some maps for Team Fortress 2.

Have you ever heard of ZZT or Megazeux, or am I just incredibly old?

You're old! *grins* I looked them up, and I think my version of that would be the RPG-series of game engines.

There are a lot of memorable set pieces in the Super Hostile series. Now that you've put out ten maps, would you mind taking a look back and sharing some of your favorites?

The first 15 minutes on just about any of my maps. I love that feeling of just starting off and scrambling for resources. I like the rail station in "Sea of Flame II", and how it goes out in the area with the huge pillars, and "Spellbound Caves" is just full of nice vistas and "scripted" events.

Most of my maps feature at least one "death fortress" as an end-game area. These are intended to be where the player gets to use all the resources and items he has been collecting through the whole map. TNT, lava, swords, bow and arrow, even TNT cannons... bring your whole arsenal and have some fun!

Can you describe the evolution of your design philosophy over the course of the series?

Try to improve in at least one area every time I make a new map. Push the Minecraft engine to its limits. Make an awesome and memorable experience for the player.

What are the biggest challenges in re-balancing Super Hostile for Minecraft 1.0?

Armor and blocking.

Does 1.0 have anything to do with the fact that you recently flattened the difficulty levels in your map descriptions, so that "Sunburn Islands" and "Legendary" are now both considered "Easy"?

Yes and no. I feel that recently I have been drifting away from the theme of "Super Hostile" and I want to get back to my roots. Being able to respawn forever, over and over kind of takes the risk out of a map. Even in "Legendary", unless you really mess up and drop all the wool in lava or something, you can just set your bed spawn near an area, and try over and over until you get it right. I think that's pretty Easy on the player, even if the area you are attempting is challenging.

Call me nostalgic, but I kind of miss (sometimes) the GAME OVER screens from older video games. Modern video games, in the name of convenience, typically feature unlimited lives, save games, checkpoints, the works. But beating a modern video game, I have to admit, is much less satisfying than beating some of those old NES games. You can just bang your head against the game until you get lucky and get through an area. Heh, man this makes me feel old! "In my day, we didn't have all those checkpoints! We had three lives! One hit deaths! And we were happy!" *shakes cane*

Anyway, I do think this is a legitimate point of concern on modern game design, is risk versus reward. It is possible to make games so easy that they are very unsatisfying...

I'm an admirer of your ability to create new genres of map. Have you made experimental Minecraft maps that just didn't work? What's in your "abandoned projects" folder?

The only thing I've actually stopped on, is "Race for Wool #3: Common Ground". Because it basically became "Capture the Wool".

Have you ever made maps for a game that featured scriptable events? If so, do you miss that capability in Minecraft?

I have used C++ to code some text-based games. I have also used various scripting languages in the process of making mods or making my own games with existing engines. You do have some limited "scripting" ability in Minecraft, using redstone. Check out the Rumbling Caverns in my tenth map and you will see what I mean. :)

But yes, I would love some even rudimentary scripting in Minecraft. I believe a while ago, I proposed invisible effector blocks, that you can place with Creative or MCedit, that modify the immediate environment around them. Like, an invisible block that makes monsters not spawn within 50 blocks. Or one that doubles monster spawning within 50 blocks. Or one that makes it snow. Or one that makes a ray of sunlight always be shining on that spot. Or one that makes the temperature freezing so any water turns to ice. Simple stuff like that. They would show up faintly in Creative mode, but be invisible while in survival mode.

What would you like to see added to Minecraft? On your forum thread you mention that you'd like to add sharks and underwater plants to "Endless Deep". What else?

Bow enchantments... more mining enchantments, such as area mining. Check out episodes 04 and 05 of my Spellbound Caves Dev Commentary.

For bow enchantments, I would like:

I think these enchants for bows would make bow combat much, much more fun. It's currently fairly slow paced, and a bit boring. Imagine a bow with Toxic, Piercing, and Phantom Spreadshot on it! It would be so much fun to shoot groups of enemies with a bow like that.

You have a creative relationship with some of the people who do Let's Play videos of your maps. It's a kind of relationship I've never seen before: the way people play your maps in public affects the way you design later maps. How did these relationships develop?

Very organically. Zisteau agreed to LP my very first map, "Sea of Flames" version 1.0, and ever since then, he's been involved in playing my maps, and giving feedback.

There's a very clever trap in "Spellbound Caves", [location redacted]. It's clever for many reasons, but I'm asking about it because it doesn't seem to have any triggering mechanism. I went in afterwards and took the walls apart and couldn't figure out how it works. What's the secret? Or is there a pressure plate somewhere that I missed?

I has a seekret. Oh, also, I hate you, die in a fire.

POSTSCRIPT: With my interviewee uncooperative, I had no choice but to load a fresh version of "Spellbound Caves" into an editor to get to the bottom of the mystery. What I found was a trigger that did not shock me to the core of my being. But it is a cool design.

The trigger is a proximity sensor: a shaft behind a wall, with a creeper spawner at the top of the shaft and a pressure plate at the bottom. When the player gets within 16 blocks of the spawner, it activates and spawns a creeper, which drops onto the pressure plate, triggering the trap. The resulting explosion obliterates both creeper and spawner, leaving no trace of the trigger.

And that's what you get with Vechs' maps: MacGyver-like use of everything the game engine provides, to create confounding and unexpected effects. Seriously, game studios: hire this guy. Everyone else: play his maps.

PPS: Hey, people from minecraftforums.net, thanks for coming over. I've written other articles about Minecraft (1 2 3 4), and if you like my stuff, you might want to check out my novel about alien video games.

[Comments] (1) : My sister talks about her miscarriage.

The only thing worth saying is "I'm sorry." I may think those things. John and I may even say those things to each other. But don't impose beliefs or possibilities or happy thoughts on me.

[Comments] (1) Findings: My writing life has settled down a bit so I'm finally going to write about Findings, the social reading startup where I worked last summer. This is more an essay about what I see in Findings than an introduction to the site--you can see lots of general introductions linked to from this Findings blog post, including co-founder Steven Johnson's introduction, and the Business Insider article whose title is the perfect elevator pitch, "Findings is GitHub for Ideas".

If what I'm about to say sounds interesting to you, there are development jobs open at Findings right now. Just as a reminder, I myself don't work at Findings anymore, and even when I did, only the foggyheadedest knave would have taken my personal opinions as representative of company policy.

Let me start out with this quote I took from Darwin's The Descent of Man, not because the quote itself proves anything, but because the quote is an important part of my reading of Darwin:

Brehm gives a curious account of the instinctive dread, which his monkeys exhibited, for snakes; but their curiosity was so great that they could not desist from occasionally satiating their horror in a most human fashion, by lifting up the lid of the box in which the snakes were kept. I was so much surprised at his account, that I took a stuffed and coiled-up snake into the monkey-house at the Zoological Gardens, and the excitement thus caused was one of the most curious spectacles which I ever beheld.

If you want to learn about evolutionary biology, read Steven Jay Gould's essays. Darwin's a good writer and he got it basically right, but he didn't know about genes or DNA. I read Darwin to experience the origins of the field. I didn't expect (though perhaps I should have) to encounter endless artifacts of the days of two-fisted Baconian science.

When Charles Darwin needs to figure something out, he carries out an experiment, no matter how tedious or disturbing. He takes snakes to the zoo, he puts kittens' feet in his mouth, he floats 94 kinds of plants in seawater, he hacks aphids. If someone has the temerity to question his conclusions he's all "Citation needed? I'll give you citations, motherfucker!"

When you read a book, it has an effect on your mind. You're a slightly different person after reading it. You've created something new: a reading of the book: Here's an apropos quote from Alberto Manguel's A History Of Reading, which I read on paper and typed in. Manguel is talking about Petrarch's Secretum:

What Augustine (in Petrarch's imagining) suggests is a new manner of reading: neither using the book as a prop for thought, nor trusting it as one would trust the authority of a sage, but taking from it an idea, a phrase, an image, linking it to another culled from a distant text preserved in memory, tying the whole together with reflections of one's own -- producing, in fact, a new text authored by the reader.

Readings are ephemeral. Life goes on, and the memory fades. Ken Macleod's The Star Fraction had a huge influence on me, probably leading to whatever career I now enjoy as an author of fiction, but I read it ten years and 600 books ago, and now I don't remember a damn thing about it.

That's why we dog-ear pages and highlight passages. We're instantiating our reading of the book so we can go back later and approximate the mental state it gave us without re-reading the whole thing. Even if all we got out of a book was "this bit was funny", it's better to have the funny bit at hand than not. Even if you never go back to the highlighted passage, the act of highlighting replays that passage and deepens your initial memory of it.

Liberate your readings

I've been typing in quotes from the paper books I read, like I did with the Manguel. Of course, with an electronic book, you don't have to do this. The act of highlighting creates an electronic record of your reading of the book. When I was in college I read about the first e-ink research coming out of MIT, and I knew that this was the future. Indeed it was the future, because I had to wait ten years for the technology to make it to market. But, sour grapes, we've got ebook readers now.

Ebook readers have big problems, but at this point the problems are mostly political, not technical. For instance, you can highlight passages when reading a book on your Kindle, but because of a deal between Amazon and the publisher, your book's metadata may include restrictions, which the Kindle will obey, on how much you can highlight. And your highlights and notes—the "new text authored by the reader"—are stuck on a website that Amazon didn't put a lot of work into because they don't consider your reading of a book important to their business.

Findings takes advantage of the fact that Amazon is wrong about this. Findings liberates your highlights and makes them searchable and shareable. Your reading of a book is a big part of your relationship with that book, and Findings gives you access to it.

You can also use Findings to take a reading of a web page, creating a record of what would otherwise be an ephemeral activity. I'm not as interested in this feature, but people are using it quite a bit, and my interest does increase as the length of the web page I'm reading approaches the length of a book.

Browse readings

So that's what Findings can do for you personally. Now let me pitch you the network effects. Take a look at this screenshot which shows the Findings global stream:

You can't see the global stream without logging in, which I think is a shame because I think this is what really sells Findings. We have here a stream of little bits of text, like Twitter used to have on their front page. Except here, every bit of text is a quote that someone liked well enough to save. It's very high-quality stuff. At the top you can also see some recently added books, and by clicking on a book you can see someone's condensed reading of the book.

Basically, Findings gives you browsing access to a large library, not of books, but of readings. It's easy to discover new books, people who read books you like, and—this is new—people who read books in ways you like.

There are a ton more useful things I could mention, but they're mostly behind-the-scenes things where Findings makes things "just work" (like consolidating multiple editions of the same text), or they depend on features that haven't been implemented yet. So I'm going to close by mentioning the social signalling feature.

Strut your stuff

One underappreciated feature of paper books is signaling to other people that you are cool. You read books! Fancy books, like Ulysses! You care enough about books to make space for them in your house. You take them on the subway even though they're heavy. Darwin would say it's like the peacock's tail. But if you have an ebook reader, nobody knows how cool you are. You're just a person with an ebook reader.

By letting you publicize your reading of an ebook, Findings reinstates your ability to send those social signals. The downside is that you have to actually read the book. You can't just put a big book on your coffee table: the thing you're sharing is what you got out of the book. (Well, you can fake it, but it's probably about as much work as reading the book legitimately.)

So that's Findings. I don't use it as much as I thought I would, because I'm still trying to draw down my stack of paper books, but when I read a book on my Kindle, it stays read, thanks to Findings.

I mentioned this before, but the last thing I did at Findings was design a web service for them, which they're hopefully working on now. Once the web service launches, you'll be able to write programs that import readings into Findings from non-Kindle sources.

Do it yourself

One final note: If you have a Kindle, connect it to your computer and look on its filesystem. All your highlights are kept in a structured-text file located at documents/My Clippings.txt. This file includes highlights taken from PDF files and other ebooks not recognized by Amazon, which don't get synced to kindle.amazon.com. Even if you don't use Findings, take control of your highlights by backing up this file.

Image credits: McKay Savage, Romana Klee, and André Fincato.

[Comments] (1) CG Author Commentary #8: "They Came For Our Twinkies": K'chua! Such a useful word. This week, Curic does her part to Keep Austin Weird. Here's the (tiny) Twitter archive from last week.

Some exciting news from the world of commerce: the Constellation Games paperback drops April 17. If you're waiting for the paperback, do yourself a favor and pre-order at the $20 level. Once it's released, the paperback will cost $20 on its own, but if you pre-order, you'll also get a bunch of extras, including three short stories that all pass the Bechdel test.

The seventeenth of April is also the day we serialize chapter 21, "Her". I'm going to keep posting my commentaries once a week along with the serialization, even though a growing number of you will have read the whole book and know how it turns out. Then you'll know how I feel right now!

I'm also thinking of having a celebratory book launch dinner at Hill Country, a famous Austin-area barbecue joint that fortuitiously has a branch in New York City. Let me know if you're interested in attending.

...and we're back from commercial. Here's the commentary for chapter 8:

Stay tuned for the inevitable letdown next Tuesday, when Curic will say, "I did not pee in your sink."

Image credits: (CC) Larry D. Moore and Wikimedia Commons users Solkoll and SeppVei.

<- Last week | Next week ->

[Comments] (1) Beautiful Soup 4 Beta 2: Thanks to some help from Ezio Melotti I've got the Beautiful Soup test suite passing on Python 2.7 and Python 3.2. Here's a tarball containing the original Python 2 module in bs4, plus the same code autoconverted to Python 3.2 in py3k/bs4.

I'm still not sure about the best way to distribute this package, either while it's beta or afterwards. I'll probably end up creating a new project on PyPi, because otherwise people who install programs that easy_install beautifulsoup will crash due to the module's new name. Does that make any sense?

Anyhow, we're almost at the end of this fitfully travelled road. Once I figure out distribution and rewrite the documentation, a) no one should need to use BS3 anymore if they don't want to, and b) it should be possible to get lxml-like performance or html5lib-like flexibility with a Beautiful Soup API, by actually using lxml or html5lib as the underlying parser.

PS: remember, it's now from bs4 import BeautifulSoup.

[Comments] (1) Beautiful Soup 4 Benchmark: This is going to go into the Beautiful Soup 4 documentation, but you might find it interesting. It's my first legitimate benchmark of BS4, and the first benchmark of this stuff I've seen since Ian Bicking's excellent 2008 benchmark.

Ezio Melotti pointed me to a list of the top 10,000 domains worldwide, according to some random source. It looked legit, so I wrote a script to download the homepages of the top 200 domains as served to a desktop web browser. My dataset included many pages written in Chinese, Japanese, Russian, Portuguese, Polish, and German.

For every parser I was interested in, I parsed each homepage and timed the parse. This gave me 200 numbers for every parser. To reduce that to a single non-huge number I calculated a mean: how many kilobytes of real-world HTML the parser could process in a second. I also noted each parser's success rate: how many of the 200 homepages it had handled without raising an exception.

Here are the results, ordered by their performance under Python 2.7.

Python 2.7 Python 3.2
Parser Speed (KB/s) Success rate Speed (KB/s) Success rate
Beautiful Soup 3.2 (SGMLParser) 211 100% - -
html5lib (BS3 treebuilder) 253 99% - -
Beautiful Soup 4.0 + lxml 255 100% 2140 96%
html5lib (lxml treebuilder) 270 99% - -
Beautiful Soup 4.0 + html5lib 271 98% - -
Beautiful Soup 4.0 + HTMLParser 299 59% 1705 57%
html5lib (simpletree treebuilder) 332 100% - -
HTMLParser 5194 52% 3918 57%
lxml 17925 100% 14258 96%

Note that the "HTMLParser" tests don't actually produce anything. HTMLParser is an event-based parser, so when the HTML is parsed, nothing comes out because I didn't include any handler code. All the other tests build a parse tree in memory.

Another thing to keep in mind about the html5lib results: html5lib is kind of the opposite of BS4. BS4 always builds a tree of Beautiful Soup objects, but you can tell it to generate that tree using html5lib, lxml, or HTMLParser. Whereas html5lib always uses its own parser, but you can tell it to build a tree of lxml objects, a tree of BS3 objects, etc.

The big surprise for me is that on Python 2.7, lxml is the worst choice for a parser to drive BS4. It's a worse choice than html5lib! How did that happen? I have no idea. I was hoping to cash in on the lxml magic (see below), and it's not working. I need to look into this. Notice that html5lib takes a performance hit from using lxml's treebuilder. If the magic's not in the treebuilder and it's not in the parser, where is it?

Unless I can find that magic and exploit it, it remains the case that if you're paying by the minute for computer time, you should use lxml. It's written in C, and on Python 2.7 it builds a parse tree sixty times faster than BS4, three times faster than a pure-Python parser that does absolutely nothing with the data. Even on Python 3, lxml alone is seven times faster than BS4+lxml. I said stuff like this in the BS3 documentation, but I think I need to be more forceful about it in the BS4 docs.

The good news is that Beautiful Soup is 6-8 times faster on Python 3 than it is on Python 2, and even at its slowest, BS4 is noticeably faster than BS3.

The big caveat is that my definition of "success" is pretty minimal. Just because the parser parsed the file without crashing doesn't mean it will give you a useful parse tree.

Another caveat: on Python 3, I couldn't get HTMLParser to take raw bytes as input, so I ran the data through UnicodeDammit first. I counted this time as part of the parse time. This probably explains HTMLParser's slower speed on Python 3 and its higher success rate.

Update: Argh, I found out about this a year ago. The problem is that Unicode, Dammit is incredibly slow in some cases. Here are the results on 2.7 if I take out the prepare_markup methods in the builders for HTMLParser and lxml, and just assume everything's UTF-8:

Python 2.7 Python 3.2
Parser Speed (KB/s) Success rate Speed (KB/s) Success rate
Beautiful Soup 4.0 + lxml 2287 96%260096%
Beautiful Soup 4.0 + HTMLParser 2069 48%168057%

That's more like it! The problem is that reliability suffers. Both parsers crash in the 4% of cases where it's not UTF-8 but the encoding is declared in a <meta> tag. And there's an unknown number of cases where the data's not UTF-8 but the conversion doesn't crash, leading to garbled data. But at least now I remember this problem.

Also note that on Python 3.2, getting rid of Unicode, Dammit doesn't matter nearly as much. (It doesn't matter for HTMLParser at all.) Presumably Python 3.2 has better built-in support for encoding autodetection.

To This Basic Game Hedgehogs Are Added: I bought a cute game about hedgehogs, Der Igelwettkampf ("The hedgehog contest"), as a Christmas present for my niece. On Der Igelwettkampf's BoardGameGeek page I noticed that it was classified under the game family "Animals: Hedgehogs/Porcupines". I'd thought "Family" was for boring things like grouping together the endless versions of Ticket to Ride, but turns out it's also used to group together all the games about hedgehogs.

The question then arises: what's the best game about hedgehogs? According to BGG it's Igel Ärgern + Tante Tarantel, a double bill in which Tante Tarantel might be doing some of that work because Igel Ärgern on its own is rated a bit lower.

More importantly, what's the worst hedgehog game? Indubitably it's Hedgehog's Revenge, "The GAME where the hedgehog STRIKES BACK!", whose BGG description includes the now-hopefully-immortal saying "To this basic game hedgehogs are added."

At this point I was on a roll... of the dice! I went back to my now-old BGG data dump, sorted the board game families by how many games they contained, and picked out interesting groupings for use in Loaded Dice. We've got Games about animals (most popular: dogs) Game versions of sports (soccer), and Games about countries (the Roman Empire, in a landslide). That page shows the top-rated game and the lowest-rated game, so get ready to load a lot of cover images.

I did a couple other lists, like media tie-ins (champion: Disney) and "families" that are strongly tied to one single game (the 889-strong "Monopoly" family), but I think the three lists I put up are the most interesting.

Bizarre trivia abounds! Did you know that crows are board game gold? The worst game about crows (The Crow and the Pitcher) has a BGG rating of 6.32, which isn't that bad at all. (Longtime fans will remember the median rating is 6.0).

Did you know there are twenty rodeo-themed games? Apparently you didn't, since only one of those games has more than five ratings. How many wargames take place in Switzerland, a country that doesn't fight wars? Only two: Switzerland must be Swallowed and Zürich 1799.

My data is six months old now and it's starting to show some cracks. There are BGG families for Russia and Antarctica which were created after I took my dataset, so they don't show up in the country list even though most of their games are in my data. After getting the Switzerland idea I ran the "What percentage of a country's games are wargames?" test on all countries, but wargames were drastically undercounted. For instance, all but one "Vietnam" game on BGG is a wargame (the exception being Venture Vietnam), but only 35% of those games were classified under a general "Wargames" category.

But, the lists are still a lot of fun and there are some interesting games in there. I'll leave you with the board game equivalent of the dusty World Book Encyclopedia sitting on the shelf at your grandparents' house: Trivial Pursuit - The Year in Review - Questions about 1992, the worst-rated game (3.90) in the 155-strong Trivial Pursuit family. Also available in 1993 flavor!

[Comments] (6) CG Author Commentary #9: "Import System": Last week and this week have some of my favorite Twitter bits (e.g.) because the CDBOEGOACC is finally available in English. Sunday night while working on Loaded Dice I realized that one of the reasons I really like playing around with the BoardGameGeek dataset is it's like a real-life CDBOEGOACC.

The flip side is this chapter doesn't have a lot of plot. But hopefully you're okay with that because of all the fun mini-stories like the Sea Level game/food. It's supposed to represent the design phases of a software project, where you're throwing around a lot of ideas but not much is being produced.

Next week is a set piece, and after that the plot won't let up until the cliffhanger that ends Part One. Before that happens, I need to get some solid exoludology in to bring in topics that are important later, like Sayable Spice and Ariel's unsuccessful attempts to translate it.

Before beginning the chapter 9 commentary, I want to get something off my chest about the first sighting of the Farang in chapter 1. In that chapter, Ariel compares their antennacles to the oral tentacles of a "cerebrophage". In the second draft I just out and said "mind flayer". My writing group said I should change it because readers might not know what a mind flayer is. ("Did you mean: mind flower?") Taking their advice to heart, I changed the reference to a made-up reference that nobody will get. Well, at least we're all in the same boat now!

And here's chapter 9. Vent your egg sacs before reading this commentary:

Be sure to tune in next Tuesday, when Dana will say, "This application will terminate due to suspected theft or circumvention."

Oh, and you might want to keep an eye on @Tetsuo_Milk.

Image credits: Flickr user krusty, Guillaume Piolle, and Flickr user CoffeeGeek.

<- Last week | Next week ->

Fruit to Fruit: Time for another crummy.com Apples to Apples variant (previous editions), this one discovered last week by Pat.

On every green A2A card there's the name of the card, like "Handsome", but there are also three related words, like "attractive", "elegant", "fine". In Fruit to Fruit, you don't read the name of the card. You just read the related words. Sometimes the related words are so similar that you might as well be reading the name of the card, but usually something goes missing (such as the masculinity of "handsome"), leading to funnier red cards being put down. The name of the card is finally revealed during judging.

We had a great time with this and played it in conjunction with the Apples to Placebos variant, even though there were four players. You might think this overkill, but at this point A2A is more a social activity than a game. Anyway, it says right on the box "The game of hilarious comparisons!", so anything that makes the comparisons more hilarious is legit.

While seeing if anyone else had come up with this variant I discovered Apples to Trivial Pursuit, and the improv comedy variant. I also discovered that the game is patented, and that there is an entire patent classification system for "means... by which contests of skill or chance may be engaged in among two or more participants, where the result of such contests can be indicated according to definite rules."

[Comments] (2) Constellation Games Author Commentary #10: "K.I.S.S.I.N.G.": This is Dana Light's big chapter, and I'm having trouble writing commentary because it's pretty self-contained. A problem is introduced and Ariel solves it by the application of technology. If I hadn't been writing a novel when I came up with Dana, this chapter would have become a short story, maybe part of a sequel to "Mallory". It would have been about the way evil psychologists use game mechanics and the ELIZA effect to manipulate users into spending money, and the way people get real pleasure from spending money on things designed to manipulate them.

Although evil psychology does show up in Constellation Games, I didn't have as much space for it as I'd like. Instead this chapter shows the first grown-up thing we see Ariel do. In a world in which sub-human-level AI has suddenly become very common, Ariel decides to empathize with it.

He doesn't anthropomorphize Dana. Dana doesn't pass the Turing test, she isn't terribly smart or self-aware, but she's capable of happiness and she doesn't deserve to be deliberately made unhappy by evil psychologists. This attitude is what ultimately makes Ariel a hero, not just a POV character. The consequences of his decision to empathize will run through the entire book, and then overflow the book into "Dana no Chousen," and I still don't know when and whether Ariel does the right thing w/r/t Dana. But you gotta have empathy.

Apart from that, I don't have much to say. Here are a few miscellaneous notes:

Tune in next week for action, intrigue, and romance between people at the same level of sentience. It's the only chapter when Ariel will say: "I just have a slight fear of being a tiny speck in the infinite cosmic void." But not the only chapter when he'll think that.

PS: Due to an error on my part, the chapter 9 Twitter feeds ran as part of chapter 8, and chapter 10's Twitter feeds ran last week. This really can't go on, because next week's feeds are tightly integrated with chapter 11. So except for a brief bit of bonus material I just wrote, there will be no Twitter stuff this week. Sorry about that!

Photo credits: Kevin Trotman and Peter Anderson.

<- Last week | Next week ->

[Comments] (3) easy_install beautifulsoup4: This is an HTMLized version of an email I sent to the Beautiful Soup discussion group, about the impending release of Beautiful Soup 4.


When Beautiful Soup was first released in 2004, the state of HTML parsing in Python was appalling. Over the past eight years, things have improved so dramatically that Beautiful Soup's HTML parser is no longer a competitive advantage. I don't want to duplicate other peoples', work, so I'm getting Beautiful Soup out of the parser businesss. Beautiful Soup's job is now to provide a Pythonic screen-scraping API on top of a data structure created by a third-party parser.

This will be Beautiful Soup 4, and I've been planning it for years. With help from Thomas Kluyver and Ezio Melotti, I've now met the three main goals of Beautiful Soup 4:

  1. Make a single codebase that works under Python 2 and Python 3.
  2. Stop using SGMLParser (removed in Python 3) and make it possible to swap out one parser for another.
  3. Support two major Python parsers (lxml and html5lib) as well as Python's (not currently very good) batteries-included parser, html.parser.
The first version of BS4 is almost ready for release, and I'd like you to test it out, if you haven't already. I still to fix some things, in particular some performance problems. But, note that even with the performance problems, BS4 is faster than BS3 across the board.

On Python 2 or Python 3 you can install the BS4 beta with this command:

easy_install beautifulsoup4

You can also get the source tarball.

The documentation has been completely rewritten. You may find the section on porting BS3 code to BS4 especially interesting.

There are three major things I'd like your feedback on before completing the release.

Hall of Fame

The BS3 documentation lists open-source projects that use Beautiful Soup. I stopped maintaining this list many years ago because there are hundreds of these projects, and since most of them are screen-scrapers, they're pretty ephemeral.

I'd like to bring this feature back as a "hall of fame", featuring applications of Beautiful Soup that grab a reader's attention. People who used Beautiful Soup in a high-profile way or to tackle a big issue. Projects that are interesting to hear about even if the software doesn't work anymore, or uses an old version of Beautiful Soup, or if Beautiful Soup was used internally and the public only saw the results.

My bias is towards projects having to do with space, science, journalism, politics and social justice. Here are some examples so you know the kind of thing I'm thinking of:

If you did anything of this sort, or know of someone who did, I'd like to hear about it.

Do you prefer lxml or html5lib?

Right now, the parser ranking goes lxml, html5lib, html.parser. I like lxml because it's incredibly fast and it can parse anything. But I'd like to see what you think of the trees it generates. Would html5lib, with its web-browser-like heuristics, be a better default?


BS3 had a number of overlapping and inconsistent ways of turning HTML/XML entities into Unicode characters, and possibly turning Microsoft smart quotes into HTML entities at the same time. In BS4, all this stuff is gone. HTML and XML entities are *always* converted into Unicode characters.

This is great but there's one problem: output. If you want to turn those Unicode characters back into entities when outputting as a string, you need to call soup.encode(substitute_html_entities=True), which is a little clunky. I'm thinking of adding an output_html_entities attribute that you can set on a soup or tag to control whether this substitution happens. Do you like this idea?

I think I also need to ensure that characters like "&" and "always converted to XML entities on output, even though this will hurt performance a bit.


What you install with easy_install beautifulsoup4 is a beta release. If I hear of a problem soon, there's still time to fix it, even if it means a major change to the API. So please try it out and give me feedback.

: Earlier I ran some speed/accuracy tests of Beautiful Soup driven by various parsers. Python's built-in HTMLParser scored very poorly, parsing only 52% (Python 2.7.1) or 57% (3.2.2) of my test pages without raising an exception. Well, Ezio Melotti, the maintainer of HTMLParser, has been working for a while on improving HTMLParser's handling of bad HTML. Most of this code is in Python 3.2.2, so I should have been getting the benefit, but it wasn't working for me because of a semi-related bug in HTMLParser, which is fixed in the as-yet-unreleased 3.2.3.

After talking with Ezio today, I was able to monkeypatch BS4 to avoid the bug in 3.2.2. This means on Python 3, BS4 with no external parser installed will give reliability comparable to BS4+lxml (98% versus 99%). It's still about 50% slower, though, parsing about 1300 kb of HTML per second, versus 2100 kb/second for BS4+lxml.

[Comments] (4) Constellation Games Author Commentary #11: "Launch Title": Love those title puns! This blockbuster episode sends Ariel TO THE MOON and introduces two major new characters, Tetsuo Milk and Ashley Somn. Also a minor but important character: Linda Blum, Ariel's mom.

Here's last week's Twitter archive, which ran two weeks ago due to my own errors. Twitter service has now resumed, but because this plot arc is so compressed (the rest of Part One crams two weeks of frantic activity into five weeks of real time), most of it is going to come out on Tuesdays and Wednesdays. Don't be afraid, I'll be here the whole time with long-winded commentary:

What a huge commentary, and this plot arc's just getting started. Be sure to tune in next week, when Ariel will say, "I do not use sex to maintain social cohesion."

Image credits: Andy Bernay, Joe Mabel, Linda Salzman Sagan, Harold W. McCauley.

<- Last week | Next week ->

Beautiful Soup 4 Beta 4: Beautiful Soup 4 beta 4 is out! You can install it with easy_install beautifulsoup4 or pip install beautifulsoup4. You can also download the tarball or check out the Bazaar repository.

Big changes:

Beautiful Soup 4 Beta 5: Just going to link to my description message this time. Today I focused on clearing out the bug backlog. It's mostly minor stuff, but I'd like opinions on one change, relating to how a tag is treated if it has multiple CSS classes.

nanDECK: I have a little side project creating a print-and-play board game. The game has a lot of cards, but I don't need to design each card individually--I can generate them programatically. Or I could, if I were capable of writing the program.

First I tried ReportLab, the Python library for making PDFs. I'd used it for the sadly-now-defunct Pocket Wisherman, and I thought it would be perfect for putting lots of little squares on a piece of paper.

Not so fast! The Pocket Wisherman puts lots of squares on a piece of paper, but in that program text flows from one square to another. That can't happen on a playing card. The closest I could come with ReportLab was a table, and since I couldn't add spacing between the table cells the way you can in... HTML...

It was easy to get something in HTML that looked right on screen (these cards are pretty simple), but not so easy to get them to look good when printed. So I went back to searching for tools optimized for card design. I delved deep, past many people talking about the best way to manufacture cards for print-and-play-games, and then I found nanDECK by Andrea Nini.

I'm gonna complain a lot about nanDECK so I want to make it really clear that nanDECK solved my problem. In about an hour I went from having two failed Python scripts and no cards, to having cards as nice as my design skils could make them. If I got some design help from someone else I can make the cards nicer still, from within nanDECK.

Now, let the complaining begin! Actually, I'm not even gonna complain. I'll just phrase my complaints as helpful hints. nanDECK is a Windows IDE for a domain-specific markup/programming language. It runs fine in WINE. The prominently-linked manual is actually a reference guide--tutorials and examples are linked further down the homepage.

The interface features so many buttons that the "visual edit" button might get lost in the shuffle (ha), but that button is going to help you so much. You won't have to remember all the arguments to the language directives, and you can lay out elements visually on the card rather than guess at measurements over and over again. In the end I couldn't get the linked-data feature to work (possibly an interaction with WINE), so I figured out the layout for a single card within nanDECK and then wrote a Python program to generate the nanDECK script for my entire deck.

Whew! Kept it positive. If you want to design cards for a game, and you don't want to lay them all out manually (which you shouldn't), I think nanDECK is your best option. Thanks, Andrea Nini!

Constellation Games Author Commentary #12: "Monsters From Space": Welcome to another chapter full of laughter and embarrassing faux pas. This week we learn why Curic scanned Ariel's house, and get our first glimpses of the ancient, not-particularly-wise Ip Shkoy.

Before the commentary begins, I want to bring up something serious that I could save for next week but I don't want to. Dr. Janice Voss died on February 6 at 55. She was a scientist, a NASA astronaut who flew on five shuttle missions, and later the science director for the Kepler Space Telescope. She was a big science fiction fan. I met her once in 2007, in what was certainly the highest-wattage dinner I've ever attended (photos), and she made a huge impression on me.

The only major character in Constellation Games you haven't met yet is an astronaut, Tammy Miram. She's introduced next week. If I hadn't met Janice Voss, Tammy Miram would not exist, and I have no idea what the novel would look like from next week on.

I don't mean that Tammy Miram is "based on" Janice Voss, or that the character is a way to tell Janice's story in a fictional setting. I only met Janice Voss once and I have no idea what her story would look like. (Spoiler) Also, Janice was a very well-adjusted person, and Tammy is not. But a dinner-length conversation with Janice was enough to move the societal role of "NASA astronaut" out of my mental category "archetypes useful in science fiction stories" and into "interesting jobs I can give to my characters."

R.I.P., Janice Voss. Ad astra per aspera.

Here's last week's Twitter feed, as it was meant to be seen (i.e. without a weird UTF-8 encoding issue). And now, this week's commentary:

Tune in next week, when Curic will say, "Infiltration? Cold reading? Propaganda? Torture? Extracting false confessions?"

Image credits: NASA, NASA again, Kabir Bakie, Alain r.

<- Last week | Next week ->

Beautiful Soup 4 Beta 6, Beautiful Soup 3.2.1: There are two ongoing serials here at crummy.com: Constellation Games and Beautiful Soup 4. Here's the announcement message for the latest installment in the latter saga.

The big news is a new release of the 3.x series, Beautiful Soup 3.2.1. This fixes a pretty bad problem that can let through cross-site scripting attacks if you use Beautiful Soup to sanitize HTML. If that's you, you should upgrade ASAP.

That was certainly worth fixing, but I don't do much work on Beautiful Soup 3 anymore. I mean, if I fixed every bug in BS3, I'd have... Beautiful Soup 4, which is now almost done. All the bugs are closed out. There's one more big feature I may add, and some minor cleanup I want to do, but mainly I want to make sure people are comfortable with the new API.

Thanks to Stefano Rivera, BS4 is now in Debian unstable and Ubuntu Pangolin, as beautifulsoup4. So the clock is ticking on freezing the API. This would be a great time to try to port your BS3 scripts to BS4, and let me know how difficult it was and what you had to change.

[Comments] (2) Where's That Golden Age?: A couple weeks ago Samuel Arbesman posted an entry to Wired's science blog called "How to search for the golden age of television", an entry that's been driving me crazy since I read it. Not because I disagree with his analysis of the IMDB dataset, but because I don't like his starting point. Arbesman uses "each television show’s running time, in number of episodes, as a very rough proxy for quality". It's true that there's probably a positive correlation, but that metric has a couple problems. First, it severely discounts the present. A show on the air today may have several seasons to run, but we don't know that yet, so it'll look worse than an old show of equivalent quality. Second, the IMDB dataset features a much more direct proxy for quality: user ratings.

I don't think ratings are a great proxy for quality--a look at the highest-rated TV shows will put a stop to that nonsense. And the run length of a show is at least an objective fact. But I think our collective opinion of a TV show today is a better proxy of quality than how long the network was originally willing to keep it going. And if you use ratings, I think you can get closer to answering the question "what would a golden age of television look like?"

My guess is, Arbesman didn't use ratings because it's kind of annoying to get that information out of the IMDB dataset. But I'd already done a lot of work on the dataset for The MST3K-IMDB Effect, so in this post I crunch the numbers my way and see what falls out.

If you're expecting controversy, I can't provide. My findings don't contradict Arbesman's, they just provide a different way of looking at the data.

Step 1: Get the data

(If you're impatient, you can skip to the graphs.)

It all starts with IMDB's plain-text data dumps. I downloaded release-dates.list.gz and ratings.list.gz from the FTP site. I also downloaded distributors.list.gz, but it turned out that data wasn't useful.

Step 2: Identify shows, episodes, and air dates

release-dates.list lists all movies, TV shows, and episodes of TV shows. TV shows are in quotes, and episode names are in curly brackets.

Point Break (1991)					USA:12 July 1991
"Star Trek: Voyager" (1995)				USA:16 January 1995
"Star Trek: Voyager" (1995) {Caretaker (#1.1)}		USA:16 January 1995

Unfortunately, web series look just like TV shows, which is going to mess with the data for recent years:

"The Angry Video Game Nerd" (2006) {A Nightmare on Elm Street (#1.13)}	USA:31 October 2006

I tried some tricks to get rid of web series, like only considering shows with a listed television distributor (distributors.list), but there are tons of dinky cable reality shows that have exactly the same data characteristics as web series. So I'm leaving them in. Just know that when I say "TV shows", I'm talking about TV shows + web series.

To make the initial dataset smaller, I used grep to remove everything except the US premieres of TV shows, and of episodes of TV shows. (And web series.) Then I wrote a Python script that turns this information into a picklable data structure.

The script ties a show to all of its known episodes, and parses out each episode's release date along with the premiere date of the show itself. I want to know every year in which an episode of the show premiered in the US. This has some problems--it makes the original "Star Trek" show up as a 1988 show because that's the first time the original pilot was aired--but they're pretty minor.

Step 3: Add the ratings

Now I know when every show started, and in many cases I know every year a show was on the air. In the next step I load in another file and add ratings to shows and episodes.

Ratings are kept in ratings.list. They look like this:

      0000001212   11245   7.5  "Star Trek: Voyager" (1995)
      0000012111    1558   7.1  "Star Trek: Voyager" (1995) {Caretaker (#1.1)}

There's lots of cool stuff here like a histogram (0000012111 means 10% of people rated the premiere of Voyager a 6, 20% of people a 7, and so on), but what we're after are the IMDB ranks: 7.5 stars and 7.1 stars in this case.

Unfortunately, there's a lot of boring stuff in ratings.list like the top 250 movies. Fortunately, I already wrote code to parse this file during my investigations into the MST3K-IMDB effect.

Step 4: Graphs!

Now I'm going to break out numpy and pychart. Let me start with a calibration run, a graph Arbesman also did. How many shows were on the air in a given year?

Pretty similar to Arbesman's graph. My graph doesn't go down at the end, because I cut the data off at 2011, the last full year of data. I also start later, with the first year for which there were five rated TV shows. I'm picking up some shows he's not, possibly because I'm counting a show in every year it aired, possibly because I'm picking up shows that don't have any episodes listed on IMDB, possibly because he found some way I didn't think of to exclude web series. But it's a similar shape.

Now here's the graph you've been waiting for: mean rating over time:

It's a sad story of precipitous drops in quality: one between 1959 and 1980, one between 1999 and 2005. By this measure, 2005 was the worst year in television history. If you only looked at mean rating over time, you'd say that there was one golden age of television, from 1955 to 1965, and that the 1980-2000 period was a period of stagnation interrupting an otherwise steady decline.

The graph of median rating over time tells much the same story, so I won't transclude it, but you can follow this link to see it.

But, mean rating isn't the whole story. Let me pull out the only statistics trick I know: look at the standard deviation of the ratings over time.

1959, the year with the highest mean rating, is also a year of extreme homogeneity. Less than one star of difference separates the very good shows from the very bad shows. After 1959, the good shows get better, and the bad shows get worse, relative to the mean. In 1980 the standard deviation was 1.37 stars, and in 2011 it was almost two stars. Remember that ratings are not normally distributed, so two stars is quite a lot. (Even one star, as in 1959, ain't nothing.)

Combine this with the skyrocketing number of shows (which begins in the late 90s and goes into overdrive once we start counting web shows) and you can see how that 2000-2005 decline happened. Over 1300 distinct shows aired in 2005. Of course the mean show is going to be crap! The amazing thing is that things have gotten better since 2005, even as we now make over twice as many shows per year. (And web series! Can't forget those!)

Another factor is that people aren't even bothering to rate the bad shows. Here's the percentage of shows that aired in a given year that don't have IMDB ratings because they haven't gotten enough votes. For 2011, this was a majority of shows!

Old shows aren't rated because nobody remembers them. New shows aren't rated because... well, I did a bunch of spot checks, and they fall into three categories. 1) web series, 2) shows that were never aired and maybe never even produced, 3) crap. Only #3 can properly be considered part of "television". The mean rating would certainly be lower if every show had a rating, but I don't know how much lower.

That's where we stand: television is bad, and it's getting worse. That trend may have been reversed recently, or the decline may have been masked by web shows with passionate fans, or things may have gotten so bad that people stopped even bothering to rate the crap. But! Would you exchange the television of today (mean rating: 6.2) for the television of 1973? (mean rating: 7.3). I wouldn't, and I don't think you would either. What's going on?

Well, we don't watch the mean television show. We only watch the good shows. (If you've read this far, I'm gonna go ahead and make that assumption.) And if you look at the good shows, the picture looks very different.

Here's what the shows look like one standard deviation above the mean. This is basically the top 16% of shows:

At the high end, the decline in quality is reversed in the 80s and early 90s. The gains are undone in the late 90s (2005 is still terrible), but then quality shoots back up. This is very similar to Arbesman's graph of show length over time.

What if you're even more selective? Let's graph the value 1.5 standard deviations above the mean for each year. I don't know what percentile this would correspond to, but it's something like the top 5%. This is the very best stuff you can find on TV in a given year:

This graph, I think, is the best answer to "what would a golden age look like"? It would look like the 60s, when there were three channels under tight quality control, and you could turn on the television at any given time and probably find something good. Or it would look like right now, when a huge number of shows are being produced, and it's easy to be a snob and only watch the very best. This is why we don't remember 2005 as being the worst year of TV in the history of the medium, and this is why I'd never trade today's TV for 1973's TV, even though 1973 looks pretty good on that graph.

So, there you have it--another way of looking at the IMDB data. More to come! Next up: a little thing I like to call "Worst Episode Ever".

Constellation Games Author Commentary #13: "Your Day Job": The lucky chapter thirteen introduces the novel's last major character, Mission Specialist Dr. Tammy Miram. She gets right to work, kicking off a subplot that won't be wrapped up til the very last chapter. Let's look at a bunch of commentary, most of which is about her. But first, Twitter archive from last week! Okay, here we go:

That's all I got. Stay tuned for the huge chapter 14, a chapter full of deepening mysteries and used game trade-ins, the chapter where Ashley finally says, "Ariel was distracted by my beautiful ovipositor."

Image credits: NASA, Mark Phillips, Allen Garvin.

<- Last week | Next week ->

: Remember when this weblog used to be about fun links? I don't either, but I think it was somewhere in there. Well, check this out: last year when I went to PAX my most enjoyable experience was the panel "Videogames Antiques Roadshow." It worked just like you think: people would bring old game stuff up on stage, and distinguished collectors would estimate the value of the old stuff. Here are some pictures from that panel. In fact, you can see me in the second photo, fourth row center.

Kind of got distracted there--the point of this post is not to look at a crowd scene that includes me. I meant to say that they brought the panel back at PAX Prime, and this time there's video. And it's now called "Retrogaming Roadshow", possibly due to trademark issues. In addition to bringing to light cool bits of history like the PCjr edition of M.U.L.E., I love the way these panels illustrate the social construction of value. Highly recommended if you've got an interest in this stuff.

[Comments] (6) Worst Episode Ever: Time for some more IMDB fun. Last time I looked at whole years of television. This time, I'll graph the ratings for individual episodes of TV shows. Can we watch shows get better or worse over time?

We sort of can. The problem is that only a true fan bothers to go to IMDB and rate individual episodes of a TV show. So you can't really trust the episode ratings--they're too high. But we can visualize trends in show quality, as percieved by the fans.

For these visualizations you want long-running series with lots of die-hard fans. So let's start with Star Trek:

(Note the very last data point in that one. That's the series finale, which everyone hates.)

There's a lot of scatter, but you can generally see the common Star Trek pattern of the show getting better as the ensemble cast comes together. Except for the original series, which ended with a lousy season. Now let's look at another nerd favorite, "Buffy the Vampire Slayer":

Beth requested that one. I've seen exactly one episode of Buffy so I wasn't expecting anything in particular. It looks like a show that's consistently good, but wildly inconsistent within the bounds of "consistently good". It doesn't really get better over time. Maybe the Voyager and DS9 graphs look the same to someone who's not a Trek fan.

But compare "Mystery Science Theater 3000", which gets drastically better over time. When I was younger I would have disputed this finding, but now I basically agree with this graph:

I did a lot more graphs, but I'll just show two more. Here's the graph for "The Simpsons", a very long-running show with a very fickle fan base (see title of this post):

Wow! I love this graph! I don't know enough about the history of the show to name the historical trends, but I'm pretty sure a Simpsons fan will be see a big part of their life history reflected in this graph.

I wanted to see if this sort of coherent shape was just an artifact of the fact that "The Simpsons" has been on the air for over 20 years, so I graphed another long-running show notorious for huge variation in quality, "Saturday Night Live":

You can definitely see where things went wrong, but even within a season there's huge variation in quality. The Simpsons is created by the same people every week, where SNL has two wild cards every week: its guest host and musical guest. And since it's sketch-based, three good or three awful minutes can make or break the entire episode.

Next up, the third and possibly final part of this analysis, in which I'll pit fans of a show against the general public.

PS: For the record, according to IMDB data, the actual worst episode ever of "The Simpsons" was #9.11, "All Singing, All Dancing".

Update: People in comments had questions I can't answer because I only know how to do very basic statistics, but they also had questions about how many people rated the episodes, which I can answer. This table shows how many people have rated each series as a whole, as well as the median and mean numbers of ratings for every episode that has any ratings. I also included how many people rated the first episode, how many rated an episode in the middle, and how many rated the last/most recent episode.

Series Series ratings Show ratings (median) (mean) (std)First showMiddleMost recent
"Buffy the Vampire Slayer" (1997) 34564 498 553.41 224.888625111091
"Enterprise" (2001) 8843 140 189.27 242.282397130152
"Mystery Science Theater 3000" (1988) 6650 57 65.54 47.412178131
"Saturday Night Live" (1975) 10151 15 19.86 15.651121160
"Star Trek" (1966) 12695 419 480.95 222.836683891923
"Star Trek: Deep Space Nine" (1993) 9779 172 188.32 107.371501151290
"Star Trek: The Next Generation" (1987) 16974 329 375.62 354.4921893184580
"Star Trek: Voyager" (1995) 11245 153 169.08 110.961558177348
"The Simpsons" (1989) 15578 319 355.07 173.09221430996

So SNL actually has very few ratings per episode, while The Simpsons is on par with ST:TNG. It's common for the first episode and the finale to have many more ratings than others. And here's a graph of the number of people who have rated "The Simpsons" over time:

Beautiful Soup 4 Beta 8: I didn't even mention beta 7 on NYCB because it was oriented towards getting rid of test failures. Test failures that had a lot to do with what versions of what parsers were installed, but nothing to do with whether or not Beautiful Soup itself was broken.

Beta 8 adds very basic namespace awareness. By "basic" I mean:

  1. Handle documents that include namespaced tags and attributes without crashing or mangling the document on output.
  2. If the parser provides namespace information for a tag or attribute, store it for the user's reference instead of discarding it.

That's it. No one responded to my request for namespace-related feature requests, so I'm doing the bare minimum.

[Comments] (2) Incorrectly Regarded As Good: In this third and final part of my IMDB data adventure, I want to switch from graphs to tables, and shed light on the eternal struggle between fans and non-fans. If fans are the ones who care enough to rate individual episodes, non-fans are the ones more likely to rate the show as a whole. I looked at every show that has at least 100 ratings, plus at least 100 rated episodes. I divided the show rating by the mean episode rating to get a "fan appreciation quotient". (I used mean because the show rating itself is a mean, calculated by IMDB.)

Shows with high FA quotients are more beloved by fans than by the general IMDB-using public:

FA quotientShowShow ratingMean episode rating
1.63"Entertainment Tonight" (1981)3.76.0
1.34"Melrose Place" (1992)5.77.6
1.28"Dynasty" (1981)5.97.6
1.28"The Rosie O'Donnell Show" (1996)3.64.6
1.26"Mighty Morphin' Power Rangers" (1993)6.07.5
1.24"Full House" (1987)6.07.4
1.20"Ghost Whisperer" (2005)6.47.7
1.20"Fear Factor" (2001)4.95.9
1.16"Dharma & Greg" (1997)6.77.7

Note that since this is a quotient, it has nothing to do with the magnitude of the ratings. "The Rosie O'Donnell Show" got terrible ratings even from the people I'm assuming are fans; it's just that the show as a whole did even worse.

OK, smarty pants, what about a low FA quotient? How can a show appeal more to the mainstream than to its own fans? Well, I think a low FA quotient means that a show seems better in retrospect than it actually was. Or, more positively, it means that a show was more than the sum of its parts. Either way, here are the shows with the lowest FA quotients:

FA quotientShowShow ratingMean episode rating
0.78"Bonanza" (1959)7.35.7
0.78"NYPD Blue" (1993)7.76.0
0.77"In Living Color" (1990)7.96.1
0.75"Teenage Mutant Ninja Turtles" (1987/I)8.16.0
0.73"Gunsmoke" (1955)8.05.8
0.71"What's My Line?" (1950)8.96.3
0.71"Saturday Night Live" (1975)8.15.7
0.68"House of Payne" (2006)2.51.7
0.62"Ellen: The Ellen DeGeneres Show" (2003)7.34.6
0.60"MADtv" (1995)6.74.0

Look how much sketch comedy there is on that list! I think I'm on to something. Two of my favorite shows, ST:TNG and MST3K, also have low FA quotients of 0.83 and 0.84 respectively.

And right in the middle we have the shows that are exactly as good (or bad) as you remember them:

FA quotientShowShow ratingMean episode rating
1.00"Becker" (1998)7.67.6
1.00"Cold Case" (2003)7.57.5
1.00"Dancing with the Stars" (2005/I)4.84.8
1.00"Hercules: The Legendary Journeys" (1995)6.66.6
1.00"MacGyver" (1985)7.87.8
1.00"Mission: Impossible" (1966)8.18.1
1.00"Project Runway" (2004)6.66.6
1.00"Rawhide" (1959)8.28.2
1.00"The Practice" (1997)7.77.7


Similar to the struggle between fans and non-fans is that between fans and antifans, a.k.a. haters. Fans of a show will give it a very high rating, and haters will give it a very low rating. We can detect this by looking for shows whose ratings have high standard deviations. IMDB doesn't make the standard deviation available directly, but it does provide a ten-character ASCII string that represents the distribution of ratings.

Star Trek: The Next Generation has been rated 16,974 times. Its rating distribution string looks like this: "0000000124". The "4" means that the number of ten-out-of-ten votes is somewhere between 40% (6,790) and 49% (8,316) of those 16,974 votes. The "2" means that between 20% and 29% of the votes are nine-out-of-ten, the "1" means that between 10% and 19% of the ratings are eight-out-of-ten. The zeroes mean that the other star ratings account for between 1% and 9% of ratings each. You can see the conversation about TNG is very heavily dominated by the fans.

I reconstructed the original rating distribution very roughly by treating the character "0" as five percent of the total votes, "1" as fifteen percent, and so on, up to "9" meaning 95 percent of the votes. How rough is the reconstruction? Well, for TNG, the reconstructed distribution has 20,363 data points, where the actual distribution (whatever it is) only has 16,974.

When I take the standard deviation of the reconstructed distribution for ST:TNG, I get 2.74 stars. This particular number is not trustworthy because of the assumptions made in reconstructing the distribution. But by making the same assumptions for every show, we can see which shows are the most divisive. Here are the shows with the largest standard deviations, among all shows with more than 1000 ratings:

Standard deviationShowRatingVotesDistribution
3.85"Laguna Beach: The Real Orange County" (2004)3.721703000000003
3.76"Barney & Friends" (1992)3.712554000000002
3.76"Jon & Kate Plus 8" (2007)5.427162000000004
3.76"The Hills" (2006)3.358284000000002
3.75"Shake It Up!" (2010)4.810132000000003
3.75"Paranormal State" (2007)4.514383000000002
3.75"Flavor of Love" (2006)4.512542000000003
3.75"The Simple Life" (2003)3.429563000000002
3.75"The Jerry Springer Show" (1991)3.916313000000002
3.75"Jersey Shore" (2009)4.531303000000002
3.75"Hannah Montana" (2006)3.919273000000002
3.75"Big Brother" (2000/III)4.016213000000002

That list has a bottom, but it's not interesting--it's the shows about whose quality there is general consensus. All right, here it is:

Standard deviationShowRatingVotesDistribution
2.38"Mork & Mindy" (1978)7.017460000012211
2.38"Around the World in 80 Days" (1989/I)6.914460000012211
2.38"Amazing Stories" (1985)7.314670000012211
2.38"V" (1984)7.225570000012211
2.38"Crusade" (1999)7.011330000012211
2.34"Impact" (2008)5.616330000111000
2.31"Nuremberg" (2000)7.227540000012311
2.22"Moby Dick" (1998)6.519670000112100
2.15"Golden Years" (1991)5.014590001211000
2.12"Covert One: The Hades Factor" (2006)5.710110000122000
2.12"The Andromeda Strain" (2008)6.158580000122100

I experimented with a different mapping of the distribution, e.g. saying that "0" meant 2 percent of the votes, "1" meant ten percent, "2" meant 20 percent, and so on. This made the standard deviations into smaller numbers, but it didn't change the ordering of shows very much.


We can also measure how much a show varies in quality by taking the standard deviation of the ratings given to its episodes. For this I looked at shows which had at least ten episodes that had been rated at least ten times. Here are the results—the "Variability" is the standard deviation of the episode ratings, in IMDB stars.

VariabilityShowShow rating
3.32"The Tonight Show Starring Johnny Carson" (1962)8.3
2.74"The Late Late Show with Craig Ferguson" (2005)8.6
2.62"Jimmy Kimmel Live!" (2003)6.4
2.60"Beauty and the Geek" (2005)5.9
2.37"Late Night with Conan O'Brien" (1993)8.5
2.23"Late Show with David Letterman" (1993)6.9
2.04"Silk Stalkings" (1991)6.1
1.89"The Tonight Show with Jay Leno" (1992)5.3
1.87"Superboy" (1988)6.3
1.70"Duck Dodgers" (2003)8.2
1.68"The Virginian" (1962)7.7
1.68"Ellen: The Ellen DeGeneres Show" (2003)7.3

There's a lot of late-night talk here. If I loosened the restriction on number of ratings per episode, I also got a lot of soap operas (most of whose episodes have no ratings at all).

And here's the bottom of that list: the most consistently good (or, in theory, bad) shows on TV:

VariabilityShowShow rating
0.20"Day Break" (2006)8.3
0.20"Lucky Louie" (2006)8.1
0.20"Boardwalk Empire" (2010)8.9
0.20"Hung" (2009)7.5
0.19"Outsourced" (2010)7.7
0.19"The Ben Stiller Show" (1992)7.3
0.18"Happy Endings" (2011)8.1
0.18"Lewis" (2007)7.9
0.08"Planet Earth" (2006)9.7

I looked into the variability of the ratings distribution for individual episodes, hoping to find the most/least controversial TV episodes ever aired, but most of what I found looked like ratings juking. For instance, "Friday Night Lights" and "The Shield" show a hater/fan dynamic on the episode level: some people rating every individual episode very low and others rating every episode very high.

I think that's enough for now, but I'll come back to the data as I have more ideas, and maybe I'll even learn more than basic statistics for you.

: Last year I learned about the LEGO model of the International Space Station. Today I learned that sometime last year Satoshi Furukawa assembled the LEGO ISS on board the real ISS. In a glovebox, so the pieces wouldn't fly away. There are educational videos.

Constellation Games Author Commentary #14: "The Wave Function Of The Universe": Damn, the time is flying. Part One ends in three weeks. And today there's a lot of non-commentary stuff I want to talk about, so the commentary itself will be pretty light.

First, I want to tell you that Jeremy Penner implemented Chapter 5's Gatekeeper in HTML5 for the 2012-in-One Glorious Developers Konference Kollection. You can play it online. I wouldn't classify Gatekeeper as fan art, though Jeremy is a fan, because he did it for me as a Kickstarter reward. But either way, it's pretty great!

Second, I want to talk about the process of designing the cover art. You don't have to read the book to "get" the cover—that wouldn't exactly help sales—but the design details are a product of in-world thinking. And at this point you've seen enough of the universe that I can go through that thinking without big spoilers.

The cover is by Chris Sobolowski, who wants me to mention his email address and let y'all know that he's available for graphic design work. So if your contract with Jenny Gallegos fell through due to her being a fictional character, contact Chris, who's a real person.

The process went like this: first, Kate and I laid out a huge number of cover ideas (some of which I've mentioned in earlier commentaries), and decided we wanted a cover themed around the ET hardware. At this point Kate got Chris involved, and Chris came up with a couple sketches that made the book look like a handheld computer. Here's one of them, next to the cover we ended up using:

I've spent months looking at the finished cover instead of this first draft, and what strikes me now is how similar they are. But what struck me at the time was that the computer looks like a piece of military hardware. It's dark and brooding, like one of Batman's gadgets. I wanted something flashy and colorful, like one of Batman's gadgets. Or like the Hitchhiker's Guide, to not use the same analogy twice in a row.

But I'm not the artist, and I'm also not a writer who thinks he can do the artist's job. So instead of demanding specific changes I wrote two different in-world histories for this handheld computer, and presented them to Chris.

In one story, the computer was a product of the Dhihe Coastal Coalition, the Farang civilization that produced the Brain Embryo. This explained the military appearance, and it had certain implications for changes he should make to the design. (E.g. making the buttons much smaller).

In the other story, the one we went with, the computer is an Ip Shkoy ripoff of a Dhihe design, produced by Perea, the conglomerate that also put out the game reviewed in this chapter, A Tower of Sand. (The glyphs on the final cover's buttons say "pe" "re" "a".) This has its own implications: the colors are now so bright as to verge on the garish, making the computer look more like a consumer product and making the book look more like a comedy and less like a technothriller.

In this story, the only remaining Farang detail is the Brain Embryo-esque mother-of-pearl finish. Stylistically it's reminiscent of the wood grain on an Atari 2600, but it tells a different story. When you were a kid, electricity was an advanced technology. Then all these space aliens showed up handing out blueprints for handheld computers. You want something that looks as different as possible from the wooden toys you had when you were young.

The cocktail cabinet-like second set of controls at the top comes from this bit I wrote about the computer's social context:

Why would the notoriously social Ip Shkoy build a single-user game system? It probably has something to do with sex. Imagine this portable computer as a product for the swinging bachelor, full of "sophisticated" adult games to break the ice, contact management applications to replace one's little black book, and a vibrator peripheral for when the night's inevitable failure leaves you alone in your crappy apartment.

This device would need to have some two-person controls, so that you can play those icebreaker games with your would-be conquest, but the overall feel would be that this is my computer, but I might let you use it.

Chris took the Ip Shkoy story and produced something that's very close to the final cover. Here's another side-by-side comparison:

After that, there was a lot of back and forth on trivial details like how much and what kinds of wear should be visible on the computer. Around this time Adam was designing the Pey Shkoy language for Tetsuo's Twitter feed, so I asked him to also design a script for use on the cover. This is also the point where Kate got the idea for a "Berlitz Traveler's Lexicon," which became "Pey Shkoy Benefits Humans."

I haven't mentioned the back cover, but at this point I think I've reached or exceeded the limit on how long this discussion can be without getting dull, so let's move on to chapter 14 commentary. But not before linking to the archive of last week's Twitter fun.

OK, that's plenty for this week. Next week: IT BEGINS. Oh, and Curic says, "Silence, puny human!"

Image credits: Jeremy Penner, Chris Sobolowski, NASA

<- Last week | Next week ->

Beautiful Soup 4 Beta 9: The latest beta is the first one I'm calling a release candidate, so if you've been waiting to try it out, now's your chance.

Beautiful Soup 4 Beta 10: Hey, two in a row. The "release candidate" thing was a lie; the big change is that I ported and incorporated Simon Willison's soupselect project. So you can now combine the Beautiful Soup API with CSS selectors. Except I just realized that I ported an old version of the code, so I'll be doing another release. Anyway, here it is in the BS4 docs.

[Comments] (4) No Sirens On Titan: Recently I read a 2001 book by Jeffrey Kluger, Moon Hunters, about unmanned missions to non-planetary Solar System bodies. It was a little out of date but there was a lot of good early stuff, like how every time one of the Ranger missions failed, Khrushchev would use it as a laugh line in a speech. ("The Soviet pennant on the moon has been awaiting an American pennant for a long time. It is starting to become lonesome.")

And the book's its very out-of-dateness reminded me of something I'd forgotten about. The Cassini probe was launched when I was in college (I remember a flyer for an anti-Cassini protest at JPL, the point being that Cassini might explode on the launchpad like a Ranger and contaminate Cape Canaveral with radioactivity), and in Moon Hunters it's on its way to Saturn. But now it's there, like a jump cut!

And (this is the part I'd forgotten) Cassini included a probe, Huygens, whose job it was to land on Titan. That's why it was always called "Cassini-Huygens" on the news. It wasn't just NASA and ESA fighting over the name of the mission. And Huygens was instrumented with a microphone. Wow!

So I went to the Internet looking for the microphone data, and I was not disappointed. By that I mean: I found some sound files. The Planetary Society offers 'sounds from the Huygens "Microphone"', and those quote marks should be a clue as to how this is going to turn out. This semi-technical description of the Acoustic Sensor Unit explains all: the "microphone" is part of a set of instruments that examined Titan's atmosphere during the descent. It's designed to detect a thunderstorm. It takes a sample once every two seconds, and its share of the Huygens bandwidth is a measly 480 bits per second. It's basically taking Polaroid pictures of the ambient sound—not something the human sense of hearing can deal with.

But the Planetary Society gamely processed the data into sound files approximating what you would hear if the microphone was much better. And... it sounds like wind, because Huygens is falling through atmosphere. No thunderstorms. There are files reconstructed from the data recorded while Huygens was sitting on the surface. (Well, it's still sitting on the surface, but from back when the battery worked.) Unfortunately, according to Peter Falkner of ESA, "all the sound we can hear is likely internal to the microphone."

So in terms of the gee-whiz factor, the microphone is a bit of a bust. It doesn't help that Huygens's only visible-light image from Titan's surface looks like a daguerreotype of Mars (see comparison). No wonder I forgot all about Huygens. As an antidote, I recommend Cassini's amazing photos of Titan from orbit, including radar images of the hydrocarbon lakes.

This wasn't the Planetary Society's first venture into astroacoustics. In the 1990s, three Berkley scientists developed "The Mars Microphone", an actual human-ear-like microphone that would work on Mars. Unfortunately it went to Mars with the Mars Polar Lander, which was lost during landing. Another Mars Microphone was supposed to go on the ESA Netlander mission, but that mission was canceled for being too expensive.

The Phoenix lander had a Huygens-like low-resolution microphone as part of its Mars Descent Imager, but (I'm synthesizing contradictory reports here) MARDI was not turned on during descent because it could have screwed up the landing. The MARDI microphone was turned on after landing, but no data was received.

It's a legacy of heroic striving towards almost certain disappointment, but there's another MARDI on the Mars Science Laboratory, so let's check back in August.

Image credits: ESA/NASA/JPL/University of Arizona, Roel van der Hoorn/NASA

: I just randomly discovered that a friend of mine, Will Thompson, cohosts a radio show about science fiction, and last week he put in a little plug for Constellation Games. Tune in at around 51:00 to hear me finally achieve my goal of having my work compared to Ken Macleod's. Admittedly by someone who hasn't read Constellation Games and doesn't seem very into Ken Macleod. But we don't get to choose how that kind of goal is achieved.

Constellation Games Author Commentary #15: "777": A few weeks ago I described the moment when I realized I'd written a novel that didn't pass the Bechdel test. I went back trying to "fix" the "problem". Should be easy, right? Five of the eight main characters are women. Well, I'm counting Curic as a woman because that's how Ariel thinks of her.

Actually, that's the problem: the whole novel is tight third-person limited from Ariel's POV. The women definitely have conversations that don't involve Ariel, but it's all off-camera. To dramatize such a conversation from Ariel's POV, he'd have to be spying on them or something.

Fortunately, there's a cheap fix: pull a Starbuck on male stock characters. I did this twice. In this chapter, I gender-swapped the Senator who gives Kinki Kwi the runaround. A similar thing will happen next week. In neither case is Ariel a direct party to the Bechdel-passing conversation. In this chapter, Curic recounts the conversation to him; in chapter 16 it's something he overhears on television.

So annoyed was I at the difficulty of a non-cheap fix, I decided to write all the bonus stories from the POV of the women. This made passing Bechdel trivial. Jenny talks to Bizarro Kate, Jenny talks to Curic. Done. You just have to be interested in what women might talk about.

(Attn. Bechdel nitpickers: if you're calling shenanigans because Curic never names the Senator, wait for chapter 16, geez.)

I hope you're hanging off a cliff. Here's last week's Twitter archive, and now the miscellaneous commentary:

And on that cheery note we end this week's commentary. Tune in next week for "False Daylight," the HEART-BEATING CONCLUSION to Part One, in which special guest star Charlene Siph will say, "Pardon my French."

Image credits: U.S. Congress (x2), Tropenmuseum of the Royal Tropical Institute, Wikimedia Commons user Silver_Spoon_Sockpop, NASA.

← Last week | Next week →

Worst Best Picture: Last night I dreamed I was teaching a college-level class on the history of film. Despite my total lack of qualifications, the class went well, because I focused more on film metadata than on history or craft. One of the things I did in dream-class was compare different measures of film quality, as I've been doing recently on NYCB with TV shows. In particular, I compared the winner of each year's Best Picture Oscar to IMDB's highest-rated movie of that year.

Well, prepare for a dream come true, because when I woke up I created that comparison in real life, using my old standby, IMDB data. I also brought in Wikipedia data, because it looks like IMDB doesn't publish any machine-readable information about awards or nominations. Wikipedia doesn't either, but you may have heard of a little library called Beautiful Soup.

Without further ado, here's the table. Well, I need a little more ado to explain what the headings mean.

YearBest PictureBPIMDBBPrankBest IMDB RatingBIRIMDBBIRnomAlignment
1927Wings7.80#9Metropolis8.40 0%
1928The Broadway Melody6.50#8La passion de Jeanne d'Arc8.30 0%
1929All Quiet on the Western Front8.10#1Chelovek s kino-apparatom8.40 0%
1930Cimarron6.30#20All Quiet on the Western Front8.10 0%
1931Grand Hotel7.70#11City Lights8.60 12%
1932Cavalcade6.40#24Trouble in Paradise8.20 10%
1934It Happened One Night8.30#1It Happened One Night8.30✓✓25%
1935Mutiny on the Bounty7.90#4A Night at the Opera8.10 41%
1936The Great Ziegfeld6.90#57Modern Times8.50 30%
1937The Life of Emile Zola7.40#31La grande illusion8.20 50%
1938You Can't Take It With You8.00#4The Lady Vanishes8.10 30%
1939Gone with the Wind8.20#3Mr. Smith Goes to Washington8.4040%
1941How Green Was My Valley7.90#7Citizen Kane8.6060%
1942Mrs. Miniver7.70#12Casablanca8.80 30%
1943Casablanca8.80#1The Ox-Bow Incident8.2030%
1944Going My Way7.40#31Double Indemnity8.6020%
1945The Lost Weekend8.10#4Les enfants du paradis8.30 20%
1946The Best Years of Our Lives8.30#2It's a Wonderful Life8.7040%
1947Gentleman's Agreement7.40#25Out of the Past8.10 0%
1948Hamlet7.90#12Ladri di biciclette8.50 40%
1949All the King's Men7.60#18The Third Man8.50 20%
1950All About Eve8.50#2Sunset Blvd.8.70 20%
1951An American in Paris7.30#44Strangers on a Train8.30 0%
1952The Greatest Show on Earth6.70#86Singin' in the Rain8.40 20%
1953From Here to Eternity7.90#10Le salaire de la peur8.30 0%
1954On the Waterfront8.40#3Shichinin no samurai8.80 20%
1955Marty7.70#18Les diaboliques8.30 0%
1956Around the World in 80 Days6.8?The Killing8.20 0%
1957The Bridge on the River Kwai8.40#512 Angry Men8.9060%
1958Gigi6.90#77Vertigo8.50 20%
1959Ben-Hur8.20#5Ningen no jôken8.80 20%
1960The Apartment8.40#2Psycho8.70 20%
1961West Side Story7.70#28Ningen no jôken8.80 20%
1962Lawrence of Arabia8.50#1Lawrence of Arabia8.50✓✓40%
1963Tom Jones7.00#74Pour la suite du monde8.50 0%
1964My Fair Lady7.90#15The T.A.M.I. Show8.40 0%
1965The Sound of Music7.90#20Obyknovennyy fashizm8.40 0%
1966A Man for All Seasons8.00#8Il buono, il brutto, il cattivo.9.00 20%
1967In the Heat of the Night8.00#8Cool Hand Luke8.30 20%
1968Oliver!7.50#41C'era una volta il West8.80 20%
1969Midnight Cowboy8.00#8Le chagrin et la pitié8.40 20%
1970Patton8.10#4Brigada Diverse intra în actiune8.10 20%
1971The French Connection7.90#12A Clockwork Orange8.5020%
1972The Godfather9.20#1The Godfather9.20✓✓20%
1973The Sting8.40#1The Sting8.40✓✓20%
1974The Godfather Part II9.00#1The Godfather: Part II9.00✓✓40%
1975One Flew Over the Cuckoo's Nest8.90#2Hababam sinifi9.00 40%
1976Rocky8.10#8Tosun Pasa8.70 20%
1977Annie Hall8.20#9Star Wars8.8020%
1978The Deer Hunter8.20#5Selvi boylum, al yazmalim8.50 20%
1979Kramer vs. Kramer7.70#27Apocalypse Now8.6020%
1980Ordinary People7.90#8The Shining8.50 40%
1981Chariots of Fire7.20#74Raiders of the Lost Ark8.7020%
1982Gandhi8.10#8Maratonci trce pocasni krug8.40 0%
1983Terms of Endearment7.40#42El sur8.20 0%
1984Amadeus8.40#4Balkanski spijun8.50 20%
1985Out of Africa7.00#83Zügürt Aga8.50 0%
1986Platoon8.20#4Aliens8.50 20%
1987The Last Emperor7.80#17Muhsin Bey8.40 0%
1988Rain Man8.00#12Nuovo Cinema Paradiso8.50 0%
1989Driving Miss Daisy7.40#45Indiana Jones and the Last Crusade8.30 0%
1990Dances with Wolves8.00#3Goodfellas8.8040%
1991The Silence of the Lambs8.70#1The Silence of the Lambs8.70✓✓60%
1992Unforgiven8.30#3Reservoir Dogs8.40 20%
1993Schindler's List8.90#1Schindler's List8.90✓✓40%
1994Forrest Gump8.70#4The Shawshank Redemption9.2060%
1995Braveheart8.40#3Se7en8.70 20%
1996The English Patient7.30#73Freebird... The Movie8.30 20%
1997Titanic7.40#51La vita è bella8.50 20%
1998Shakespeare in Love7.30#83American History X8.60 20%
1999American Beauty8.60#3Fight Club8.80 60%
2000Gladiator8.40#3Memento8.70 20%
2001A Beautiful Mind8.00#13The Lord of the Rings: The Fellowship of the Ring8.8020%
2002Chicago7.30#155The Last Just Man9.40 40%
2003The Lord of the Rings: The Return of the King8.80#1The Lord of the Rings: The Return of the King8.80✓✓20%
2004Million Dollar Baby8.20#7Eternal Sunshine of the Spotless Mind8.50 0%
2005Crash8.50#12Babam Ve Oglum8.70 0%
2006The Departed8.50#3Das Leben der Anderen8.50 20%
2007No Country for Old Men8.20#8Jogo de Cena8.70 0%
2008Slumdog Millionaire8.20#7The Dark Knight8.90 0%
2009The Hurt Locker7.80#30Puskás Hungary8.60 30%
2010The King's Speech8.30#17Inception8.9020%
2011The Artist8.20#15Drive9.00 0%

Ok, "Alignment". Take 1941 as an example. There were ten Best Picture nominees in 1941 (although it was called something different back then). So we take the top ten movies of 1941 by IMDB rating. Six of the Best Picture nominees are also in the top ten by IMDB rating, so the alignment for 1941 is 60%. At the other extreme, none of the five 1983 Best Picture nominees are in the IMDB top five for that year, so the alignment for 1983 is 0%.

For a few years I couldn't calculate BPrank, generally because the IMDB year of the Oscar winner differs from the year it won an Oscar. Early on this happens a lot because until 1933 the Academy Awards covered parts of two years. That's why "All Quiet on the Western Front" got the nod in the 1929 Oscars, and then showed up as the best-rated IMDB film of 1930. The "1929" Oscars weren't just held in 1930, they actually covered some movies released in 1930. But sometimes the dates just don't match up. Casablanca is the top-rated film of 1942 and the winner of the 1943 Oscar. This still happens: The Hurt Locker won Best Picture in 2009 but IMDB says it was released in 2008. In most cases I was able to find the year the film was released, according to IMDB, and put down down its ranking within that year for BPrank.

My dataset excludes TV shows, video games, direct-to-video releases, and shorts. (Excluding shorts required cross-referencing against IMDB's genre.list file.) I also excluded movies with fewer than 150 votes on IMDB. I did what I could to exclude movies that are mainly concert footage, although Freebird... The Movie still made it on there. I did not exclude documentaries or foreign films.

Finally, to fulfil the promise of this post's title. According to IMDB, the worst movie ever to win Best Picture is 1930/1931's winner, "Cimmaron" (IMDB:6.3). But if you look relative to what else came out the same year, the worst Best Picture is "Chicago" (IMDB:7.5), which IMDB data ranks at the 155th-best movie of 2002. However you look at it, the best movie ever to win Best Picture is 1974's The Godfather: Part II (IMDB:9.00).

PS: Why are the Oscar nominees linked and the IMDB champions not linked? Because IMDB DATASET DOESN'T INCLUDE ANY URLS ARGH.

PPS: I did something similar for board games as part of Loaded Dice. I called it the "People's Spiel des Jahres." I didn't put up the table because the results were uninterestingly full of wargames. But wargames generally don't get nominated for Spiel des Jahres, so maybe I should exclude them and try it again.

[Comments] (7) Constellation Games Author Commentary #16: "False Daylight": Here it is, the season finale! We've got the whole contact mission going to shit, plus a game review! Don't worry, everything will turn out fine. Maybe.

Last Friday I went to the Brooklyn Museum to take some pictures for my final Constellation Games commentary. (And if you can somehow turn that into a spoiler, I salute you.) It's a fun museum, like a much less formal version of the Met. While walking through the room of Indian sculpture I passed a curator cleaning one of the sculptures with a Shop Vac and a brush. When I showed a flinch of uncertainty about where the stairwell was, a security guard told me and talked my ear off about what I should see next, then opened up the cabinet containing the emergency fire hose and took out a "What's Happening" brochure, which she used for reference and then gave to me. Also, the neighboring Botanic Garden was free to get in because it's winter and everything's dead.

Friend of the show and beta reader Brendan Adkins has been writing erudite-ass essays about the novel's symbolism, and I'd make fun of him for being pretentious except he's right about most of it. My earlier coyness notwithstanding, I did reuse some of the character of Ariel from The Tempest, the guy with magic powers who gets bossed around all the time. Don't you think The Tempest would be more interesting if it were more about the PEOPLE WITH MAGIC POWERS and less about the Renaissance douchebags? We can only dream. For now, we sup the slender soup of the Twitter archive and this week's commentary:

With that, I'd like to thank you for following me through "Hardware", the first part of Constellation Games. After a short season break of seven days, we'll pick up with Part Two, "Software." It all starts next Tuesday, when Ariel will say, "Probably the most expensive penis in history."

Image credits: Wikimedia Commons user Anynobody, Paul Mutant, U.S. Air Force

← Last week | Next week →

Beautiful Soup 4.0.1: It's been nearly two weeks since the release of the last BS4 beta, and no one has reported problems with the code. I'm sure there are still problems, but at this point the best way to find them is to do an official release. So, I present the first full release of Beautiful Soup 4, 4.0.1![0]

If you're just tuning in, Beautiful Soup 4 is nearly a complete rewrite that works on Python 2 and Python 3. Instead of a custom-built parser from 2006, Beautiful Soup 4 sits on top of lxml (for speed) or html5lib (for browser-like parsing) or the built-in HTMLParser (for convenience). Methods and attributes are renamed for PEP 8 compliance, and Beautiful Soup 4 incorporates the soupselect project to provide basic CSS selector support. I completely rewrote the documentation, Beautiful Soup's secret weapon since 3.0, for clarity and completeness.

That's the major stuff. Even though most of the code has changed, my goal was not to add a bunch more features, but to make sure Beautiful Soup will still be usable and useful years into the future.

Beautiful Soup 4 is mostly but not entirely backwards compatible with Beautiful Soup 3. Most users should be able to switch from 3 to 4 just by changing an import line. In the Python tradition of sticking a number on the end of your module name when you break backwards compatibility, I've released it as a separate package, beautifulsoup4.

This release also inaugurates the Beautiful Soup Hall of Fame, featuring the uses of Beautiful Soup that I personally find the coolest or highest-profile.

So, try out Beautiful Soup 4 the next time you need to do some screen-scraping. If you've used Beautiful Soup 3, I think you'll be pleasantly surprised. If not, I'll just say I hope you like it.

I've thanked them before, but special thanks are once again due to Thomas Kluyver and Ezio Melotti for helping me get everything working under Python 3.

[0] The first release is called 4.0.1 instead of 4.0.0 because I've been bitten by clever packagers before and I don't want them thinking "4.0.0" is an earlier version than "4.0.0b10".

[Comments] (5) The Pitch!: Hey, folks, Leonard here, telling you that if you haven't bought your copy of Constellation Games, still the greatest novel about video games from outer space, now is probably the single best time to buy.

Sure, you were skeptical at first. Ever since standing in line for that midnight showing of The Phantom Menace, you've been wary of things that seem awesome. You thought, "can this guy bring to comedic science fiction the same epic scope we saw in RESTful Web Services?" But now Part One of the novel has been sent to subscribers, and random commentary readers are calling it "STONE COLD BRILLIANT" and "some of the most fun I've had in years". Even normally reputable publications like Wired's GeekDad have called it a "wild ride" that's "so much fun to read".

Now here's where your late-adopterhood pays off: with the completion of Part One, all subscribers have been given access to a compiled PDF of the novel so far. That's about 50,000 words in a single unencumbered file you can drop onto your ebook reader or your fancy smartphone.

This means you can subscribe to CG for $5, read the first sixteen chapters in one huge gulp, and then start reading the rest of the story as the chapters come out every Tuesday. Or you can subscribe at the $20 level, read the PDF at a more leisurely pace, and finish the whole story when the paperback comes out next month. For $20 you'll also get three bonus stories that take place before/during/after the novel, and an irreverent guide to a pathologically strange alien language.

With all this stuff on the table, you silently think, why not keep waiting? Won't we just offer more in the future? THE ANSWER IS NO. Once the paperback comes out, the bonus stories and language guide stop being pack-ins and become "sold separately"s. The paperback on its own will cost $20. (I don't know exactly how this is going to happen, but that's the gist of it.) So the best deal is to shell out $20 now for early access to Part One and a lot of preorder bonuses. If you hate paper, you can pay $5, catch up on the novel the way you would a web comic, and buy the bonus material later.

Friend, don't let the fact that I seem to think it's a great idea to call you "friend" in a sales pitch, dissuade you from shelling out your hard-earned PayPal balance for this quality entertainment. Here's the subscription page, and here are the first two chapters so you can see what you're getting. The whole thing could be yours for the cost of a really, really enormous gumball, a gumball that won't fit in your mouth so why even bother? This is a much better deal.

[Comments] (1) Archive: On Friday I decoded a BCDIC punch card that my dad used to sign up for classes at UCLA in 1968. It says, "C 6088312496U40" What drove me to this? Well:

Some addenda acquired from readers while I performed that blob of text on identica/Twitter:

[Comments] (8) Constellation Games Author Commentary #17: "Their First Contact Was Better": This chapter has the best title in the whole book. Just gettin' that out of the way. This week sets up the plot for the next couple months while focusing the action on the emotional core of Part Two: Ariel's relationships with other humans people from Earth.

I really liked the comments from last week's commentary--two people I didn't know were reading said hello, Brendan responded to my evaluation of his reader commentary, and my friend Zack (whose name I stupidly misspelled) disputed my use of Creative License. If you're enjoying these commentaries, please do say hi in the comments.

Look on last week's Twitter archive, ye mighty, and despair. Tetsuo won't be posting for a while because of the Internet blackout. Here's this week's commentary:

And there we go. Be sure to tune in next week, when Ariel's all like, that's right, motherfucker, you're not the only one who can use paper. Oh, and Tetsuo writes a game review!

Image credits: NASA, unknown, Flickr user puuikibeach.

← Last week | Next week →

DLC Upsell: Did you buy one of the really cheap Constellation Games packages, and are now regretting your decision? Sorry, no refunds. Oh, you want a package with more stuff? You're in luck! Use the Candlemark & Gleam contact form to ask for an upgrade, and Kate will upgrade your subscription and invoice you for the difference.

Be sure to say which package you want. "Gold" ($12) is the one with the (electronic) phrasebook and bonus stories.

Schmeckel Needs a Van: Schmeckel, the Jewish transgender punk band most familiar to NYCB readers, has a Kickstarter project to get a sweet tour van. This lets me combine two great things in one post: crowdfunding and cool doods like Schmeckel frontman Lucian Kahn, who will probably get the Teenage Mutant Ninja Turtles airbrushed onto the tour van.

I'm still going through the Kickstarter firehose every day, but the number of projects I've backed has gone way down since the heady Month of Kickstarter. This one's an auto-back, though. Backing a crowdfunding project is like being pen pals with the Internet, so give it a shot.

[Comments] (1) Constellation Games Author Commentary #18: "The Amazing Colossal Man-in-the-Middle": Be warned! This week's commentary goes deep into the workings of a scene that was originally a disaster, and the rewrite process that made it hopefully only a minor disappointment. Fortify yourself with last week's Twitter archive before proceeding.

Tune in next week for the shocking chapter 19, in which Ariel travels the well-worn road from "unreliable narrator" to "flat-out liar." The chapter in which BEA Agent Fowler will say the ridiculous line everyone tried to get me to cut, but I refused! For you, my readers.

Image credits: Flickr user windygig, Pepe Medina, Danny Cornelissen.

← Last week | Next week →

Dada Skies: Over the years, my series of "Dada" projects has brought meaninglessness to formerly meaningful things: board games, Shakespeare, comics. Today, for my April 1 project I present Dada Skies, which randomly rearranges things that were randomly arranged to begin with: the stars as seen from Earth. It's a view I find strangely relaxing.

Dada Skies works like Dada Maps, by transcluding image tiles from a web service into a mosaic. In this case the service is the one provided by the Sloan Digital Sky Survey. There are enhancements I'd like to make to the view, but this is what I've got time for right now, and I want to do my part to keep alive the nascent tradition of releasing cool things on April 1.

Constellation Games Game Design Promo: My editor has an extra advance copy of Constellation Games, which she asked me to give away in a gala promotional event! This put me in a pickle: I love giving things away, but I really hate "promotional events". So I came up with something fun: you can win a copy of the paperback (or, if you're already a subscriber, a subscription upgrade), by fleshing out the Constellation Database of Electronic Games of a Certain Complexity.

For those who haven't read Constellation Games: the CDBOEGOACC is an enormous XML document containing metadata for entertainment software from countless alien civilizations, as well as the computers and peripherals necessary to run that software. Like, imagine if Jason Scott worked for the Culture. To give you the idea, here are some CDBOEGOACC quotes from the narrator's Twitter feed:

Every CDBOEGOACC entry is a tiny science-fiction story about an alien culture and someone who responded to their culture by making a game. If you like this idea, you are the target audience for Constellation Games and you should enter this contest to win a copy. The CDBOEGOACC is the part of the book that was the most fun to write, and I can't think of a better gala promotional event than asking you to come up with these mini-stories.

You can write something tweet-sized like the quotes above, or you can flesh out an idea a bit more and put it on your weblog, or whatever. It doesn't matter to me, so long as you somehow make sure I know about it. Only entries I know about will be judged. Surefire ways to make sure I know about it: send me email, post a link in the comments below, or use the unwieldy hashtag #cdboegoacc on Twitter or Identica.

The contest ends when I wake up in the morning on April 10, one week from tomorrow, and pick my favorite CDBOEGOACC entry. We'll mail the winner their advance copy right away, which means you'll get the book a few days before its official release on April 17. (As a bonus, this uncorrected proof contains a huge continuity error in chapter 35, which you can find and then feel superior to me.) I'll also pick a random winner, who will get a free base subscription to the serial, plus a collected ebook once the serialization is done.

Since the goal is to make cool things, you can enter more than once to improve your chance of getting the paperback, but the random drawing is one entry per person. I will judge entries on the twin criteria of "sensawunda" and "comedy", the binary star by which I steer my novelist's ship. Have fun!

[Comments] (6) Constellation Games Author Commentary #19, "Implementation Details": We're more than halfway through the book! Traditionally, it's around this time that an author starts to have doubts about having signed on for this huge project. It's happened on all three of my books and it's happening again with this commentary. I have a great time writing this stuff every week, and I hope you're enjoying it, but it does take a lot of time. Time which might be better spent working on my second novel, "A Fire Upon the Derp".

Uh, anyway, last week's Twitter archive. Don't forget about the game design contest, which ends next week. This week we meet Dana Light 2.0, and the totally different human person who's not Dana, Svetlana Sveta.

That's the week! Stay tuned for next week's special tabletop gaming episode, when Ariel will say, "I think we should just nuke each other once and get it out of our systems."

Image credits: Wikimedia user Ecelan, Joshua Kaufman, Flickr user ePi.Longo.

← Last week | Next week →

TUNS: For a while I've been gathering cool space-themed pictures to illustrate the Constellation Games commentary, but there's way more and they're way more varied than I need. Rather than abandoning this embarrassment of visual riches, I recently started posting a couple pictures a day to my microblog using the hashtag #retrorocket, so named because I mostly focus on cool-looking old tech and people working with or building it.

At the risk of revealing all my secrets, I'm getting the #retrorocket pictures by harvesting the Internet Archive's NASA Images site, one year at a time. I've combed through 1969-1988, and my technique will break down around 1994, when there start to be thousands of pictures for each year (even 1969 wasn't that bad). But 1994 is not all that retro, really, is it? Yeah, it's kinda retro.

Despite the name, NASA Images has a lot of non-images: mainly movies and technical documents. Recently one tech document caught my eye: Technology Utilization Network System, a 1987 document laying out NASA's recommendations for off-the-shelf PC hardware and software.

This document pulls no punches, naming brand names, presenting huge benchmark tables, and spelling out just what it takes to outfit an effective mid-80s networked office on the taxpayer's dime. This is a time before Windows, in an office environment without Unix. Let's take a look at this document and see which products have the Right Stuff, and which fizzle on the launch pad. (n.b. Entertainment Weekly didn't want this for some reason, and I'm too lazy to change the segue.)

We'll start with the basic PC recommendation. "The recommended workstation for TUNS is the Compaq DeskPro 286 with a 40 Mb hard disk." Each should be equipped with an EGA card and a color monitor. "The estimated GSA cost... is $4,087." (About $7700 in 2010 dollars.)

The use as a workstation of one of the newer 386 machines (based on the Intel 80386 CPU chip) is not currently recommended. The power provided by the 386 system is more than that required of the workstation.

Unlike a lot of offices in 1987, NASA understands the importance of networking. That's why each workstation is fitted with a 3Com Etherlink card ($451) and connected to a local file server running Novell Advanced Netware/286. Netware wins out over now-obscure competitors like 3Com's 3+ Share, Banyon VINES/286, Fox 10-net, and Lee Data's LANMASTER. The Internet stack is not even considered: I'm sure NASA's scientific installations are on the Internet by now, but it's not really an option for IBM PCs, and the term "intranet" doesn't exist.

The Compaq 286 used for workstations can also act as the file server on a small LAN. But for a larger LAN, you do need to buy that 386, and for the really big installations, it's got to be "a Novell T286B with a 183 Mb of hard drive space". And remember to buy name-brand:

Although many vendors claim to sell "AT clones," ISN has occasionally found very subtle differences in the performance of these "clones," which may result in problems during system integration.

For connecting to external sites and databases, each workstation is outfitted with a Hayes Smartmodem 2400 at $579.

ISN does not recommend installation of 9600 baud modems at this point. The lack of standard protocols, error-correction methods and data compression techniques for 9600 baud communications means that two modems from different vendors will rarely communicate with each other at 9600 baud.

Printer time! TUNS spells out recommendations for cheapo dot-matrix printers (the Epson FX-286e, $527), letter-quality daisywheel printers (the Diablo D80IF, $1523), and laser printers for impressing the boss (the HP Laserjet Series II, $1795). Note that the most expensive printer is half the price of the workstation PC.

Two printers, the Brother Twinwriter 5 and the Fortis DH-45, include both dot-matrix and daisy-wheel print mechanisms. The two companies are actually marketing the same printer under different labels. Although this printer was initially viewed as an exciting combination of functionality at a reasonable price, it was excluded from further consideration after the Twinwriter 5 vendor reported extremely poor reliability and great customer dissatisfaction.

What about software? For the most part, TUNS recommends off-the-shelf 80s office software, Lotus 1-2-3 (GSA cost: $305) and WordPerfect 4.2 ($173):

Although the evaluation scores for WordPerfect and Microsoft Word show only a two point difference, the evaluation team highly recommends WordPerfect because the evaluation team found it much easier to use WordPerfect's ACSII-to-document transfer features.

But they choose Unify, a database I've never heard of, over 80s heavyweights like dBase and Clipper. Why? Because Unity just has more stuff, like a C library.

Oracle was eliminated as a possibility because a LAN version of the software, although in development for some time, is still not available.

Each 286 workstation is loaded with about $100 worth of utilities: Popular ones like Sidekick and Norton Utilities, as well as some more obscure ones: "Sideways to aid in the printing of large spreadsheets; ScreenSave to protect the life of the monitors; KeyBuffer to allow the user to enter characters from the keyboard at a faster rate than acceptable under DOS; and FilePath to aid in the use of multiple directories and sub-directories."

But the best part of the whole document is the section on email. The document identifies a large number of requirements for an email system, such as:

The sender must be able to identify a single recipient, multiple recipients, and a "group" mailcode consisting of multiple mail identification codes but addressed as one unit.

And then presents a huge table comparing the competitors (again, Internet email is not even on the radar). And then decides to just keep using "the NASAMAIL system currently available throughout NASA." NASAMAIL was actually an installation of Sprint Telemail, which you can read a little more about in RFC 1168, including a mention of a Telemail-Internet mail gateway at NASA Ames.

It's a little odd that hardware of this description almost never shows up in the NASA Images archive! (I did see one mid-80s IBM PC sitting on someone's desk, but when I went back to look for it as an illustration I couldn't find it.) I think these recommendations were mostly for clerical workers and managers, and that the engineers and scientists (who show up quite a bit in the archive) used minicomputers, Unix workstations, and mainframes into the 90s.

I'm probably not gonna go through any more of these documents in any detail, but here are two others I found really interesting: the public affairs plan for STS-1, the first Space Shuttle flight, and the original press kit for Apollo 13.

Constellation Games Author Commentary #20, "Feature Creep": This week: Dana earns her paycheck, we learn the shocking (if you're a Farang) secret of Sayable Spice, and Ariel stresses out and gets a little stalkery.

I'm not sure who put a bunch of tags on CG's LibraryThing page, but they're pretty great. (and full of spoilers) Apparently CG is a bildungsroman about cosplay, douchebags, mecha-godzilla, real replicas, and vastening. I don't disagree!

Come for the Twitter archive, stay for the commentary. CDBOEGOACC contest winners will be announced as soon as I finish the post.

Part Two's plot kicks into high gear next week, with the terrifying chapter 21, "Her". The chapter in which Tetsuo will say (but not demonstrate) "Sexual pair bonding!" Also next week: you can get a paper copy of the book and read the whole rest of the story! Then complain about how I'm not putting up this commentary fast enough.

Photo credits: US Army, US Department of Defense, Flickr user my_eye.

← Last week Next week →

CDBOEGOACC Contest Results: I was worried that no one would enter the CDBOEGOACC contest and it would be like a party where no one showed up. But ten people put in 29 entries, which is a pretty good party. I'm pretty sure all the entrants are Constellation Games subscribers, so I gotta work on my crossover appeal, but I'm happy with the turnout.

Once again, the grand prize is a galley copy of Constellation Games which will hopefully be delivered a few days before the paperback comes out. Even I don't have a galley copy, so you know it's exclusive. There'll also be a random drawing, and the winner will get a free basic-level subscription. Although since everyone who entered is already a subscriber, I don't know if you want that. Maybe you can give it to a friend, maybe you can negotiate a different prize with Kate, the publisher.

Anyway, let's take a look at the entries:

All the other entries were short concept quotes posted to Twitter. I've archived all of them here because I really hate the way Twitter's UI consigns the past to a dark, eternal oubliette.

I thought all the entries were really good, although Adam may have been phoning it in. C'mon, Adam, this ain't Apples to Apples. Anyway, I'm excluding Adam and Brendan from consideration because they were beta readers. Here are my three favorites (apart from Andrew's, which I've already spilled the beans that it didn't win):

And the winner of the Constellation Games galley copy is... Ornithopter! I loved their game concept because it tied into a theme I don't really explore in CG: the repurposing of really awful historical situations as entertainment simulations.

But don't give up yet, non-disqualified entrants! We've still got the random drawing. And here's some Python code to perform it:

>>> import random
>>> entrants = ["Andrew Perry", "Ornithopter", "George Buckenham", "Benhimself", "Gus Andrews", "Tikitu de Jager", "Mirabai Knight"]
>>> random.choice(entrants)
'Andrew Perry'

OK, well, that worked out. Andrew Perry will receive the random drawing prize, and we'll just call it the CDBOEGOACC Jury Prize.

And that's it for the gala CDBOEGOACC giveaway contest! I hope it was a fun time. I certainly enjoyed watching people come up with this stuff.

Beautiful Soup 4.0.4: I haven't been mentioning all the Beautiful Soup releases I've been doing, because they're just maintenance releases, but I'll mention them occasionally because fixing bugs (and determining what's a bug and what's not) still takes up a fair amount of my time. We're up to 4.0.4 and I've fixed/worked around a number of bugs, including one that prevented Beautiful Soup from parsing an XML document larger than about 512 bytes.

I've also updated the docs quite a bit to help people solve common problems. I'm not sure where to stop, because Beautiful Soup is the first Python library a lot of people use, so it gets caught up in questions like "how do I install Python packages on Windows?" (It's not easy.)

CS161: You could get a computer science education just by taking classes called CS161:

[Comments] (7) Constellation Games Author Commentary #21, "Her": This is one of the most important chapters in the book. I need you to start feeling the weight of the Constellation as a geological-time, astronomical-scale project, not just as the country where Tetsuo and Curic were born. The best way is to show you the Earth contact mission through the eyes of the one who's seen it all: the Her superorganism.

Twitter was quiet last week, and will be even quieter this week because the whole chapter takes place between 3 and 5 AM on a Tuesday. I think you should do some work this week instead of checking Twitter all the time.

Today is the official release of the paperback edition of Constellation Games! How does this work? I have no clue. I believe those of you who ordered the paperback will be getting it sometime this week, and those who have been resolutely refusing to preorder will soon be able to order it from the online store or get it from a local indie. In the meantime, how about a bulleted list? I know all about those.

On that note: tune in next Tuesday (or read the paperback) for Ariel's terrible, horrible, no good, very bad day. During the course of which he will say, "I'm more worried about my friend's problem than in coming up with the perfect urine-related analogy for the problem."

Image credits: Joachim Barrande, Flickr user fubsan

← Last week | Next week →

Some Interesting Game Aliens: Editor Kate pointed me to this list of the best and worst aliens in video games. Without wanting to say anything bad about that list, I noticed that it (and similar lists I've found online) focuses heavily on the visual design of humanoid aliens from first-person shooters. So I thought I'd make my own list, in honor of the print release of Constellation Games (Publishers Weekly calls it "fun"!), highlighting some video game aliens that I find interesting from a game design perspective. I'm sure there are plenty more I haven't heard of, so if you have any additional suggestions, I'd like to hear about them in comments.

The invaders (Space Invaders)

Just gonna get this one out of the way. Among the most iconic aliens ever devised, the invaders in the middle row have come to symbolize video games as a whole. Apart from their visual style there's nothing there, but the style is great.

The blobs (A Boy and his Blob)

These were my gut-reaction nomination for "best", because they're the only aliens I can think of that only make sense in a video game. The blob in A Boy and his Blob is a game mechanic personified: a sentient inventory. This causes serious problems if you try to think about the species outside the context of the game—when your toilet clogs on Blobolonia, do you feed your friend a jellybean and turn them into a plunger? But within the game, it works great.

The Melnorme (Star Control II)

If you want vivid alien characterizations, Star Control II is your game. Unfortunately, most of those characterizations are based on asinine stereotypes. That's why the Melnorme win it for me. It would be easy to make "the trader race" greedy and sleazy—in fact, SC2 does this with the other "trader race", the Druuge. But the Melnorme are friendly cosmopolitans who're fun to talk to. And they occasionally drop ominous hints that are never followed up on anywhere in the game.

That said, there's nothing game-y about the Melnorme, they just happen to be in a game. Every race in SC2 could guest on Star Trek, and many of them have. So I'm not pushing this one very hard. At least they're not humanoid.

Honorable SC2 mentions: the Zoq-Fot-Pik, who are silly and fun; and the Orz, who are similar to but not as well-executed as...

The Endermen (Minecraft)

From another dimension rather than from outer space, but aliens nonetheless. The Roadside Picnic of video game aliens; the Endermen follow rules that make perfect sense... to them. Their random rearrangement of blocks and sudden fits of aggro bear a twisted resemblance to your own behavior in Minecraft. Like you, they are interlopers in the game world, and their behavior was designed to challenge your dominance of it.

Giygas (Earthbound)

I almost didn't count Giygas for the same reason I'm not counting the Meteor from Maniac Mansion: I already gave the "cool aliens that happen to be in a game" nod to Star Control 2. But the final battle of Earthbound does some interesting things with the game's generic JRPG battle system, so sure, I'll count it.

"Them" (The Legend of Zelda: Majora's Mask)/The Martians (Metal Slug 2)

These aliens are composed entirely of pop culture cliches. The interesting thing is not their design but the fact that they show up at all. These aliens aren't just from another planet: they're from another genre. The Martians show up and abruptly turn your tasteless WWII run-and-gun into a '50s saucer flick. And "They" show up in a Zelda game. Albeit a Zelda game that also features a time loop and travel to the moon.

When I asked on Twitter for peoples' favorite video game aliens, the only response I got (thanks, Laura!) was also in the vicinity of this category: Crypto from Destroy All Humans, which I haven't played but which looks just like the movie Mars Attacks!.

Board game bonus! The Loser (Cosmic Encounter)

Cosmic Encounter is all about embodying game mechanics into alien species, and the Loser is the best, because it forces you to have debates about what it means to "win" a game. Whatever chaos is happening due to the other players' equally unbalanced species choices, the Loser multiplies it. My absolute fave.

And there you go. Let me know of any you think I missed—this is a bizarrely underexplored field, though maybe I just think it's bizarrely underexplored because I spent a long time writing a novel about it. I mean, I also thought it was weird no one had explained how game titles work.

Image credits: Flickr user philosofia, DeviantArt user aeonpants, DeviantArt user dczanik, DeviantArt user EliteParanoid, SNK, Felicia Cano.

Handheld Device:

[Comments] (4) Constellation Games Author Commentary #22, "Nerfed": This chapter is bad news for Ariel but good news for me, because yesterday I got my box of author copies. That means those of you who ordered paperbacks should be getting them soon. This EXCLUSIVE SIDE COVER REVEAL shows the playtime synergies possible for those who shelled out for the Adamantium package with its USB key.

In a couple weeks I may do a special spoiler post so that those who've read the whole book can ask me questions about stuff that hasn't been serialized yet, rather than waiting until the appropriate chapter comes up in the serialization.

There's a solitary tweet in last week's microblog archive. Let's move on to the commentary:

I came into this chapter treating it like a chess problem. I had all the pieces on the board and the question was how Ariel would outsmart the BEA again, the way he did with Dana. I sat down and puzzled over this and had a long conversation with Beth trying to figure out how to get Ariel out of this scrape.

And after about forty-five minutes of being totally stumped I asked myself the obvious question: Why am I trying to get Ariel out of this?

At this point I knew how the book would end (it turns out I only knew how Part Two would end). I didn't have the plot planned out between now and then, but at some point I needed to break Ariel. This is the perfect time to start. He's stressed out from Sayable Spice work, shaken from his encounter with Her and the revelation of Curic's ambivalence. Let's just go for it.

So I destroyed Ariel's house. He tries all the clever gambits I thought of for him, and they don't work, and he loses. And that was the single best thing that ever happened to the book. From this point on the characters are developed enough that I can do whatever horrible things I want to them. They'll either figure something out and come out on top, or they'll lose, and either way it'll be interesting reading.

A lot of this week's commentary is me telling stories that are at best tangentially related to the chapter. But if that's good enough for big-name DVD commentaries, it's good enough for me:

Pretty chunky commentary this week, hope you enjoyed it. Be sure to tune in next week for chapter 23, when Jenny will say, "I don't masturbate to it."

Image credits: yours truly, the city of Austin, NASA/Ames, Wikimedia Commons user Hoshie.

← Last week | Next week →

o Invasion: There are some rogue os in the Constellation Games acknowledgements. "N. K. Jemison" should refer to the Nebula and Hugo-nominated author N. K. Jemisin, not to a person who doesn't exist. And "Beth Lermon" is of course my friend Beth Lerman.

Surely these are far from the only typos in the book [I originally wrote "on the book"], but they're really bad, and deserve a special correction, and my apologies.

Hidden Treasures: There's a competition going on right now called "Hubble's Hidden Treasures", a competition to identify amazing but overlooked images within the Hubble Space Telescope's massive twenty-year data archive. I have no special expertise in image processing or astronomy, but I so coveted the prize of an iPad[0] that I thought I'd try my hand.

See, most people who enter this contest are taking pictures of nebulae and galaxies and setting up the colors to represent different wavelengths of light. Here's a nice example. These images have aesthetic value but are merely emblematic of Hubble's scientific value, which comes from the raw data. As long as we're playing that game, why not find aesthetic satisfaction in Hubble's glitches? My innovative thinking will surely net me the prize.

Just as an example, here's a super-washed-out image that could have the date and place of your punk show written in the middle of it. Lots of images have glitchy edges, and my original plan was to make a collage of the glitchy edges. But then I found the image to the right, which blew my stupid idea out of the water.

I call this ghostly image "hst_05909_01_wfpc2_fr418n18_pc", because that's its Hubble dataset ID, but if I were hanging it in an art gallery I'd call it "Cygnus", because that's the search I used to find it. Here it is big and zoomable. Here's a larger image (it's the full WFPC2 image--the one to your right comes from the Planetary Camera bit of the WFPC2) which I think makes it clear the feature you see is a photographic artifact and not a real thing in space.

I don't have anything more to say about hst_05909_01_wfpc2_fr418n18_pc; it's just a nice piece of abstract photography. The Hubble Legacy Archive is great stuff in general, though.

[0] Can the winner get 5 minutes of Hubble observation time or something contest-specific? Just trying to think outside the box here. The box labeled "box of iPads for use as contest prizes".

[Comments] (4) Constellation Games Author Commentary #23, "Trust Us, We're Expert Systems": I do believe it's time for a super dark relationship chapter. That's what I believed when I wrote this, anyway. Clearly I was eager to keep landing the body blows on Ariel after chapter 22.

It's always sadder when characters bring about their own destruction than when someone else screws them over. In the second draft this episode was a little less of a downer, because while Ariel was living in coffee shop exile he had a great idea for a mobile app he could write very quickly and sell to recoup some of his losses from the last chapter. So all the awful stuff between him and Dana and Jenny still happened, but at least we ended on a positive note. Who needs that, right? Just hang tough.

I cut out the "mobile app" subplot because it added a lot of story complexity for no real benefit. Ariel's already working on a software project, so why add another one? He puts out a press release for it next chapter, but I just turned it into a press release for the Sayable Spice: Earth Remix demo. Works fine.

I'll talk about the proposed app after the miscellaneous commentary, because this week's is a little light and next week's will probably be huge. (Spoiler: Tetsuo comes to Earth.)

Oh, and here's last week's Twitter archive.

Okay, about that mobile app. One thing that barely shows up in Constellation Games, but was very important in "Vanilla", is the contact audit. To sponsor an ET for an American visa (as Ariel did for Curic and Bai is now doing for Tetsuo), you need to register with the BEA as a contactee. You're supposed to do the same if you have any prolonged or repeated contact with ETs, although the Greenland Treaty is quickly making that unenforcable.

All registered contactees need to come in to their local field office twice a year for a sit-down interview about all the ETs they've encountered over the past six months. It's generally a formality; the point is to make contact with ETs a pain in the ass and, on the margin, discourage people from having anything to do with the Constellation.

Ariel's mobile app idea was a "contact manager", a way of taking the pain out of your contact audit. Whenever you meet an ET you just take a picture of them—something you were going to do anyway—and enter their name. Then your contact audit is effectively just a slideshow.

In the second draft, Ariel's key business insight was that although relatively few people really need this app, a lot of people want to be the sort of person who needs it, so they'd buy it aspirationally. Clever idea, but not really necessary for the story, so out it went.

That's all I got. Tune in next week for the TETSUOUS continuation, in which Ariel will say "Jesus Christ the great moral teacher!"

Image credits: Tim Patterson, Doug Kline.

← Last week | Next week →

[Comments] (6) Constellation Games Author Commentary #24, "Homebrew": Tetsuo's back, and he brought exposition! This week we take a break from beating up Ariel, and just startle him a lot while he's high.

This week's Twitter feed is almost entirely devoted to Tetsuo's first day on Earth. Today also marks the start of the Great Microblog Bonus Content Migration. Prior to this point, Ariel's feed was where it was at. But Ariel's now too busy to tweet a lot, and he'll stay busy until the end of the book. Tetsuo's feed will be picking up the slack, chronicling his adventures on Earth and showing what the other characters are doing as the focus of the novel tightens around Ariel. If you're following Ariel but not Tetsuo, this is the week to get on the Tetsuo Train (patent pending).

(NB. I won't be setting a Twitter profile image for Tetsuo because the default image is a much better depiction of him than anything I could come up with.)

Speaking of Twitter feeds, here's last week's. And before we get started, some extratextual comments:

Now that the paperback is out, you can get it from your regular source for paperbacks: Barnes and Noble or Amazon, or order it from a bookstore through Ingram, or is there any chance a bookstore might proactively stock it based on the radioactively glowing Publishers Weekly review? I wouldn't depend on it, but that would be nice. Note that the paperback is the only thing you can get from your usual source—bonuses are only available from the C&G store, and the ebook edition won't be out until serialization wraps up at the end of July.

I'm not sure when people who are getting bonus stories and USB keys will be receiving them, so lemme just tell you this now. For our mutual peace of mind, I ask that you hold off reading those stories until you finish the novel. "Dana no Chousen" takes place after the novel; "Found Objects" casually blows two of the Part Three reveals; and "The Time Somn Died" is, in my opinion, actually incomprehensible unless you've read the whole book and know a lot more about Ashley and the Constellation than you do now.

You can read "Pey Shkoy Benefits Humans" anytime, even though it "takes place" after the novel. It's got basic spoilers like "Tetsuo still teaches at UT Austin", but guess what, I just spoiled you on that.

Finally, an obligatory reminder: although has been an instance where the week's chapter didn't show up in the web archive, the emails are consistently sent out every week, and if you didn't get a chapter it's almost certainly in your spam folder.

Now on to real commentary. I wrote the contact event as a positive catastrophe, a shocking world-changing event out of nowhere which is absolutely wonderful. These days a catastrophe leaves a maelstrom of frantic Internet communication in its wake, a stew of information and guesses and wishful thinking and propaganda that slowly settle into an agreed-upon set of facts and opinions and crackpot theories.

This process has been happening in the background throughout the novel. You've only seen glimpses of it (the bits that Ariel contributes), but it's very important, because that's how I've been controlling the flow of the worldbuilding: flooding the zone with misinformation and letting the truth precipitate out when I'm ready to use it dramatically.

There must be CDBOEGOACC games about Ragtime and the Slow People. But I can't tell you all this stuff at once. There'd be no space for a story. My Creative License-ish solution is there's lots of information about this stuff once you know where to look, but no human consensus about what information is accurate. It's a mess of half-assed opinions mixed up with misinformation and conspiracy theory, with no way of judging the truth of the matter. (Bai will complain about this next week.)

It was easy to control the flow of information early in the novel, when I had the world's governments working on my behalf. In "Found Objects" Jenny has a hard time getting some basic information, because that story takes place during chapter 5. But with the Greenland Treaty in effect, the half-life of secrets has declined dramatically, and the worldbuilding is starting to flood the story.

But I still have control over one thing. Ariel is the narrator. There are secrets he has to keep, details he considers unimportant, and one thing he just doesn't want to tell you. Eventually he'll figure out the central mystery of the book, and he won't tell you that either. (Don't worry, I won't leave you hanging.) With Tetsuo blabbing all the stuff the Constellation played down in the first half of the book, Ariel's scheming and obstinacy and fear of embarrassment are my secret weapons for maintaining a relatively even pacing.

That was the big-think piece, now for the misc:

The beefiest commentary yet? I'm not going back to check. Instead I'm looking forward, to next week, when Tetsuo will say, "What were you smoking? Perhaps it was crack!"

Image credits: Tim Patterson, Matt Lancashire, Mark, Doug Kline.

← Last week | Next week →

[Comments] (7) Constellation Games Spoiler Conversation: I don't know how much traffic this will get, but now that the paperbacks are being sent out, I'm setting up this post for readers of my commentary posts who have read the whole book. Here you can comment on and ask questions about the chapters that haven't been serialized yet, or the novel as a whole. So have at it! I'll compile anything interesting that comes out of this and include it in the appropriate commentary posts.

I WILL FLY: My in-laws gave us a sheet-feed scanner, so I've been scanning a box of my old school stuff, saved for posterity (which is now) by my mother. I'll be putting the prize of the collection online tomorrow, but in honor of Mother's Day I wanted to share this thing I drew in 1985, which was too big to scan so I took a picture:

It's a drawing full of mysteries. Some of my drawings were labeled, either by myself ("Triciratops") or by Mom ("helicopter"), but I don't know what that thing hovering above the ocean is or what inside the ocean is saying "I WILL FLY". (Maybe another flying fish like the one on the left?) I do know what's with the diacritical marks. I think the spelling book we used (probably Basic Goals in Spelling--I remembered it used "snurks" to refer to words not spelled as pronounced) taught us to mark up words that way to indicate their pronunciation.

Happy Mother's Day!

[Comments] (3) A Time Machine And Other Poems: Among my recent childhood scans were a number of books, written in pencil and bound with staples and tape. One of the earliest is a six-page chapbook of poetry called A Time Machine and Other Poems.

For the first time ever, I now present A Time Machine as it was originally intended to be seen: on the Internet. I wrote these poems sometime between the ages of 6 and 8, and I'm much happier showing them to you than the poems I wrote when I was a teenager. I think you will see that certain themes have been constants in my writing my entire life.

A note on the text: The poems were originally formatted as free verse, but they're clearly not free verse, so I reformatted them. I've corrected the spelling throughout except in one case where it was ambiguous. Strangely, there is no poem called "A Time Machine".

A Time Machine and Other Poems

Written and illustrated by Leonard Richardson

A time poem
There's no such thing as a time machine.
Even so you may sometimes wonder
If you could hear ancient thunder
If you could see an ancient beam.
If you could swim in an ancient stream.
So build a pretend time machine if you please.
And go and feel an ancient breeze.

The dinosaurs have died
The dinosaurs have died you see.
Even in the great big sea.
So when you're swimming in the sea,
Beware of dinosaurs, you and me.

Tyrannosauruses are red
Tyrannosauruses are red
Allosauruses are blue.
When you're near them,
Run away to. [sic]

How did the dinosaurs die out?
How did the dinosaurs die out?
Was it a whale with its spout?
No one knows for sure I know
But in a time machine I will go.

Other books in this series

Oh man. That "whale with its spout" line gets me every time. And the first poem's ABBAACC rhyme scheme is pretty nice.

I'm sure I wrote the "Other books in this series", but the only one I still have is Better Homes and Gardens ("WITH QUESTIONERES AND CHECKLISTS!!!). It's nowhere near as good as A Time Machine—like most magazines, it's full of padding—but it does include the immortal line: "Now buy the stuff you don't have." Better Homes and Gardens has its own "Other books" list, which promises a fifth book, Computer Games—also lost to history.

[Comments] (3) Constellation Games Author Commentary #25, "The Infiltration Path": I accidentally wrote a lot of this commentary as chapter 24 commentary, because the ambivalence scene really wants to be part of 24. It may have originally been in 24, but I had to move it out because there was too much stuff in there already.

One bit in the final chapter is presented out of order, but there's it's still chronological from a certain standpoint. Here in chapter 25, I just wasn't a good enough writer to present the events of the novel in strict chronological order. I don't know why this sort of thing bothers me so much. (Actually, I do.)

I'm tired of getting interrupted every week to write the commentary, so last week I made them my main project. I've completed commentaries up to the end of chapter 33 (but haven't chosen the images, which takes a while on its own). After chapter 36, there will be some short commentaries on the bonus stories and "Pey Shkoy Benefits Humans", and possibly one more on the book as a whole.

If you've read the paperback, the spoiler thread from last week is still open for your questions and comments. Here's last week's Tetsuo-licious Twitter feeds, and now commentary:

Now for all you loyal commentary readers, it's time for the first ever Constellation Games deleted scene. Early in the second draft, this chapter ended with Ariel and Tetsuo on the commuter train to Ariel's parents' house in College Station. I'll present the train conversation and then explain why I cut it:

"Do people ever ask you what your real name is?" asked Tetsuo. "When you tell them your name?"

"No," I said, "but I'm not a space alien who took a Japanese name."

"It seems very rude," said Tetuo.

"What is your real name?"

"Why do you ask me the instant I tell you I don't like to be asked? Tetsuo Milk is my real name."

"What was your name before you learned a human name to change it to?"

Tetsuo made a reluctant sound and then said "Don't transliterate that in your blog."

"That's pronouncable," I said. "Why'd you change it?"

"We always adopt local names on contact missions," said Tetsuo. "We've got to prove we're the most adaptable species in the universe. We're pretty conceited, honestly."

"Hey," I said, "that's our schtick. Humans are the most adaptable species."

"According to who?"

"That's just how it works. Everybody's the best at something. Farang are the strongest, Barbarians are the fastest, Her is the creepiest. Humans are the most flexible."

"Are you designing a role-playing game?"

"Better me than somebody who doesn't know basic rules of game balance."

"Everybody thinks their species is the most adaptable," said Tetsuo. "It's like patriotism. You like the Longhorns, your parents like the Aggies, who's to say who's right?"

"Those are football teams," I said. "Patriotism is for countries."

"Well, you get what I'm saying."

It's a pretty funny conversation, which is why I present it now, but I cut it because it has serious problems and I make better use of its ideas later on:

Basically, a much better scene in chapter 28 killed off this scene. Let's let it rest... in peace.

Tune in next week for the family reunion, during which Tetsuo will say, "Your brother's not a turtle."

Image credits: Thomas Deusing, Dave Herholz, NASA, Maureen Didde, Flickr user Perro Viejo.

← Last week | Next week →

[Comments] (1) ASINs that Spell Words: In the past year I've learned more about Amazon's ASIN product identifiers than... well, probably more than the median person wants to know, but not more than I want to know. One thing I've learned is that the ASIN for a print book is the same as its ISBN, but the ASIN for the Kindle edition of that same book is an Amazon-specific code. And where ISBNs are all numeric, non-ISBN ASINs tend to contain letters. Which means in theory you could have a Kindle book (or other Amazon product) whose product identifier was obscene.

Well, enough chitchat, let's look at some books whose ASINs end in five- or six-letter words! Courtesy of an Amazon site map and a word list:

[Comments] (1) 118 Fifth Avenue: Marcel Duchamp's readymade urinal Fountain plays a small but important part in Constellation Games. As I was writing the commentary for the chapter where it shows up, something started nagging at me. Something that had been bothering me for a while in a low-key sort of way.

It's well known to Duchamp fans that ol' Marcel bought the Fountain urinal from the J. L. Mott Iron Works at 118 Fifth Avenue in New York. That's the story, anyway; I don't really trust anything Duchamp says about his readymades, for reasons documented elsewhere in this weblog. Anyway, the thing that's been bothering me is: what's at 118 Fifth Avenue now, ninety-five years later? Can you still buy a urinal there?

Probably not. Over the past hundred years all the plumbing supply stores have been pushed off Fifth Avenue and onto the side streets. But maybe there's an ABC Carpets there that sells overpriced toilet lids or something. I decided to go check.

The stupid thing is, I pass 118 Fifth Avenue all the time. It's right near City Bakery and the Union Square farmers market. But I never bothered to figure out which building was 118, until Saturday, when I went out with my camera and verified that 118 Fifth Avenue is now a Gap Body.

To the right you can see the same building in 1911, when it was the iron works. (Presumably just the showroom; the NYT says the factory was moved to New Jersey in 1902.) The facade clearly hasn't changed since then. Here's a Google Street View link that tries to copy the angle of the 1911 drawing.

Gap Body is exactly the sort of disappointment I was expecting, so I'm not really disappointed. I am glad to know exactly when I'm passing that little bit of art history. And here's a free idea for all you up-and-coming artists: buy a readymade tank top from that Gap Body and present it as a sequel to Fountain.

PS: this 2010 post on Ephemeral New York talks about statues atop 118 Fifth. Those statues are actually across the street, atop 91 Fifth, currently a J. Crew. This confused me greatly while I was out there, so I want to put an explicit correction on the web.

Image credits: Alfred Steiglitz, J. L. Mott Iron Works, yours truly.

[Comments] (2) Constellation Games Author Commentary #26, "Everyone With Cartoon Violence": This week Ariel faces his greatest self-imposed challenge yet: getting along with his parents. Let's listen in, shall we?

Actually, before we shall, I have some good non-novel news. I've sold my story "Four Kinds of Cargo" to Strange Horizons! Look for it late this year. It's not a Constellation story, but I think fans of the book will like it.

Here's last week's extensive Twitter feeds. I retconned one of Tetsuo's posts because he mentioned his cocktail experiments, which don't happen until this week. And now, a bulleted list:

Before I go, a little bonus deleted snippet from the Ariel/Curic conversation, which might be of interest:

"The mature thing to do is to send for help before you end up like the Inostrantsi."

"The Inostrantsi are still around," I pointed out.

"The Inostrantsi reproduce by budding," said Curic. "They didn't have much genetic diversity to lose. They're also immortal, so the surviving individuals had good memories of pre-collapse society. Let's not push our luck, Ariel."

Okay! Good commentary, everybody. Tune in next week for Tetsuo's first college lecture, during the course of which he will say, "I'm sorry, I just assumed there was space travel."

Image credits: Azmeen Afandi, Brian Sterling, yours truly.

← Last week | Next week →

[Comments] (1) Crazy the Scorpion: A cooperative card game: I've been having a great time with a card game Beth Lerman and I invented, a game which I'm calling "Crazy the Scorpion", for the same reason "Exquisite Corpse" is called what it is. If you want a less interesting title it can also be called "Newsworthy".

Crazy the Scorpion is based on the "fun variant" of Man Bites Dog invented in 2010 by Kevan Davis, Holly Gramazio, and myself, but it's even more fun, and replayable to boot. I've tested it with two and three players. It should work with four, but probably not more than four. It plays in 20-30 minutes. I'm releasing these rules, and the print-and-play cards (see below) into the public domain.

Update: In 2013 Kirk Israel and I made a browser version of Crazy the Scorpion.


To play Crazy the Scorpion, you need two decks of cards:

  1. A copy of Man Bites Dog.
  2. A stack of Trivial Pursuit cards.

Trivial Pursuit cards should be easy to find--in my experience, the Trivial Pursuit family is the single most common board game find at thrift stores and yard sales. You can also use Once Upon a Time cards or red Apples to Apples cards (not playtested).

Man Bites Dog is tougher to find, but I've made a print-and-play deck of 128 headline words. I constructed the words by looking at a news site, independently of Man Bites Dog, and the words are optimized for Crazy the Scorpion and not Man Bites Dog, and you can't play Man Bites Dog with my deck anyway because the cards have no point values.


The goal is to construct a 5x5 magic square of headlines, out of headline cards and Trivial Pursuit answers. The best way to explain the game is with a...

Sample of play

I start the game. I draw the Man Bites Dog card "SCAM", and a Trivial Pursuit card with these answers:

I lay down the cards like so, and designate the Trivial Pursuit card as the "Gopher" card.

The headline reads "Gopher Scam". Other legal layouts include "Scam The Montreal Canadiens" and "A Pen Scam". Anything that could conceivably be a headline in any universe. I could have laid out the headline horizontally or vertically.

Now it's your turn. You draw the Man Bites Dog card "DEVOTED" and a Trivial Pursuit card with these answers:

You lay down your cards like so, and designate your Trivial Pursuit card the "Abraham Lincoln" card:

Now there are two headlines: "Devoted Gopher Scam" and "Devoted Abraham Lincoln". Other legal placements would create headlines like "Gopher: Scam A Goalie", "Devoted Gopher" (created by placing "Devoted" above "Gopher"), and "Scam Prancer Devoted".

"Gopher A Goalie" is an illegal placement: it would put two Trivial Pursuit cards next to each other, which violates suggestion #1. "A Pen Devoted" is also illegal: it would rename "Gopher" to "A pen", violating suggestion #2.

Now it's my turn again. I draw the Man Bites Dog card "DRUGS" and a Trivial Pursuit card with the following answers:

I lay down my cards like so, and designate my Trivial Pursuit card the "A quantum" card:

Now there are six headlines:

  1. Devoted Gopher Scam
  2. Abraham Lincoln Drugs A Quantum
  3. Devoted Abraham Lincoln
  4. Gopher Drugs
  5. Scam A Quantum

Among other legal moves, I could have formed "Devoted Gopher Scam Drugs Dennis Rodman" instead.

Halfway through my third turn, we might have a nice 3x3 magic square that looks like this:

Or, in textual form:
Abraham LincolnDrugsA quantum
JudgeA netTourist

Forming these six headlines:

  1. Devoted Gopher Scam
  2. Abraham Lincoln Drugs A Quantum
  3. Judge A Net Tourist
  4. Devoted Abraham Lincoln
  5. Gopher Drugs A Net
  6. Scam A Quantum Tourist

(More likely, that early in the game we wouldn't have a magic square at all. But this makes for a better illustration.)

By the end of the game we'll have headlines like "The Ladybug Judge A Net Tourist, Charlemagne Blasts" and "Nicotine-Devoted Abraham Lincoln: Judge Buckminster Fuller's Movie."

Now I think you're ready for the...

Official Rules

The goal is to construct a 5x5 magic square of headlines. Or, for the adventurous, a 6x6 square. Players take turns drawing two cards (one from each deck) and placing them in a grid. The game ends when the magic square is complete. The game may end in the middle of one player's turn.

When playing a Trivial Pursuit card, the player names the card after one of its answers. The card is considered to have that name for the rest of the game.

Each played card must be orthogonally adjacent to at least one card already played.


The game is better if you follow these suggestions, but in specific cases you might get funnier headlines by breaking them.

  1. Man Bites Dog cards should not touch other Man Bites Dog cards, and Trivial Pursuit cards should not touch other Trivial Pursuit cards. You want to get a nice checkerboard pattern.
  2. Don't rearrange, rename, or remove cards once they're played.
  3. Headlines must make some kind of sense at every stage. This is more a requirement that you come up with a story about each headline, than an admission that there's some sequence of words that cannot conceivably be a headline.


The Man Bites Dog cards are full of words that clearly belong in headlines, but which (for the sake of generality) include no details. Trivial Pursuit answers are disconnected references to newsworthy topics. Combining them yields sentences that feel like real, specific headlines, but make no sense whatsoever.

Have fun!

[Comments] (3) Constellation Games Author Commentary #27: "Friend Codes": Hey there. Let's talk business!

Back when the serialization launched, people were really curious about our business model, but that curiosity didn't lead to thousands of subscriptions. The stuff I've been working on since--the commentaries, the in-character Twitter feeds--has proven great for engaging with fans but not so great at getting new people interested. This makes me worry that Constellation Games is on track to be the kind of book that has dedicated fans and gets good reviews (here's the latest: "presented so well that it is now quite hard to imagine first contact going any other way."), but never becomes the hit I was hoping for.

That's not too bad for a first novel, but I'd like to do better. There's one more inflection point approaching in the book's life, a point where some marketing could make a big difference. Sometime in early August, once the serialization has finished, the ebook will be released, and unlike the paperback, the ebook will be cheap. Setting the prices is Kate's job and not mine, but I imagine it'll be around $5, the current cost of the base package. My hope is that this will put Constellation Games into impulse-buy territory for when someone hears "hey, there's this novel about alien video games."

I'm bringing this up now because I want your help. We've got some things lined up like a radio guest appearance, some things that might or might not pan out like a bookstore appearance, a whole lot of things we tried to set up but didn't happen for whatever reason. I want your ideas of people I can contact who might be interested in talking with me, not about the book but about related interesting topics.

This is not "like us on Facebook" type crap. I hate that sort of promotion and I don't think it works. I want to set up the situation that makes me want to buy someone's book, where I hear/read them saying interesting things and then, hey, they have a book out. You've seen the sort of stuff I write on this weblog. If you know someone who might like to talk to me on their podcast, or host something I wrote, or a game I made up, or a dynamic dada assemblage, or whatever, let me know and I'll get in touch with them. I don't know if anything will come of it, but it's worth a shot. Let me know in comments or email me at leonardr@segfault.org.

You can suggest conventions or faraway bookstores, but I'm trying to get the word out without travelling a lot or spending a lot of money—likely a futile task, but the one I've chosen. (I also don't like going to conventions.) Also, my experience on both the sending and receiving ends indicates that the vast majority of emails of this kind are simply ignored, so let me know if I can/it'll help to mention your name when I email whoever you're suggesting.

Okay, business is over, time for ars gratia artis. Here's last week's Twitter feed, and here's the latest commentary:

Not much commentary this week, but we do have the second of three deleted scenes. This would be a "real life" scene if that distinction existed back in the third draft. As before, first the scene, then the explanation as to why I cut it. The scene opens with Ariel having biked back to Jenny's house from the train station:

September 20, evening

Waiting outside on the stairs outside Jenny's apartment. Working on Sayable Spice: Earth Remix. Back in Austin, Tetsuo back at Bruce's house. Downstairs, the clank of a bike lock. Jenny comes up the stairs and she's real sweaty and happy.

"Hey," I said. "How was your weekend?"

"How long you been here?" she said. "You should have called."

"Eh, forty-five minutes. I'm hacking. It's fine."

"Weekend was great!" said Jenny. She drew keys from her bicycle shorts and unlocked the apartment door. "I took my nephew into space."

"How far out did you go?"

"Well, first we stood in line for eight hours. But surprisingly even that was fun. Eddie and I played drawing games on his smart paper. Then we went up, we did a couple orbits, we buzzed the ISS, came within like ten feet of some other tourists from China, and back down."

I reclaimed Jenny's couch with my ass. "That's not very far," I said.

"Far enough, Ariel! It was the best experience of my life! It was like being in this beautiful glass womb and seeing the whole Earth reborn."

"Oh, wow, maybe I should try it."

"Dude, have a smoke before you go up. The merry-wan-ha. Don't give up on space travel because of nausea."

"It's not just nausea. It's this feeling of emptiness. Like..."

Jenny stood behind the sofa and clapped her hands onto my shoulders. "All right then. What shall we do for dinner?"

about this stuff

"Can we do pork-stuffed lobster with cheese sauce?"

"Sure, I think we got a couple lobsters in the crisper. Right under the filet mignon. What's your problem, Ariel? Your folks don't even keep kosher."

"I'm so much like them that I feel this need to differentiate myself from them. We all do it. You became an artist, Raph became a right-wing asshole..."

"Well, differentiate yourself by chopping some green beans. We'll do stir-fry."

The other two deleted scenes were added in the second draft, but this one was added in the third draft. I like this scene, but there's no reason for it to exist. It doesn't do any worldbuilding or character development that isn't done elsewhere. I originally wrote it to foreshadow developments in chapter 30, but as I suggested when discussing the lying scene, foreshadowing is overrated. It's just an easter egg for people who go back and reread. That's worth a sentence, not a whole scene.

Plus, this easter egg confuses more than it clarifies, and there already are easter eggs for chapter 30, e.g. in chapters 2 and 17. So I cut the scene, but I (tenatively) still consider it canon.

That's it for this week. Don't miss the exciting chapter 28, in which Ariel's descent into madness continues, to the extent that Ashley is forced to say, "I don't wish to mate with you!" [We really need to talk about these misleading previews. -Ed.]

Image credits: NASA, Chris Lott, Flickr user mecookie, NASA.

← Last week | Next week →

[Comments] (2) Constellation Games Spoiler Conversation #2: Here it is, the sequel to the last spoiler conversation, which went pretty well but whose comments are now closed. If you want to talk or ask about the ever-shrinking portion of the book that's not covered in the commentary, do it here.

Beautiful Soup 4.1.0 and detwingle(): Due to the contigencies of fate I get asked a lot of questions about bad HTML. Recently I noticed a problem cropping up which I haven't seen discussed much: documents with mixed encodings. This is typically a document that claims to be UTF-8, and mostly is UTF-8, but which contains bytestrings that only make sense according to some other encoding, usually Windows-1252.

I'll stop beating around the bush: sometimes otherwise UTF-8 documents contain Microsoft smart quotes. This isn't terribly common, but when it happens there's been no easy way to convert that document to Unicode... until now. Beautiful Soup 4.1.0, released today, adds the method UnicodeDammit.detwingle(). This method converts a mixed UTF-8/Windows-1252 document to pure UTF-8, allowing you to run it through BeautifulSoup() or UnicodeDammit() and get Unicode.

I'll let the documentation give the details. In theory I can expand detwingle() to handle other pairs of encodings, but UTF-8/Windows-1252 is the only one currently supported. I'm imagining adding support for other popular encoding pairs, maybe EUC-JP + Shift JIS. But I'm not imagining writing that code, just incorporating patches from other people.

If you're ever in this situation, try it out and let me know how it works.

Beautiful Soup 4.1.0 also includes a bunch of medium-level bug fixes, and a major refactoring of the search code that will hopefully have no effect whatsoever on the way searches work.

[Comments] (1) Constellation Games Author Commentary #28, "Someone Is Wrong On The Outernet": I found this little sketch I did for Sumana during the second draft, when I first completed the chapter with Ariel and Tetsuo playing Temple Sphere. It shows the Tool of Justice guardian-caste strapped into his cockpit, upset about Tetsuo having landed on top of his ship. It also invites Sumana to enjoy peanut butter cookies.

I invite you to enjoy peanut butter cookies as well, but I don't have any prepared. Instead I made you a Twitter archive, and this commentary. The spoiler thread from last week is still open, but no one's posted to it, so perhaps the time for spoiler threads has now passed. Anyway, commentary:

Now that you've seen Your Quiescent Achievement and met You'll Only See Kis ShadowEcho!, I wanna talk a little about the Gaijin. I designed this species to force me to write outside my comfort zone. I don't get pushed that far outside my comfort zone in Constellation Games, but I'll be able to in any future Constellation stuff I write. Here's how it works:

"Vanilla" introduced the ur-Gaijin, a male named This Guy Loves Salt!, a cheerful bloke who was effectively the manservant to a foppish Inostranets named Geshmu. I was never sure what their relationship was, why This Guy Loves Salt!, a member of a post-scarcity civilization of anarchists, was willing to spend his days literally carrying around his "boss" in a briefcase. I figured it was a case of two eccentrics who'd found each other.

The tipping point away from that idea was the 2009 Star Trek reboot, which saw Montgomery Scott exiled to Hoth along with an alien Starfleet officer who Memory Alpha says is named Keenser. I wrote: "Scotty's always yelling at [Keenser], shoving him around, generally treating him like Igor... this seemed cruel and even kind of racist of Scotty." Jake Berendes responded:

anything dealing with alien races invites a weird "possibly true" style of racism. which is to say, you can just declare "these people are not intelligent" or "these people are money-grubbing schemers" or in the case of the batfaced lackey race, "they respond well to being bossed around". perhaps this is just their way, so let's not be culturally insensitive!

You can declare that, but that kind of SF racism is Star Trek bullshit, because it assumes not just that (e.g.) all Ferengi are greedy, but that something about Ferengi biology makes significant cultural or individual variation impossible. For an entire species to be that one-dimensional they'd have to be... eusocial insects... or something...

So! Some species (Aliens, Inostransi, humans) join the Constellation by dumb luck: they happened to get contacted before wiping themselves out or turning into Slow People. But most surviving species tend towards conservative, low-impact cultures (like the Dhihe Coastal Coalition of the ancient Farang) that can just hold on for tens of millions of years.

The Gaijin have the most conservative culture of all. Their basic culture and behavior are hard-coded into their genes and fine-tuned by evolution to maintain the complex kin selection that propagates their three-gendered caste system. When the Gaijin civilization that produced smart paper collapsed (probably due to an asteroid impact--I like using those), everyone was sad about all the people who died, but the collapse of civilization itself was not a big deal. The Gaijin just moved to the caves and started farming, because that's what you do to survive when there's no electricity.

Gaijin don't form a hive mind, like Them; they're pure individuals. But the individuals only come in three flavors, one for each caste. They're like the Cylons in the Battlestar remake. And it's not clear to outsiders which of their behavior is voluntary and which is instinctual. (Not that it's super clear for humans.)

So, in chapter 31 you'll meet a Gaijin male who's shouty and cheerful and loves doing grunt work. That's just how they are. This Guy Loves Salt! was the same way, and so is He Sees The Map And He Throws The Dart!, the guy who organized the Mars mission, and so is the person What-The-Fuck Creek wanted Ariel to be. There are three character classes, and that's it. This idea makes me super uncomfortable, but it's not very different from a lot of other science fiction I enjoy.

Whew! After all that, I have just one question for you: are you ready? Ready for chapter 29, the GAME-CHANGING, CHANGE-GAMING cliffhanger that ends Part Two? Ready for Ariel to say, "That fucking hippie was right."? Ready, dare I say, for some football?

If not, you have a week to prepare. Unless you're going through this commentary simultaneously with reading the complete book, in which case you should take a break and have some herbal tea or something.

Image credits: Yours truly, Luca Masarco, NASA, Eric Fischer (hi!), Pop Culture Geek.

← Last week | Next week →

[Comments] (1) Blindsided: Recently it became my duty to scan my mother's high school yearbooks. While going through the last one (1970, Fremont High in Sunnyvale) it occurred to me to check Wikipedia to see if my mom went to high school with any "notable" people. As a matter of fact, there are two notable people in the 1970 yearbook, and this led to a horrifying realization that came from the yearbook itself. This is probably the only time I'll talk about sports in this weblog, so settle in.

Here's Frances Anne Larrieu, now Francie Larrieu Smith. I like to think of her as "the other Frances." This picture is taken in 1970, the year she wins a national title in the 1500-meter run. Two years later she'll be running the 1500 for America's Olympic team in Munich. In 1975 she'll set the world record for the mile run. She'll compete in the 1976 Olympics, she'll make the 1980 team but won't participate because of the boycott, and she'll compete again in 1988 and in 1992, when she'll be the flag bearer for the American Olympic team. Runner's World will call her the "most versatile runner of the quarter century." Here's her entry in the USA Track and Field Hall of Fame.

Do you see something missing from the yearbook entry of this high school student in the year she wins a national track title? "Astras, Aquatics, Arbor Girl, Nominations Convention, Mothers' Tea." Where's "Track"? It's not on there, because this is before Title IX. Fremont High School didn't have a girls' track team. It didn't have any girls' sports teams.

I hadn't been paying any attention to any part of the yearbooks not likely to feature my mother. I went back and looked. None of the three high schools my mother attended had any sports for girls, apart from an annual "Powder Puff" basketball game which pitted the varsity cheerleaders against the j.v. cheerleaders.

Well, there is a page in the 1970 FHS yearbook about the "Girls' Athletic Association". It shows girls playing volleyball and doing gymnastics. I don't know what this is. It's in with the chorus and the school plays, so I think it's a club. If you were a girl and interested in sports, you joined a catch-all after-school club.

Or there's always cheerleading. In addition to the varsity and j.v. cheerleadering squads, Fremont had squads of "song girls", "flag girls", and "letter girls", as well as the Featherettes, a forty-girl pep club. But no sports teams.

Here's the story from Francie's perspective, as given in a 2012 interview (fake paragraphing inserted for clarity):

I joined a girl’s age group team (the only game in town) that disbanded after a few months. As it turns out, the coach was the new coach at what would be my HS the following year. He invited me to come out and train with the boys at the HS (remember no girls programs in schools back in the 60’s).

My first two years in HS, I trained with the Fremont HS (Sunnyvale, CA) boys cross country and track & field teams. My coach arranged for me to run in some of the boys XC meets but only so I would not miss workout when they raced. The other coaches agreed to allow me to race with the boys with the stipulation that I could not score for the team. He took me to girl’s only meets on the weekends.

In the beginning I trained 5 days week during the school year and never in the summer. It never occurred to me I lacked opportunity because I was doing exactly what I wanted to be doing—competing and working towards my goal of winning an Olympic gold medal.

After my sophomore year in HS my coach disappeared. I often wonder if his allowing me to train with the boys had anything to do with his leaving Fremont HS. In the mean time, Augie Argabright had formed the San Jose Cindergals, and I soon joined the team (again the only game in town for girls).

By comparison, here's Carl Ekern, the other notable person my mother went to high school with. He'll go on to play pro football for the Los Angeles Rams. He'll die in a car accident in 1990, and the Rams will name an internal award after him, honoring "sportsmanship, work ethic and commitment to teammates".

Carl Ekern doesn't have a big portrait in this yearbook because he's an underclassman. But he does show up in two group shots. Here he is on the j.v. football team:

And here he is with his older brother Eric on the wrestling team:

I counted 23 pages in the Fremont yearbook devoted to boys' sports, and five devoted to cheerleading-like activities. For comparison I went through my high school yearbook (1996, Arvin High). I counted 22 pages devoted to boys' sports, 15 devoted to girls' sports (there's no girls' football, wrestling, or cross-country, and no boys' volleyball), four pages for the three cheerleading squads, one page for the coed track team (which only has one girl), and a one-page general collage.

These old yearbooks have lots of girls (like my mother) in student government, band, journalism, etc. It's just sports. And I didn't notice because I don't give a damn about sports.

[Comments] (9) Constellation Games Author Commentary #29: He Sees The Map And He Throws The Dart: PLOT TWIST. Please tell me you didn't see that coming. Well, tell me the truth, but I hope you were just about to figure it out when it happened. It helps that most of Ariel's really odd behavior (the unpublished blog posts, "eyes on the prize") ended up in this chapter, so you didn't have a week to think about it.

The day I brought chapter 28 to writing group, just as we were leaving, Andrew stopped and said "Oooooooh." Ideally that realization will now happen right in the middle of chapter 29.

I've mentioned before that this plot twist was originally going to be the end of the book (along with a little bit extra which became the seed of the actual ending). I'm pretty sure y'all would have screamed bloody murder if that had happened, so it's a good thing that as I wrote part two I thought of more and more stuff to happen after the "end".

The PDF of part two should be released soon. Here's the Twitter archive. In news of "dammit", the Twitter feeds stopped working last Wednesday, possibly because of this UTF-8-licious tweet, and I didn't notice. Especially furiating since last week featured many classic bits, like Tetsuo discovering The Game and Ariel mocking thrift store T-shirts. So I do recommend you read the in-world timeline for chapter 28.

In news of "non-dammit", I'll be appearing this Sunday on the Cambridge (UK) radio show The Science of Fiction, talking about "Games in Fiction and Fiction in Games", and about Constellation Games in particular. Even if you don't live in Cambridge you can stream it "live" (we're actually recording on Wednesday) over the net, or download the program[me] afterwards.

This is a story all about how Ariel's life got flipped, turned upside down. And I'd like to take a minute—just sit right there—

then to the elements
Be free, and fare thou well!

Thus ends part two, "Software". The stage is set for "Artwork", the action-packed miniseries that will end the serialization. It all starts next week, when Ariel will say, "It's fucking romantic, okay?" Will it be okay? Is it actually romantic? AllMost will be revealed! Tune in next week.

Photo credits: Voyager 2, Wikimedia Commons user SeppVei, NASA, Dorothy Harris, Flickr user zdw.

← Last week | Next week →

Dada Update: I just finished the prerecording of this Sunday's episode of The Science of Fiction. We had a good time talking about games, how they tell stories, how we tell stories about them, the fact that Dwarf Fortress is 3D now, and so on. But I also got in some plugs for dadaism (via generative content) and Queneau assemblies, and in a move sure to shock the Brits, I read aloud a sonnet generated by Spurious.

But quelle horreur! When I looked closely at the sonnet before reading I noticed that it wasn't a proper Queneau assembly! It was un petit queneauesque, but some of the lines felt wrong. After recording I looked at the code and discovered I'd been tripped up by Sonnet 126 ("O thou, my lovely boy, who in thy power"), which only has 12 lines.

The old Spurious code thought the first two lines of Sonnet 127 were the last two lines of Sonnet 126, that the third and fourth lines of 127 were actually the first two lines, and so on for the rest of the sonnets. This of course defeats the whole purpose of a Queneau assembly, which is to let T0 equal Tn0 for some n, not to sometimes choose Tn0 and sometimes Tn2.

Anyway, I fixed the code and now Shakespeare is rolling in his grave at the correct frequency. I also took down the "pure random" sonnet because I've decided that one's not nearly as fun.

Oh, and earlier this week I wrote @DadaBrendan, cashing in on the recent spate of Brendan subminds on Twitter (e.g.). But let's pass lightly over that one.

[Comments] (1) Dada Da Dada Da Dum: My appearance on The Science of Fiction just aired. I talked about how generative art takes advantage of our tendency to find patterns in randomness, and during the discussion Dr Andy Holding had a whizzer of an idea. (I may not be using that term correctly.) After I read a sonnet from Spurious, he said that you could do Queneau assembly on limericks. I said "I may do that as soon as we stop recording." And so I did!

The project's called Dada Da Dada Da Dum. The dataset is the 95,000 limericks from the Jim McWilliam collection. It's a dataset large enough to ensure that the generated limericks rhyme:

How could Orwell have been so mistaken?
Even if true, why be shaken?
He got an erection
I did an inspection
I'm referring, of course, to F. Bacon.

(as as with limericks in general, most of the generated limericks are obscene.)

I'm really proud of this project. Queneau-assembled limericks are very effective cognitive illusions and they're a lot of fun to read. I've created a Twitter bot @DadaLimericks which posts six of these limericks a day, so the fun never has to end. Never, I tell you!

Said Eve to Alonzo, "You may"
Why then, I must carefully say
When she jerked on the chain
And I pooped from the strain.
And a beard on a nude by Monet.

Update: A couple days later I saw the project commenting on itself:

A phoney pop-artist named Hart
I'm dada! R. Mutt Anti-art!
His idea of fun
She cries, "Better run"
And dumb millions took it to heart.

[Comments] (9) Constellation Games Author Commentary #30: "Constellation 'Shipping": Here it is: the weird chapter. The chapter that takes what was fairly realistic SF and does I don't know what to it. Why? Because, like Her, I despise being dull. I despise it enough to risk pulling a Battlestar Galactica and ruining the reader's experience of the entire book. Amazingly, the only major complaints I've gotten so far came from writing group in the second draft, saying that the emotional tone of what came before was never as powerful as this. But if you want to complain, you're welcome to do so.

As you may have gathered from the text, I don't like the idea that certain fictional characters "belong" together in a teleological sense, an assumption that underlies a lot of art and fandom. I think it's lazy character development and I think it encourages people to think that way about real life, where it's absolutely false.

On the other hand, fiction is teleological, and fictional characters are puppets. Declaring romantic destiny between two characters is no more difficult than saying how tall they are. You just have to be careful not to contradict your statement by the characters' words or actions.

"Explain why Ariel and Jenny aren't together" annoyed me, perhaps unfairly, because the need for an explanation reminded me of this assumption I dislike. I mentioned this earlier in commentary, and also mentioned that I'd decided to include an explanation if I could think of one that wasn't a cliche. This is what I came up with: the One True Pairing phenomenon is real, but it's a curse. Any two parties so affected are the Keymaster and Gatekeeper of a door that opens into stark, existential horror.

This was kind of inspired by a story idea (I don't remember if I came up with this or read it somewhere) where an intelligence augmentation technique is invented, but people who use it too much become listless and nihilistic because they can see the true nature of the universe unfiltered by the usual coping mechanisms. There's no plot there, which gives it the hallmarks of a story idea I came up with, but I'm not laying claim to it.

On the off chance that you are really really bothered by this shift in the rules of the book's universe, here's an easy out. Ariel is an unreliable narrator! He's writing this letter to distract Krakowski as much as to communicate with Jenny. So he exaggerated something that actually happened. What happens in "Found Objects" is compatible with either interpretation of Ariel's letter.

(But it totally happened the way Ariel says.)

The train we call Part Three is just getting started on its rampage down the track. Destination: the end of the book. Don't miss next week's installment, when Ariel will say, "Your gender-neutral use of 'men' isn't nearly as endearing as you think it is."

Image credits: Flickr user frostnova, NASA, Alan Shepard.

← Last week

The Least Clever Limericks: One side effect of downloading 90,000 limericks is you have a lot of data. Actually, that's the primary effect. Given that Dada Da Dada Da Dum requires I classify the limericks by the sounds they use in the A and B rhymes, I thought it would be interesting to tabulate that data and see which rhymes are the most common.

Well, some of the stuff's not that interesting. Here's a stack graph showing the number of limericks using the top hundred A rhymes and the top hundred B rhymes. To me it looks like a generic graph. There's no shocking pattern and no real difference in the way A and B rhymes are distributed.

In fact, there's not much difference between the way A and B rhymes are written. The two most common A rhymes are UW1, the elongated "o" sound used most frequently in "you", "do", and "screw"; and EY1, the long "a" sound used most frequently in "day", "way", and "say". On the other hand, the most common B rhymes are... EY1 ("day", "say", "way") and UW1 ("you", "do", "two").

This is a very disappointing conclusion, but with this knowledge I have been able to write the world's least clever limerick, statistically speaking:

Oh, hi, I was looking for you
I'm bored and there's nothing to do
I've been listless all day
So what do you say
We take off our clothes and we screw

After writing that, I went through the dataset and discovered a naturally generated limerick that comes very close to having minimally clever rhymes! Its only failing is it uses "way" (#3 word for the EY1 sound in B rhymes) instead of "day" (#1):

In an earthquake, the best thing to do
Is to set about having a screw.
When you're done, you can say
In your nonchalant way
May I ask, did the earth move for you?

Here are the top twenty A rhymes and the top twenty B rhymes, each with the number of limericks they're used in and their top three words:

A rhymelimericksWord #1Word #2Word #3
4EH1 D1583bedheadsaid
5AO1 R1315moredoorwhore
6AY1 T1295nightrightsight
8EH1 R1228therehairair
9IY1 T962feetmeatsweet
11IH1 T903itshitbit
12EY1 T820greatlatefate
13IH1 R816feardearbeer
14EY1 N803painbrainjane
15IY1 N784seencleanobscene
16AE1 S775asslassclass
17AH1 N743funonedone
18IY1 Z711pleasekneesease
19EH1 L676wellhelltell
20AO1 L648allballfall

B rhymelimericksWord #1Word #2Word #3
4EH1 D1684saidbedhead
5AY1 T1319nightrightdelight
6EH1 R1213therehaircare
8AO1 R1064moredoorwhore
10IH1 T1037itshitbit
11AH1 N819funonedone
12AY1 Z799eyesthighssurprise
13IH1 R771dearfearclear
14IY1 T767meatfeetsweet
15AY1 D761insidewidedied
16AA1 T743hotnotgot
17EY1 T706dategreatlate
18AE1 S691asslassgas
19EY1 N596painbrainexplain
20EH1 L590hellwelltell

I think a comparison to a similar corpus of non-obscene rhyming poetry would be instructive.

While gathering this data I fixed a bug in my screen-scraper that was sometimes causing a B line to be treated as an A line, which of course screwed up the meter of some generated limericks. I've also changed the way limericks are posted to Twitter, so that if you go to the @DadaLimericks page the limericks in the archive won't seem to run into one another.

As a bonus/palate-cleanser from those unclever limericks, here's a very clever Queneau limerick that I don't think a human would have come up with:

The North Pole is a little bit shy
And Air France? Just the pure l'eau de vie.
My question today
That this mortal clay
She was born just before World War I.

Tricks of the Trade: Realtors subtract one block from all distances, even if it's not "advertised distance to the subway".

"I'm almost at your office. I'm at [x] and [y]."

"Perfect! You're one block away!" [I am two blocks away.]

[Comments] (2) How to Follow Instructions: Last week I gave a talk called "How to Follow Instructions" at QCon New York. It's a talk about hypermedia and code on demand, as well as the not-so-great techniques web service designers (myself included) have been using instead of hypermedia and code on demand. The jumping-off point is this story from my seventh grade algebra class, and the process by which we recognize instructions and choose which ones to carry out.

I was very nervous about the talk, because my work on Constellation Games has taken my creative attention out of the world of REST for the past couple years. To me the talk feels more like complaints from a user than advice from an expert. But it was well-received and I may be giving an updated version of "How to Follow Instructions" at REST Fest in September.

Because of that possibility, the text of the talk is still in flux and I'm not going to immediately put in the kind of work I did to get my 2008 QCon talk online with a transcript. But I have put up a PDF of my slide deck (4.0 megabytes), so you can see what I put on screen. And you can see the rhetorical structure of the talk by getting the LibreOffice Impress file (6.3 megabytes), which includes my speaker notes. Both are licensed under the CC BY-SA 3.0 license, and anything else I produce from this talk will be put under the same license. (As oppposed to stuff like QCon's video recording of me giving the talk, which they'll probably retain copyright on.)

I know from being on the other end of this that even with speaker notes, a slide deck after the fact is more a mnemonic for people who've already heard the talk than a way of conveying the knowledge contained in the talk. So this is more a show of good faith on my part than anything else. At some point you'll be able to read a transcript of this talk and reuse whatever parts of it turn out to be interesting, as happened with the 2008 talk. But for now the slides and notes are what I have to offer.

[Comments] (1) Transit of Venus: I helped pay for my niece Maggie to go to space camp, and in a Kickstarter-like move she sent me in return a drawing of the recent transit of Venus. Or, as Maggie's dictated caption calls it, "The sun and Venus in front of it":

Constellation Games Author Commentary #31: "The Peaks of Eternal Light": It's feast or famine! Specifically, it's famine. After a huge chunk of commentary for chapter 30, I don't really have much to say this week. This chapter cashes a lot of checks I wrote earlier in the novel, and I feel it would be tedious and insulting to your intelligence to just list them all.

Because there's not much commentary this week, I want to commemorate the beginning of part 3 with "Human Ring", a little toy I made in Minecraft's creative mode. Back around April or so I was jealous of how Andi Buchanan had thought to get Minecraft auteur Vechs to create a custom map for her novel Gift, so I spent a couple hours creating a little diorama approximating what Human Ring and Alien Ring would look like in Minecraft. It's not a game, and it relies heavily on easily-broken tricks of perspective, but you might find it fun to walk around for a bit.

If not, at least there's a couple posts in last week's microblog archive. And there's this list I found lying around:

OK, that wasn't too light. Next week will feature a number of exciting scenes including the book's final full-length game review. It all kicks off when Ariel says "So there aren't any fossils."

Image credits: yours truly, John W. Young, Colin Chudyk.

← Last week | Next week →

Sumania 2012: Yesterday Sumana gave the opening keynote at Open Source Bridge. There's video and a transcript. The talk, "Be Bold", may bring to light some issues you hadn't considered when deciding how to get people involved in open source.

Still no video of my QCon talk--another triumph of open source over the enterprise stack, I guess.

Month of Kickstarter?: July, my birth month, approaches, and the question on everyone's lips is, "Question on my lips? Who uses that kind of archaic construction?" I do, and now that we've gotten that question out of the way, let's talk about last July's project, Month of Kickstarter.

My plan was sheer elegance in its simplicity. Every day I would go to Kickstarter's list of recently launched projects, scan the ~50 new projects, bookmark the interesting ones and then put money behind 1-3 of the interesting ones. Then I wrote about the projects I'd backed on News You Can Bruise. This was a) a birthday present to myself and b) a great source of experimental data. Would it be fun? (Yes!) Could I could drive my readers to contribute to Kickstarter projects? (Not really!) What would Kickstarter's official stats look like if they only covered projects I, personally, cared about? (Quite different!) Most importantly, what about the backer rewards?

The backer rewards are great. It's like being pen pals with the Internet. I'm still getting rewards. Yesterday I went and picked up my ice cream for July 17's Milk Not Jails project. My laid-back, experimental attitude towards the whole thing has saved me from nerdrage when the shipment schedule slips, or the project owner flakes out altogether, or the reward arrives and is just disappointing or lousy.

BTW, flakeouts are very rare, but I gotta name-and-shame Keith Kritselis of the tesselated cookie cutter project because I did a whole detailed analysis of his project and now he's flaked out and not delivered anything. Didn't see that coming! I hope he's just flaked out, and not dead or in prison.

Anyway, the actual question I've been thinking about: how about repeating Month of Kickstarter this July, to get a new data set, a new bunch of rewards, and see how things have changed?

I can tell you right off that I've changed. I am a lot pickier about Kickstarter rewards now than I was last year. I'll like a book/movie/album (preferably electronic), or some food, or a game, or a nice piece of art I can frame and hang up, but that's about it. I don't get any great satisfaction from having my name in the credits, and I'm tired of stickers and patches. I thought those would be great rewards because they're easy to mail and don't take up much space, but turns out I don't use 'em.

And one thing about Kickstarter has changed: usage has exploded. After last year's MoK I kept checking the new projects page every day, but I stopped after a few months because it was just too much stuff. I don't have time to read that firehose, so I backed a Kickstarter project to do it for me.

My estimate as of today is that there are 150 new projects posted to Kickstarter every day. I need to double-check this number tomorrow and possibly update this post, because it's a statistic Kickstarter doesn't provide. (Update: The actual total is more like 125.)

And here we come to the problem. Kickstarter's UI has not changed. Not in any way that would make Month of Kickstarter easier to do, and it wasn't that easy to begin with. 50 projects/day was kinda doable, but I'm not going to look through three times that many, and there's no way of filtering out the ton of projects I almost certainly won't be interested in.

Kickstarter's UI is very carefully designed, so after a year of seeing it not change in ways I think are pretty obvious, I'm starting to think the absence of certain features is deliberate.

Forget Month of Kickstarter for a minute. Imagine that you, like me, are really into board games. You want to track all the new board game projects added to Kickstarter. You can't. There's no way to do this except by going through the global "new projects" page every day and picking out the board games. You can see "staff picks" and "popular this week" and "recently successful" and "most funded" but not "new". (Feel free to prove me wrong--I'd rather have this functionality than be right about its absence.) It's like a bookstore that has all the sections you'd expect, biography and horror and so on, except the "new releases" are all jumbled together and ordered by release date.

I have a hypothesis: there's some basic incompatibility between browsing, which is what I want to do, and Kickstarter's user model or business model. Over the past year, instead of doing things that would make Month of Kickstarter easier, Kickstarter created a site-internal social network so that your pals' activity would filter through to you and you'd find out about new projects that way. I think that's their user model: money flows to a Kickstarter project through a social network rooted at the project's creator. Social networks driven by Facebook and Twitter and just plain advertising (the board game podcasts I listen to have a ton of advertising for Kickstarter projects), but also now possible through Kickstarter itself.

Apart from the "Recently Launched" page and a couple others that aren't as useful ("Ending Soon" and "Small Projects"), every project discovery mechanism on Kickstarter (and there are a ton) is based on finding projects ratified by someone else: Kickstarter staff, or people in your social network, or someone operating under the name of a trusted brand, or (as with "most funded") just an unusually large number of random backers.

And sure, this works. I back my friends' crowdfunding projects all the time. But it means that your Kickstarter project is guaranteed to to sink without a trace unless you can get someone else's attention outside of the site. If I'm right, this is the point of the whole design. We learned from the last Month of Kickstarter that your project will fail if you don't hustle. Kickstarter makes it clear that hustling is your job by effectively hiding all but the most-hustled projects. Most site visitors aren't interested in backing sixty projects to see what happens. They want to back one or two projects from a curated list. So the system works for them.

The problem for Month of Kickstarter is that while hustle may or may not bring success to your individual project, it will not show your project to me unless our social networks intersect. That's not good enough. I need to see a list. But the list needs to not have 150 items in it every single day. I've spent the last eight months doing a project (the Constellation Games author commentary) that forced me to do a big context switch every week. I'm not really feeling the need for a daily context switch, and I certainly don't want to look at 150 projects a day. Last year "Recently Launched" did the job, but this year it won't.

They must have these advanced mechanisms. Whoever puts together the curated O'Reilly page doesn't trawl through 150 projects a day seeing if there's one they want to add to the list. But without access to those mechanisms I can't really do this.

Like I said, I'm gonna give it a shot anyway. But it may descend into me backing projects without writing about them, or I may give up altogether. I've got other stuff I need to work on, and the thrill of gathering another MoK dataset to compare against last year's is probably not worth the time.

[Comments] (1) Month of Kickstarter! #1: Flower Comics: I've resolved the problem I mentioned last time, and Month of Kickstarter 2012 is on! It's on like Donkey Kong Country. But first, let me run down a couple changes from last year's event:

  1. Last year I pledged at least $25 to every MoK project. This year I have less money budgeted, so I'm going to give whatever amount it takes to get a cool reward (see the last post for what I consider "cool"), even if that's less than $25. I'm also going to focus more on projects where I can get that cool reward by spending only, say, $15.
  2. I'm not gonna spend a whole lot of time writing up the projects. Last year MoK was my creative outlet for July; this year I have a ton of other creative projects going on. And one of my lessons from last year is that my Ciceronian eloquence does not make the difference between you deciding to back these projects or not. It depends on the inherent interest of the project to you. So I'll just get out of the way and let the projects speak for themselves.

With that in mind, let's get started! First off we have FlowerFall: Cards From The Sky, a game published by Asmadi Games, publishers of last year's MoK hit Fealty. A game about dropping cards that have flowers printed on them. Like a dexterity-based Carcassonne.

And the nerdery continues with Edgar's Comics (Film) - Act I, the first part of a (non-documentary) film about the origin of modern comic book collecting.

That's day one! Last year I didn't actually ask y'all if MoK was interesting for you, so feel free to let me know in comments how you feel about this concept in general.

Month of Kickstarter 2012 #2: Soap Jazz: Welcome to Monday! I have to revise a story for writing group, but first, some Kickstarter projects:

Time to inaugurate a new feature I didn't have last year, "cool project I'm not going to back because I really don't need the reward, but several people who read this might want to back" (better name forthcoming). Today's cool project...people who read this might want to back (say, that's a better name) is Print on Fabric Using Sunlight.

In addition, I'm on the fence about Pixel Lincoln: The Deckbuilding Game. I think my game group would enjoy it but it's just too much nerd pandering for me.

[Comments] (2) Month of Kickstarter 2012 #3: Universe's Fair: Welcome back to the all-month cavalcade of crowdfunding. As the month progresses I'm getting a better picture of the flow of new project launches: on Sunday only about 50 projects were launched, but yesterday saw about 175 launches. You can expect some interesting statistics at the end of the month, let me tell you. But for now you can expect some interesting Kickstarter projects:

Speaking of bicycles, today's "Month of Kickstarter Platinum" showcases @cme FlatFree Bicycle Wheelsets, bicycle tires that will never go flat but which require custom-sized rims. $280 gets you rolling!

[Comments] (3) Constellation Games Author Commentary #32: "The Evidence of Absence": This chapter has the most artsy title in the book. It's a reference to the idea of negative space, of emptiness as a thing in itself. Every section of the chapter has something to do with negative space: the fossil imprint, the absence of Jenny from Ariel's life, the player character's amnesia in The Amulet of Manufactured Memory, and the holes in the ground where the garbage has been taken out. Part Three was originally called "Negative Space," and you'll see why in the last chapter.

It's not just Part Three though. Negative space shows up through the whole book: as the foundation hole where Ariel's house used to be, the fractal pits Tetsuo and Somn dug out of the moon to build Ring City, the expectation that contact missions always find dead civilizations, and, uh, Ariel's negative reaction to being in space. Part One of the novel is about Ariel and the Brain Embryo, whereas "Found Objects" is about Jenny and the reentry foam with a Brain Embryo-shaped hole in it. It's what we in the trade call symbolism.

Symbolic of what? The Fermi Paradox, basically. The fact that the more we narrow down which numbers should go into the Drake equation, the better it looks for life in the universe, yet here we are, alone, facing down an emptiness that has become a thing in itself. The idea behind the Constellation universe, going back to "Vanilla" before I came up with any of the backstory you see in the novel, is that we find out we're not alone and it doesn't help. We're all lonely together and some of us (here, Somn and Ariel) are lonelier than we were before.

In the first draft Somn actually referred to the fossil imprint as "the evidence of absence". I cut it because I couldn't imagine something that poetic making it through the Purchtrin-English translator. But that's what she was thinking. That's canon.

More stuff that's canon:

Next week is the last "normal" chapter of the book. After that it's all climax and denouement. Tune in next Tuesday to hear Curic give her heartwarming monologue, "I was trapped alone in a decaying world of the dead."

Image credits: The Ohio State University Radio Observatory and the North American AstroPhysical Observatory (NAAPO), Mark A. Wilson, Toys for Bob, Deror avi, 20th Century Fox (check out the deletion debate!)

← Last week | Next week →

Beautiful Soup 4.1.1: This release fixes some bugs, especially having to do with tags that use namespaces, and including a very serious performance bug that made BS4 slower than BS3, even when using the lxml parser. The previous, much-better-than-BS3 performance has been restored.

Month of Kickstarter 2012 #4: Devoted: Picking projects is a little trickier than last year because I'm trying to a) spend less money and b) only get rewards I really want. But on our nation's birthday I'm blessed with a no-brainer: Authorized DEVO Documentary Film! $25 is a good deal for a digital download of the film.

I also dropped $10 on Cosmic Voyage – An Exciting New Translation, a reissue of a 1936 Soviet silent science fiction film. Just because it's such a cool project. But I think $75 is too steep a price to pay for the movie itself. (Wikipedia: 'removed from circulation by Soviet censors, who felt that an animated sequence of cosmonauts hopping across the gravity-free lunar surface was antithetical to the spirit of "socialist realism."')

Well, if you have $75 to burn, go ahead and back the Cosmic Voyage project. But if you have $229 to spend, no more, no less, your best bet is today's Month of Kickstarter Platinum: YRG-Pro: Professional Grade MIDI Guitar!

[Comments] (1) Month of Kickstarter #5: Sierra Seasons: Since yesterday was a holiday the crop of new projects was very small, and for whatever reason not that inspiring. It's proving difficult to meet my super-picky requirements for this year. I may go back to backing just one project a day. But for now, I went back to my starred projects and paged a few pages down in the "ending soon" list, and came up with these two cool projects:

No Month of Kickstarter Platinum today, but I did want to give a shout-out to PastPages, a site which I discovered through its founder's already-funded Kickstarter project (ending in 24 hours). PastPages archives images of the home pages of many news sites once an hour. News sites archive their stories, but don't archive the way they presented those stories when they were new. Archiving that presentation is something I've wanted since 2007 and never got around to it. Many thanks to Ben Welsh for stepping up.

Month of Kickstarter #6: Moon: Damn, everyone clearly decided to hold off launching their Kickstarter project until after the Fourth, because yesterday saw about 230 launches, compared to 50 the day before. So today I had no problem finding two thematically consistent projects I wanted to back. How often does that happen?

Today's Month of Kickstarter Platinum is also the lunar rover one, only at the $10,000 level. At those lofty heights of backing, instead of a T-shirt or a 5-gallon tub of duck sauce, you get to send your DNA to the moon. Yield to the panspermia urge!

Month of Kickstarter #7: The Theatah: Today's Month of Kickstarter is kind of conceptual, I don't know if you'll get it. First, Where in the World? The Untold Story of Camilla Sanfrancisco, a musical Carmen Sandiego spoof playing in July at the DC Fringe Festival. $25 gets me (and, significantly, Sumana) the soundtrack album.

Some backstory for the second one. My standing search for "Beautiful Soup" recently started turning up a stream of chatter about a fundraising campaign for the New York-based Beautiful Soup Theater Collective. And I'm sure the people behind the Beautiful Soup Theater Collective have been confused by my screen-scraping software showing up in their searches. So in an Oulipian move I've contributed $25 to the IndieGoGo project Save Beautiful Soup!, based solely on the coincidence of names.

That gets me a ticket to a show, and I intend to use it to see Beautiful Soup's production of Moose Murders, a 1983 flop which "closed on opening night to some of the most scathing reviews in history." ("A visit to Moose Murders is what will separate the connoisseurs of Broadway disaster from mere dilettantes for many moons to come." —Frank Rich) And you can bet that'll make for an interesting NYCB post next January.

For today's Month of Kickstarter Platinum we turn our eyes back to space, where you're going to need some kind of special clothing to protect you from vacuum. Final Frontier Design's 3G Space Suit has you covered, or will, if you shell out $10,000:

At the Suborbital Level and above, we are offering real space suit hardware (though it is not flight certified) and therefor[e] are required by the Department of Defense to ensure compliance with the rules and regulations of ITAR, the International Traffic in Arms Regulations. Get your very own, personalized, ITAR paperwork from FFD and participate in the unfortunate militarization of space!

Wish I'd known about that twist while I was writing chapter 15 of Constellation Games.

[Comments] (1) Month of Kickstarter #8: Ice: Making it quick and backing just one project today: Columbia Icefield Gigapixel. But we also have a cool Month of Kickstarter Platinum: $175 gets you a Cardboard Robot: robotic arm and smart phone camera crane.

See ya tomorrow!

Month of Crowdfunding #9: Plastic Games: Today I took a look at IndieGoGo's games section and found two projects that look great: Resurrect ADOM development (ADOM being one of my favorite roguelikes from way back), and Help The Little Metal Dog Show get to Essen 2012! (The Little Metal Dog Show is an excellent podcast of board game-themed interviews.)

And to top it all off, I went back to Kickstarter on Rachel's suggestion to back Join the Midway Film Project! "The MIDWAY film will take the viewer on a stunning visual journey into the heart of an astonishingly symbolic environmental tragedy."

I found a Month of Kickstarter Platinum candidate, but the campaign had ended by the time I got around to posting this, so don't cash in those platinum bars until tomorrow.

[Comments] (3) Constellation Games Author Commentary #33: "Infinite Lives": This is another one of those "last chance" chapters, so a lot of stuff got crammed into it. Curic's version of the Austin visit back in chapter 8, Tetsuo's villain monologue, and Ariel's Reflex Games moment of truth. "A Few Ip Shkoy Games About Asteroids" is the last blog post in the book.

When I first wrote all these commentaries out this one was pretty light, so I saved the final deleted scene for this chapter's commentary, even though it was cut from chapter 30. But then I thought of a lot more commentary for this chapter. So this week you get a big commentary and a deleted scene! Live the excitement.

It's been a while since the microblog was an accurate real-time representation of what Ariel and Tetsuo were doing, but now it's just getting ridiculous. Chapter 33 takes place over an entire month (November 11 to December 12). The rest of the stuff in the Twitter feeds—mostly EVERYTHING IN AUSTIN stuff—covers the timeframe of chapter 33. There's nothing in the feeds about what happens in chapters 34, 35, or 36.

Of course, since chapter 33 takes place over an entire month, spreading its microblog over three weeks actually gets us closer to the microblog being an accurate real-time representation of what Ariel and Tetsuo are doing.

This might make more sense next week.

Enough stalling, here's the final deleted scene of the book. Perhaps the most forgettable detail in chapter 30's letter to Jenny is the other letter Ariel says he wrote, the one to his dad, apologizing for stealing the Scotch decanter. Here is that letter. I cut it before finishing it, so I've filled in bits of missing narration. There are also details that don't fit with the final draft, like the idea that Ariel's parents might not have noticed the theft yet.

October 12


Strange to write you a letter by hand and put it in a mailbox but I need low QoS on this message and the post office knows how to be slow.

By this time you may have noticed that your cut-glass Scotch decanter is missing. This letter is to confess that I stole it when I came up with Tetsuo last month. I was at our old house with its quiet and its familiarity and I thought: what would I take as my inheritance if I could only take one thing?

Kind of a morbid question, but urgent because I am leaving the planet and I may not be back. I have a variety of reasons, some of which I hope will make sense to you later.

[Ariel then talks about his dad's usage of the decanter when Ariel was a kid:]

I would sit on the couch in your study, reading or drawing or playing with the Game Boy while you worked. When you heard about a paper being accepted, or you met some other accomplishment, there would be the ritual of getting the bottle down from the closet shelf and pouring yourself a toast.

Please understand what follows. I know you hate when I use these video game analogies, but what I'm trying to explain is not the thing being analogized but why I did and I do think in these analogies.

Sitting on the couch while you typed, I would play an RPG with the utterly generic title of Magic Quest, which you bought me for my ninth birthday. One of the character classes in the Magic Quest series is the essence mage (or FORCMAG in the Game Boy version), whose magic power comes from his "life force". Where most RPG magic users can recharge magic points just by resting, an essence mage must sacrifice some of their life force, incurring a small but permanent penalty.

There are three strategies for playing an essence mage. 1) You can use their incredibly powerful magic relentlessly at the start of the game, rapidly boosting the party to the point where fancy equipment can make up for the character penalties. 2) You can play them as a melee specialist and only pull out their magic when absolutely necessary to save the party. 3) You can play them as evil and vampiric, draining the life force from NPCs and other party members.

This became my model of manhood, a bank account that you gradually drew down, a magic meter that depleted as you fought and won the conflicts of the working world.

[There was going to be something else here, but I think it works as is. Not sure why I even put in this note.]

I'm sure you refilled the decanter occasionally, but I never saw it. It always seemed to be three-quarters full, and I felt that once it was empty, that would be it for you, and for me as well.

Anyway, I took it with me and now your decanter is orbiting the moon. Please get in touch with Jenny and she will pay to replace the decanter and its contents. I know it's not about the money but about the betrayal of trust etc. I also know what my act of theft implies in terms of the essence mage analogy. I'm the son of two English professors, I don't need the subtext spelled out.

I'm sorry that I won't make it for Thanksgiving. Tell mom not to worry about me. Tell yourself as well.

Your lovingloving son,

It's in a rough state but it's a pretty good scene. It's not necessary to the plot but it does some good character development. The problem is it's completely overshadowed by Ariel's letter to Jenny. I couldn't even put this scene in the commentary for chapter 30 because of all the commentary about Ariel's other letter. But it's a nice little scene. Good night, sweet scene; And flights of angels sing thee to thy rest.

With this chapter the normal part of Constellation Games is OVER. Tune in next week for the first part of the shocking two-chapter climax, when Ariel will say, "They don't conserve anything except mass and angular momentum."

Image credits: Wikimedia Commons user Jacawa, Flickr user opacity, Alan Light, NewNation.sg, Flickr user Ata B.

← Last week | Next week →

[Comments] (1) Month of Crowdfunding #10: Huzzah! of Code: Maybe I should change my birthday so Month of Kickstarter isn't full of Burning Man projects. Not that the Burning Man projects crowd out other projects, I just find it annoying. Anyway, here's today's crop:

I don't think I mentioned this explicitly, but if there's some crowdfunding project you think I should back, let me know about it. That's a general rule, but I'm more likely to actually back a suggested project during Month of Kickstarter.

[Comments] (1) Month of Kickstarter #11: Penguins & Bees: First, check out Pitfalls and Penguins: First Printing, the physical manifestation of a pen-and-paper RPG written by Joe Hills. A while back I started watching Joe's hilarious Minecraft videos while exercising, and then was not terribly surprised to find out that he knows Brendan.

Pitfalls and Penguins is a collaborative improv game. Players should try things because they are awesome and hilarious, even at great risk to themselves.

My kind of game.

Second, North Fork Bee Co, not a company run by bees but a company that gives bees a place to live and then takes their honey. Hmm, when I say it like that it doesn't sound so good. But I do like honey.

Today's Month of Kickstarter Platinum project is Ninja Standing Desk, a portable standing desk ($147) that hangs from a hotel room doorframe. Neat!

And in news of nerd pandering, I was really excited about Meta Awesome Cards right up to the point where I saw the example cards. I've been thinking about a similar project for a while and was excited to see someone implement it, but this is not what I had in mind. Obviously I haven't tried these cards out, I've just seen pictures of a few on a Kickstarter project, but it looks like they add a lot of randomness to any game and make it take longer. It feels like a metagame based around putting money on Free Parking.

I'm no foe of chaos in games—I backed We Didn't Playtest This: Legacies—but if I was in the situation Meta Awesome Cards is designed for, I'd play the metagame of mashing up my existing games a la Crazy the Scorpion. But give it a look; maybe I'm wrong.

Month of Crowdfunding #12: Gaming Jetpacks: We run a family-friendly show here at Month of Kickstarter 2012. Or at least we did until today, when I backed Gaming Grindr, a book that analyzes the gay cruising app as a geolocation-based game. I had an idea to add a subplot about this sort of thing to Constellation Games, as part of the abandoned "evil psychology" arc, and one reason I abandoned that arc was I don't know very much about this stuff. This will change!

And then it's right back into games designed to be games, with Jetpack 2, a cross-platform 2D game where you fly around in a jetpack and collect floating gems. You know... life's simple pleasures.

Today's Month of Kickstarter Platinum project is Immortalize Your Pet. Live out the ultimate idle-rich fantasy by commissioning an oil painting of your pet. Well, "cat or dog." No guinea pigs or tuatara. Prices start at $375.

Small Talk: Last weekend Sumana and I went to the Museum of the Moving Image and saw 2001, a movie I probably hadn't seen for ten years. Apart from the big-screen visual spectacle, I was struck by how phatic 2001's dialogue is. Some of the dialogue does exposition, but almost all of it is small talk that would be instantly cut from a work of prose.

From memory: Heywood Floyd makes small talk with an elevator operator. He's met on the space station by a guy who makes small talk with him. He places a phone call so he can make small talk with his daughter. He makes small talk with some Russian scientists (inc. one played by Leonard Rossiter!). They try to draw him out but he doesn't take the bait.

Floyd holds a meeting where nothing is decided: he just asserts his place atop the pecking order and says to maintain the status quo. He makes small talk with the pilot of the moon shuttle. (We don't even hear this, it's just shown under classical music. It is clearly small talk.) On the moon buggy he talks to some guys about sandwiches (there is also some non-phatic stuff here, about the excavation of the monolith).

Cut to Jupiter mission! Dave Bowman and Frank Poole and HAL watch themselves on TV, giving an interview full of small talk. Frank gets a birthday message from his parents full of small talk. Dave makes small talk with HAL, and then finally, just before intermission, we see what in terms of traditional plot is an important conversation. HAL shares his concerns about the mission and then reports the impending failure of the AE-35 unit. Beyond this point, although the dialogue still has a flat affect, it's not phatic. It's all about important stuff.

I'm not complaining. The preponderance of small talk was clearly a deliberate decision and it works. The banality of the dialogue contrasts with the wonders onscreen during the dialogue-less majority of the film. But I'd never noticed this about the dialogue, because the last time I saw 2001 I wasn't a fiction writer.

Month of Kickstarter #13: Summer Reruns: Not really happy with today's crop of projects! I covet today's Month of Kickstarter Platinum object, the Nomiku sous vide cooker, but I'm not going to drop $299 on it. I need new pots, not a new gadget.

As you can tell, my observations on last year's MoK have changed the way I approach this year's. There are some projects that are interesting but whose owners clearly aren't hustling (or whose hustling has failed). Last year I thought those projects just needed a little publicity and that my writing about them could make a difference, but it never helped. So now I don't think it's worth the time it would take to write them up. I can't hustle for you.

Of course, that calls into question the whole point of Month of Kickstarter. Last year I excluded projects that are obviously going to succeed, and now I've started to exclude long-shots. Is there really that much in the middle? How did I think this year's MoK would be easier than last year's?

Anyway, instead of backing a new project today, I've bumped up my Pitfalls and Penguins pledge to get the signed copy. Live the anticlimax!

If this keeps going on I'll go back to backing projects much more impulsively, and see how I feel about that.

Month of Kickstarter #14: Misunderstanding Space: I need to get ready for writing group, but let's back some cool projects. First, Misunderstanding Comics, a ranty parody of Understanding Comics that covers the mainstream comics industry, as opposed to the art-comics world Scott McCloud inhabits.

Second, SkyCube: The First Satellite Launched by You!. SkyCube doesn't do a whole lot, but neither did Sputnik, and unlike with Sputnik there are some very cheap reward tiers.

No Month of Kickstarter Platinum today, but I want to let you know that there are two active Kickstarter projects for films based on the Slender Man meme. Two! And they've both got very low targets, so a Month of Kickstarter Platinum-minded person could fund them both and make them fight. Yesterday also saw the launch of a project to make a Polybius film. It's a creepypasta invasion! How long until a unauthorized Candle Cove adapation takes to Kickstarter?

Month of Kickstarter #15: Stop Motion: Another tough weekend. I dipped into my starred projects and backed Charlie Kaufman's Anomalisa, bending my rule against backing big-name projects for MoK because I'm a Charlie Kaufman fan and would probably have backed the project anyway. Off to do other stuff now; hope you have a great Sunday.

Month of Kickstarter #16: Chocolate Aquarium: Last year I backed the Firebird Chocolate project, although apparently not as part of Month of Kickstarter, and my reward was chocolate. This year, Firebird is back, and having learned nothing, I've backed their second project as well.

Second, it's The ToyQuarium Project, which "will make the world's first miniature tilt-shift timelapse of an aquarium". I imagine you're gonna tell me that tilt-shift photography is played out, or that fish are nowheresville, daddy-o. Well, I don't want to hear it. Instead, I want to see a tilt-shift timelapse of an aquarium.

[Comments] (7) Constellation Games Author Commentary #34: "The Unilateral Extradition Expedition": This was the original ending of the book—not the extradition, but the art museum. Constellation Games is a story about creativity, and I always wanted the book to end with a big action scene based on creating things rather than blowing them up. You can imagine the creation of the museum going where the excavation of the dumps is now, and you'll have my original picture of the ending.

While initally planning the book I talked with my friend Kris Straub about how you plot a long-form serial arc. Kris created a comedy SF comic called Starslip which I mentioned briefly back in the Chapter 30 commentary and probably elsewhere. Starslip takes place on a spacefaring art museum. Kris drew it for seven years and did an amazing job combining blockbuster-movie action with a near-total lack of problems that can be solved with explosions. (The two best examples.)

I don't know how much of Kris' advice on plotting went into the arc of Constellation Games (Brendan has a guess), but this ending sequence, with its monumental redemptive act of copyright infringement, comes directly from that conversation and from the creative debt I owe to Kris over the years.

The microblog keeps chugging along. The stuff you'll see for the rest of the month is still stuff that happened in November, and will be archived under chapter 33. (Last week's stuff starts at November 11.) For reasons that should be obvious now and will be made explicit next week, Ariel will not be live-tweeting the extradition attempt.

You know it's getting serious now. Tune in next week for the book's AMAZING occlusion conclusion, when Dana will say "Nothing should be exploding."

Image credits: Adam Kaplan, maybe?, Wikimedia Commons user M.chohan, NASA/Dana Berry.

← Last week

Mental Organism Designed Only for Kickstarter: Yesterday Jason Scott tipped me off to Kicktraq, a site that gives a much better interface to Kickstarter projects than does Kickstarter itself. Among other things, Kicktraq gives you the coveted list of new projects in a given category. And the creator of Kicktraq seems just as interested as I am in number-crunching backer statistics.

Speaking of statistics, Sumana sent me to The Untold Story Behind Kickstarter Stats [INFOGRAPHIC], which does have an infographic but also explains things in sensible English text with graphs.

In so far as last year's Month of Kickstarter had a serious purpose, I felt people were distracted by the big-name projects and not getting in the weeds to figure out how things worked. Now there's a ton of attention on the project base as a whole, some of it based on crawls of the entire dataset.

What can I add to this? Since I did this project last year, I can now talk about fulfilment. I didn't keep track of exactly when I received all the different backer rewards from last year's Month of Kickstarter, but generally they post an update saying "the stuff finally shipped", so I just need to go through and find all those emails.

Anyway, on to the Month of Kickstarter portion of this post. There are two new hot sauce projects on Kickstarter today, and I backed both of them. SINNERS + SAINTS Hot Sauce and Blue Owl Vines - Organic Hot Sauce. Will I really eat all that hot sauce? Well, yes, eventually.

Month of Kickstarter #18: Funding Science: You'll recall that two hot sauce Kickstarter projects launched on Monday, and that yesterday I tempted fate by backing both of them. Well, today fate tempted me, by producing two more hot sauce projects: Bravado Spice: Artisan hot sauces! and 1Xinfin's - KGWans Hot Sauce. For some reason, rhetoric that would make me stay far away from any other Kickstarter project makes me feel like a hot sauce project is in good hands:

Founded in 2010, 1Xinfin’s mission is to educate through deliciousness. Subtley teaching happy customers that what tastes good does not have to be bad for you. The name comes from an abstraction of love times infinity and that is what we try and put in everything we offer.

But I'm not going to back four hot sauce projects in a row. Instead I backed 1000 Student Projects to the Edge of Space, a genre of project ("put a bunch of projects on a high-altitude weather balloon") which I never tire of backing.

And the science trend continues with my backing of An album all about science! "Terra Lumina", from the guy who autotuned Carl Sagan to bring us Symphony of Science.

Yeah, I dunno what else to say. They're projects, they're cool, I backed 'em. Have a great Wednesday.

Month of Kickstarter #19: Crea: Only one project today but I'm really happy about it: Crea, a 2D crafting game that's designed for easy modding with Python.

I haven't mentioned this on NYCB, but during the most recent Seven Day Roguelike Challenge I write a little Unicode-based crafting roguelike called "Walk in the Park". You can see a screenshot to the right. The interface is pretty awful but I did implement the basic features of this kind of game: destroying nature, crafting its bounty into blocks, and building things out of the blocks.

I stopped work on "Walk in the Park" after the seven days because I have way too many other projects. But being able to implement my crafting-game ideas in Python, without having to write a whole game, sounds pretty nice.

Finally, Month of Kickstarter Platinum returns! Kind of. Ace of Aces rotary series limited edition reprint. is only $60, and last year I would have backed it just for its historical importance, but like I said, lower budget this year. Check it out, though.

Month of Kickstarter #20: Election Day: Today's nail-biting project: The Election Day Calendar.

The Election Day Advent is a twist on the classic holiday tradition. Just hang it up, and open a door a day ‘til Election Day (Tuesday, November 6, 2012), and reveal fun facts and thought-provoking quotes about our democracy.

The company running that Kickstarter is the suspicious-sounding Gerrymander LLC.

Non-backed bonuses galore! Demand more nerd pandering? Check out the Little Urban Achievers - 28mm Miniatures. And the Slender Man returns to Kickstarter with Osiris Chronicles in HD. I'm not complaining--every Slender Man-themed Kickstarter project prevents a zombie-themed project.

Apollo 11 Special: Today on my #retrorocket microblog feature, I posted some of my favorite pictures from Apollo 11, in honor of the anniversary of the moon landing. I really like these photos because each has some quirky detail that helps me connect with an event that took place ten years before I was born and was enormously mythologized even before it happened. Since the Apollo 11 pictures are among my favorites in the entire collection, I wanted to cross-post them to NYCB, along with a little extra commentary on the details that caught my eye:

Month of Kickstarter #21: Hot Space: In a continuation of yesterday's Apollo 11 special, I put up for Fight For Space - Space Program & NASA Documentary:

We are not producing your average space documentary where we show restored footage from the moon landings and CGI galaxy renderings. We are covering the real political and economic issues of the recent past, today, and tomorrow.

Second, it's... more hot sauce. I backed the Bravado Spice project I mentioned earlier because I kept thinking about the idea of pineapple habanero hot sauce. And I wanted to do two projects today.

Time to go out and enjoy the weekend.

Month of Kickstarter #22: Rolling the Dice: Today I'm backing two Kickstarter projects that break my personal rules. I have these rules for a reason: they help me filter out the large amount of crap on Kickstarter. But these projects have been around for a while and I keep mentally coming back to them, so I'm going to override the general rules and give them a shot.

First, it's Mozart From an Ice Cream Truck. Earlier in Month of Kickstarter, I saw a project called Bruckner from an Ice Cream Truck. It was a funny idea. It raised $0.00. It looks like project founder Alonso del Arte decided that Bruckner isn't a big enough name, and he might have better luck heading the playlist with Mozart.

By backing this project I break my rule "don't back random conceptual stuff." But I noticed that del Arte has started ten clever Kickstarter projects, like The Symphonies of Michael Haydn need nicknames, Typography of Music concert, and Ukulele Concerto in A minor. Given that I've already gotten enjoyment just from reading his old projects, it seems only fair to show some support for his latest. I wish I'd heard about "The Symphonies of Michael Haydn need nicknames" when it was going on, though.

Second, we have A Slow Cold Death, a novel by physics professor Susy Gage: "A cozy mystery featuring big-ticket rocket science and the competitive atmosphere that leads to data theft, threats, and even murder."

Sounds fun, right? But in backing this project I break one of my most cherished, hard-won rules: don't back a book project where the project image is the cover of the book in wraparound format.

Wraparound format is what print-on-demand presses use: a single image with the book's back cover on the left and the front cover on the right. Every other time I've seen this kind of project image on Kickstarter, the book has been self-published crap about the simple equation that explains the entire universe, or the time Connie the Bunny got lost in the forest and had to learn a valuable lesson about sharing in order to get back home.

But A Slow Cold Death isn't self-published. It has a small-press publisher, dedicated to "giv[ing] a voice to nerds and geeks everywhere, people who can give an inside view into the underbelly of biotech, rocket science, or just everyday life at universities." And the book itself looks like something I'd want to read. So, I'm backing it. But, for the record, here's how you create inexpensive Kickstarter project images for your small-press books. Show the front cover of the book, plus some other stuff.

[Comments] (1) Month of Crowdfunding #23: I Come To Bury Awesome Dinosaurs, Not To Praise Them: Monday's a good day to catch up on non-Kickstarter crowdfunding sites, because Kickstarter's so quiet over the weekend. Today I went to Rockethub, which has a lot of cool crowdfunded science projects. Rockethub did not disappoint: after some browsing I found The Feathered Dinosaur Death Pit!, an excavation of a dinosaur burial site near Green River, Utah. (Insofar as a paleontological dig in Utah can be "near" anything.) This led to my biggest spend of this year's Month of Kickstarter: $35 for a cast of a Falcarius utahensis claw! It'll look great next to my U-Dig trilobite.

Back to Kickstarter: nerd pandering is passe, but hipster pandering is hot, hot, hot! It's The Mason Jar Cocktail Shaker! Oh yeah.

[Comments] (3) Constellation Games Author Commentary #35: "The Unilateral Extradition Expedition Solution":

When I look at my narrative arcs I see myself shovelling coal nonstop into a locomotive which builds and builds up speed, until it's travelling at relativistic speeds, like the locomotive in Einstein's thought experiments, going so fast that Lorentz contraction becomes apparent, and then the locomotive crashes into a wall and that's the end. If you've seen me give a technical talk you've seen the same thing; my talks generally end with "And that's the end of my talk." Not saying that's a good thing, but that's kind of where I am as a writer.

We start this chapter in the middle of the big action scene, the climax of the climax, the moment at which the locomotive is going as fast as it's ever gonna go. As with chapter 22, I came into this scenario treating it like a puzzle. I put Ariel in peril, wrote down all the details that might be relevant and tried to figure the best way out.

The difference between this and chapter 22 is that, as Curic says after the locomotive crashes, Krakowski's failure is overdetermined. He's operating on enemy turf and his plan is insane. He only gets as far as he does because Dana is enabling him. Dana having somehow gotten the idea that a huge dramatic rescue is a good way to spark romantic interest in the person you rescued.

So here the challenge was coming up with the most interesting way to solve the problem. The only restrictions were that Ariel had to take an active role in saving the day, and I didn't want Krakowski to die. As in chapter 22, Ariel tries a lot of stuff that doesn't work, and with the introduction of Dana his problem gets even worse, but here in the second part he's able to save the day in suitably dramatic fashion.

I think this sequence is pretty good for a first try, but in the future I'm going to try to plot these big action scenes a lot better. The "write everything down and figure something out" technique is a little sloppy. I should have had this planned much further in advance.

Before the misc commentary I want to announce that the microblog archive is complete! I wrote 403 tweets for Ariel and 173 for Tetsuo, not to mention the software that scheduled their posts in a realistic way, and it was all super time consuming. There are two tweets that haven't been posted yet, but I went ahead and added them to the archive. Ariel's final tweet I wrote just now, to give his feed some closure. I didn't like the idea of the top of his Twitter feed saying I don't think that deserves a special "freezer edition" for the rest of time. That looks the Twitter feed of someone who died suddenly.

As you find out this week, Ariel doesn't die, and this isn't the end of the stuff he and Tetsuo post in-universe, any more that "A Few Ip Shkoy Games About Asteroids" is the last thing Ariel ever posts to his blog. But it is the end of the slice you'll be able to see, because the novel's just about over.

The denouement approacheth! Tune in next week for THE SERIES FINALE, when Ariel will say, "You named a girl after me?"

Image credits: Unknown, Wikimedia Commons user Sissyneck, Luigi Rosa.

Month of Crowdfunding #24: Space Shuttle: Back to Rockethub today to back ROCKETS On RocketHub - Space Shuttle Movie! As you might have guessed, this project is a film about the end of the Space Shuttle program. Like many space-related crowdfunding projects, this one doubles as a Month of Kickstarter Platinum entry: high-roller contributions get you perks like a visit to a private space launch. And like many space-related crowdfunding projects, I backed it.

Month of Kickstarter #25: Don't Call It That: Given the horrors I've seen, "ALIEN GODS" is about the least promising title I can imagine for a fiction project on Kickstarter. Which is probably why the full title is "ALIEN GODS:Card-Foster-Haldeman-Rusch-Barnes-Steele-Resnick". OK, with big names like those, I'll take a look:

The concept for this anthology is to present stories about the religions of aliens encountered by humans as they explore the universe, and the culture clash that ensues.

Solid idea, good editorial credentials, and most importantly, a desire to anthologize other peoples' work rather than self-aggrandizing. I'll back it even though there's no electronic edition!

Today's pandering project: 2013 Cute Guys and Kittens Calendar. Featuring "cute, local guys", so you know it's got a low carbon footprint.

[Comments] (1) Month of Kickstarter #26: Wall Type: Today's theme is "art for the wall". And reasonably priced art, too! First up it's Re-Creating my Artwork from Original Dungeons & Dragons!. The original artwork having been thrown away because game companies have terrible senses of corporate history. Follow that up with Hydrophobia: A Look Into Another Universe (Prints). Nothing is said about how those photos were made, but presumably they are photos of water droplets in a hydrophobic material.

I'm still writing words in this box because I can't believe today was so easy. I'm so picky this year that MoK has been a real struggle. Anyway, back to writing stuff for money.

Month of Kickstarter #27: Back to the Moon: Remember July 17, when two hot sauce projects went up on Kickstarter on the same day? Man, that was hilarious. Good thing that'll never... yeah, it happened again. Yesterday three beef jerky projects launched within a few hours! 100% Organic Beef Jerky - Sweet Meat Jerky, Please Help Fund "Actively Primitive" (which also has non-jerky food items), and NewMiners Gourmet Beef Jerky.

So which one did I back? I actually didn't back any of them, because once again I heard the moon calling. RRE: Remote Rover Experiment is another project coming out of Google's X-Prize. Here the goal is to test a prototype rover design for moonworthiness. They're crowdsourcing the testing by selling vouchers for operating time on the rover. Then they see if you can break anything and measure the energy expenditure of your flailing attempts to control the rover by remote.

I thought this was a really corny idea (the project promises you "your very own mission countdown"), but over time it grew on me, so I backed the project.

Today I also backed a project I'd skipped before, Lunatics Animated Series Pilot - "No Children in Space". This is an "animated web series about the first settlers on the Moon." I skipped it when I saw it last week because although the series does take place on the moon, that's the only button of mine it pushes. Or so I thought, until I saw this post from project creator Terry Hancock on questioncopyright.org, which mentions that the series is going to be released under the CC-BY-SA license and that the goal of the project is "to get a sustainable cycle of support for a free-culture series." This is mentioned on the Kickstarter project page, but I look at so many projects during MoK I don't usually go below the fold. Anyway, that leaned on a bunch of the other buttons on my control panel, so I backed the project.

You might think Month of Kickstarter Platinum is unnecessary today, since the projects I backed, a lunar rover and the commission of free culture, are notorious money sinks in themselves. But no, there's more! For the less moneyed set, a mere $75 will get you a DIY vacuum forming machine. "Custom ice cube trays, custom chocolate molds, regardless of intricacy, vacuum forming can do it." Despite that cool-sounding promise, "not everything is formable (google draft angle)." Whatever that means.

Month of Crowdfunding #28: Film: Yesterday I heard about an Indiegogo project I wanted to back, but this morning I was like "well, good luck finding it based on that slender reed of information". Fortunately it was still open in one of my browser tabs. It's Digitize 100 Miles of the AV Geeks films. 16mm at a time. More old films on the Internet Archive--I'm sold!

Meanwhile, the Castle Story computer game must have a huge pent-up fan base, because by the time I saw it in the new Kickstarter projects list it had already raised about $100k. It does look really cool, and I may end up backing the project even though they're pretty halfhearted about support for a Linux version. It's probably a smarter move to wait until a Linux version shows up. OK, I talked myself out of it.

Oh, and in the spirit of a year ago yesterday, I bought The Humble Music Bundle.

Month of Kickstarter #29: Jerky and a Movie: Of the three beef jerky projects I mentioned a while ago, only one of them is likely to deliver any jerky. It's also the one with the lowest goal. A natural experiment! What's the difference between these three projects? Last year I would have been really interested in this question, but right now it seems like more like a marketing question than a number-crunching question.

Anyway, I wanted to tell you about the other project I backed today We Lived Alone: The Connie Converse Documentary:

Connie Converse was a misunderstood and multi-talented woman who dropped out of college in 1944 to pursue a music career in Greenwich Village. After years of hard work and no commercial success, in 1974 – at the age of 50 – she packed up her Volkswagen bug and drove off, leaving only notes of goodbye to her family and friends. All she left behind is a meticulously organized filing cabinet full of her letters, writings, drawings, and reel-to-reel tapes of hauntingly beautiful music.

I listened to some of the music on Youtube and "hauntingly beautiful" is pretty fair. This precis of Connie Converse's story puts me in mind of my mother and my aunt LeJeune. And you can get a digital download of the film for just $5.

On the other end of the spectrum, if you want to spend $39 on a digital download of a film, CAUCUS - New Documentary on the 2012 Iowa Caucus sounds like a good bet. By the director of Gigantic!

Month of Crowdfunding #30: Dolphins, I Say!: Coming up on the end of Month of Kickstarter, and my pickiness has led me to pursue crowdfunding sites I'd totally forgotten about, like Petridish. Today's project is Tracking Killers: GIS Mapping of Pacific Killer Whales, a project to map the habitat of Pacific killer whales, which as everyone should know by now are actually dolphins.

Except, while doing dolphin research for Constellation Games, I discovered that cladistically speaking, dolphins are whales. They're Odontoceti, toothed whales. In particular, sperm whales are more closely related to dolphins than to baleen whales. As a result I've become much more relaxed about policing the dolphin/whale boundary, since it turned out Dolphinville was entirely contained within Whalistan the whole time.

[Comments] (3) Constellation Games Author Commentary #36: "Protector of Earth": Here it is, the denouement. I hope you've enjoyed the story, the commentary, and whatever bonus materials are coming your way. As I start closing out this commentary series I want to give a big thanks to you, the fans. I've done projects before that have garnered fans, but Constellation Games is the first time I feel like I have a traditional fan base, and it's greatly appreciated on my end.

Now that I've buttered you up, I want to once again ask you to do what you can to get other people interested in Constellation Games. "What's in it for me?" you ask, because buttering you up only goes so far; I get it. Well, maybe you want a sequel. I have an idea for a sequel. But I can't justify spending the time to write a sequel to a book that wasn't a big hit. I'd be better off writing a totally new novel, as I'm doing now.

Hopefully getting people interested will a lot easier now that serialization is done. Ebooks will soon be available for $5, which should take the book into the realm of instant-gratification impulse buys. You'll be able to get a PDF direct from the publisher, or to get Nook and Kindle versions from B&N and Amazon.

It would also help a lot if you left reviews of the book on the bookstore sites, Goodreads, LibraryThing, and so on. Or just post a review on your blog. And remember that someone who's on the fence can read the first two chapters for free as PDF or HTML.

I'm still trying to line up podcast appearances and so on. But I've learned that it's really difficult for an author to effectively promote their own book, because everything I say sounds like an ad. Well, it is an ad. That's why books have quotes on the back covers from people who didn't write the book. Fan-driven publicity is a million times more effective than anything I can do. (n.b. I haven't actually measured this, but a million times seems about right.)

Hopefully after that you're ready for some commentary:

You can read the end of the book as an unimitigated "yay, Ariel", and I deliberately didn't spend much story time on what I'm about to say, but... Ariel's redesign of Human Ring is an incoherent mess. His appreciation of art does not extend much past "art is good and we should have more." He's not a curator, an architect, or a designer of ecosystems. He didn't even get to finish his metafractal before instantiating it.

But this huge mess pushes a habitable Human Ring into the realm of the imaginable. Ariel gets in your face with a really cheesy version of whatever you're good at, and gets you thinking about how amazing it would be if you could redo it properly. (Most of what Ariel does between December 26 and April 22 is working with people with real domain knowledge.)

I used The Dinner Party to dramatize this. Judy Chicago's piece is a monument to dead and mythological heroes, realized in media traditionally associated with women: ceramics, sewing, weaving, embroidery, lace, and (implied) food. It serves as a counterweight to all of history's monuments honoring men.

Like all monuments, The Dinner Party works by overwhelming you. In the Brooklyn Museum the piece has three parts: you walk down a hallway hung with very 1970s tapestries, then you turn a corner and enter a dark triangular room containing nothing but the installation, and you're overwhelmed. Finally you leave the installation room to a big Mathematica-like timeline explaining who all the women mentioned in the piece were. (I get why the timeline is necessary, but it leaves me with the feeling that I've just visited a state park.)

Ariel does not really understand The Dinner Party. Even Somn, who understands it less, can see this. Ariel's reproduction omits the timeline, the hallway with tapestries, and the dark triangular room. He just reconstructed the table in the uniformly-lit docking bay along with everything else. This ruins the overwhelming effect.

It's highly questionable whether Jenny would want to put Protector of Earth in that room. Setting up The Dinner Party next to Trajan's Column doesn't do either piece any favors. But it does put them on the same rhetorical level, and putting hundreds of those pieces in a room a mile square creates its own overwhelming effect. In the docking bay, the monuments humanity has built to its accomplishments are themselves recognized as accomplishments.

Even before the contact event, Ariel knew what this tasted like. He had an archive of all of humanity's Games of a Certain Complexity, acquired through software piracy and playable whenever he wanted to play them. Now he's demonstrated that kind of abundance in a way that people who don't care about video games can appreciate.

Of course, all the artworks on Human Ring are replicas. Even the "fucking Banksy mural" got destroyed by the matter shifters and had to be restored from backup. But as Tetsuo says in chapter 12, there are no un-replicas. Even the original artwork is an imperfect replica of the pure idea in the artist's mind.

And every replica is imperfect. Duchamp's famous "readymades" are, less famously, not ready-made. They've been altered, or they're nonfunctional replicas, or (later on) they're laboriously reconstructed (and further altered) replicas of the original replicas. When BEA Agent Krakowski smashes Fountain in chapter 34 he's destroying a replica of a replica of a possible replica.

Constellation Games is full of replicas. Ariel's house, Dieue's apartment, the shipping containers, Ariel's notebooks, the CDBOEGOACC games and hardware, the golden cellular-automata machine, the periodically resurfaced lunar field, the Disneyland environments of Ring City, Jenny's cosplay, Tammy's missions in the Orion simulator, Ariel's recreation of Tammy's go bag, Dana Light in all her forms, the game companies making the same game over and over, Recapture That Remarkable Taste and Sayable Spice: Earth Remix, the imperfect copy of Tetsuo that Somn has in her head, and the imperfect immortal electronic copy that could have existed instead.

Negative space is Ariel's theme, and replicas are Tetsuo's. Throughout the book, Tetsuo concerns himself with the negative space that separates real replicas from fake ones. The way someone from a culture with less history might care a lot about originals vs. replicas. He cares because the original was trying to tell you something. Probably unintentionally, probably not what the original creator was trying to convey, probably something about that person and their society. A real replica will let that message come through. A fake replica will preserve the text of the article but lose the revealing advertisements. And how you use a replica will, in turn, reveal something about you.

Maybe miscellaneous notes are an anticlimax after that, but here they are anyway:

And that's Constellation Games. This commentary series will continue for two more weeks, with commentaries for the bonus material posted on Tuesdays and Thursdays. If you ordered the bonus material, you should be getting it soon along with the complete ebook. If you ordered the USB key, the bonus material's on there. If you're not sure what to read first, here's the commentary schedule, and my recommended reading order:

Update: I originally put the stories in this list in the order I wrote them. But when I suggested a reading order to Kate, I suggested chronological order, which is the exact opposite order. I've changed the commentary schedule to reflect the order recommended in the email that contains the bonus material.

If all you're getting is "The Time Somn Died", then your task is easy. Otherwise, tune in next Tuesday, when Dana will say, "Americans cost extra." Tune in next Tuesday, when Somn will say, "Ha ha ha... stop it!"

Pictures from the Brooklyn Museum and the Brooklyn Botanical garden are ones I took on March 9, 2012. Other image credits: NASA, Jerry Paffendorf, and Kevin Stefanovitch.

← Last week | "The Time Somn Died" →

Month of Kickstarter #31: Jazz Python Planet: As I write this I have backed 269 Kickstarter projects. I've also been posting the word "Kickstarter" to my Twitter feed every day for the past month. (In my defense, it was always in a sentence along with other words.) So you might imagine that people who are hustling especially hard on their Kickstarter projects might discover me and pitch me to back their project.

Throughout Month of Kickstarter I've gotten a lot of recommendations from friends. Some I've backed, some I haven't, some I'd already backed when the friend told me about it. But from strangers? Not too often. Earlier this month someone asked me to back their video project about (I think) how to do video projects. It wasn't really my thing so I ignored it. And yesterday Daniel Davis asked me to check out Urban-Jazz Violinist Daniel D.'s New Album Project! I actually saw this project when it launched, and decided it too was not really my thing, but what the hell. It's a fine project, today is the final day of MoK 2012, so let's go out with the abandon that marked last year's observance. I've backed Daniel's project and two others:

Thus ends Month of Kickstarter, coincidentally on the same day as the serialization of Constellation Games. But just like last year, the fun doesn't stop when I stop backing all these projects. Once the projects complete (or fail) I'll be updating the graphs I made last year, when I said things that sound ridiculous now, like "realistically you're not going to get more than 350 backers." What's the realistic number of backers now? We'll find out.

This year there are other people crunching numbers on Kickstarter projects, notably Kicktraq. But this year I've gathered a lot more data than I did last year, and I've got my own ideas for how to slice it up. See you then!

[Comments] (2) @CrowdBoardGames: A year ago today I announced the publication of Constellation Games. The serialization finished yesterday, so now's a good time to take a little break and tease the big projects I'm working on now. But before I do that, I want to introduce you to a technology spin-off from Month of Kickstarter 2012, the other thing that finished yesterday.

Here's @CrowdBoardGames, a Twitter bot that posts a link to every Kickstarter project that shows up in the "Board / Card Games" category. Yes, it's the very specific thing I mourned the lack of a month ago. I'm not really attached to this project—in fact I hope Kicktraq starts doing something similar for all the different categories so everyone can use that instead—but it scratches my personal itch. If you just want to know about every new board game on Kickstarter, now you can. And check out Eternity Dice: Forged From Lava. It's ridiculous/cool.

So, time for the tease. I mentioned in a CG commentary that my genre-savvy space opera "Four Kinds of Cargo" will be appearing later this year in Strange Horizons. I also mentioned that I'm working on a second novel, but I didn't mention that the novel is a direct sequel to "Four Kinds of Cargo". I'm still very early in the first draft, and of course there's no guarantee I'll ever sell it, but I think it's going pretty well.

My goal is to tell the same kind of crazy, epic story found in Constellation Games, but to use a more traditional style (third person limited, multiple narrator), so people don't open the book and see printouts of email messages and say "what the hell is this?" in a Jeffrey Tambor kind of voice. I'm also trying to spread out the action more evenly, so that you're having adventures in space right from the start.

I'm also working on a second book, a nonfiction book, and although I think it's just about sold, there's no contract yet, so I'm not going to divulge any details. Look, I said this was a tease, okay? What do you want, a hashtag? #tease

Zombies of Kickstarter: Many Month of Kickstarter projects are still going on, but since July is over I can present some interesting statistics about the projects that were started during MoK. Today I'll share the most basic graphs and take a look at the zombie invasion of Kickstarter.

My dataset includes 3758 projects for July. The first thing I need to say is that that is not every project that went live during July. I missed at least 50 projects, probably more. I'll explain how this happened in a minute, but first take a look at this graph, which shows how many Kickstarter projects launched on each day of July:

As I noticed while doing MoK, we see big numbers in the middle of the week, big downswings coming into weekends and the Independence Day holiday. This fits with what the Kickstarter FAQ says:

Once your project is submitted to us for a guidelines review, it will take us a day or two to get back to you (longer over the weekends).

But, I have a question for people who have started Kickstarter projects: once the project is approved, do you flip the switch to put it live? Or does it go live as soon as it's approved? I can't find the answer in the FAQ, and the answer greatly affects how I should read these graphs.

Anyway, let's zoom in and look at the data on an hourly time scale:

There's a noticeable low-pass filter cutting in at fifteen projects per hour. That's how I discovered I was missing projects. See, my script samples the "new projects" page four times an hour, and that page lists fifteen projects. If more than fifteen projects are approved/go live in a fifteen-minute period, I'll miss some of those projects. I originally thought this wouldn't be a big deal, but it seems to be a medium-sized deal.

(For this reason, @CrowdBoardGames isn't guaranteed to list every single board game project. A spot check against Kicktraq's board games page didn't show any discrepancies, but maybe Kicktraq has the same problem, I dunno.)

So, I don't have all the projects, but I do have a representative sample. On the left, you'll see the category makeup of all Kickstarter projects, according to Kickstarter's stats page. On the right you'll see the category makeup of the projects I gathered during July. They're nearly identical.

All-time category makeup MoK 2012 category makeup

There's a little less film in my sample, a little more fashion and comics and games. This might be random variation, seasonal variation, or a change in how Kickstarter is used over time.

Here's the graph of when Kickstarter projects go live. The X axis is the hour of the day, Eastern time. I think this is just a measurement of when the people who review the projects are at work, but who knows. I think that local maximum at 4 AM is interesting.

Now I'm ready to tackle the first real issue: zombie projects. There are so many zombie-themed projects on Kickstarter it makes me sick with a zombification virus. How many zombie projects in the MoK dataset? I'm glad you asked: there are forty-six. 1.2% of all Kickstarter projects are projects about zombies.

Here's the projects-by-day graph for projects that mention "zombie" in their title or description:

(This does not include Bootleggers -Prohibition Era Board Game (sorry no Zombies!), since that project launched in June.)

1.2% may not seem like a lot, but it means you could do a Month of Kickstarter project and back only zombie-themed projects every day. But no, 1.2% isn't actually a lot. Why does it feel like more?

Forty-six projects is a lot by comparison with other nerd button-pushes. July saw only twelve vampire-themed projects, four pirate-themed projects, and ten that mentioned some kind of "alien". There were only fourteen "robot" projects, and three of those were actual robots. I made fun of all the Slender Man projects in July, but there were only four of those.

The category breakdown for the zombie projects has another answer:

The zombies are disproportionately concentrated in the categories I most pay attention to: books (8 projects), movies (20), and games (8). Music, a huge category I basically ignore because it takes too long to judge the projects, was threatened by only a single hip-hop zombie.

Once July's projects complete I'll be going back through the data and seeing if zombie-themed projects raise more money than comparable non-zombie projects. In the meantime, do you have any similar pet peeves? Let me know. I can determine how prevalent they really are.

Constellation Games Bonus Commentary #1: "The Time Somn Died": Surprise! Last week's plan was to post the bonus commentaries in the order in which I wrote the stories, starting with "Dana no Chousen". But a while back, when I gave Kate a suggested reading order to send y'all, I suggested chronological order, which is the opposite of that order.

As Kate will attest, this is not the first time I've said one thing about the bonus stories and proceeded to do the exact opposite thing. To nip confusion in the bud, I've swapped "Dana" and "Somn" in the commentary list and we'll proceed.

In another shocking twist, I hereby announce that two of these bonus commentaries will feature brand-new art! Brendan Adkins, William F. Buckley-esque thorn in my side, will be drawing something for "Dana no Chousen". I can only hope Dana's boobs will be tastefully covered with a gun or something.

But today, I offer pencil art of Her's glider form and aquatic form, drawn by pop painter Beth Lerman, inspired by Ernst Haeckel's zoological illustrations and my own crappy sketches. Unfortunately, because I switched "Dana" and "Somn" in the commentary list, I asked Beth for her art on very short notice and she didn't have time to draw Her's vacuum form. Beth still plans to draw all three forms present in "The Time Somn Died", and I'll let you know when I get the finished drawing.

On Thursday I'll reuse Jenny's Twitter profile image (also drawn by Beth) for "Found Objects". I don't have anything planned for "Pey Shkoy Benefits Humans"; maybe I'll draw some stick figures and blame them on Tetsuo. What I'm hinting at is, someone who can draw could get their art into this commentary series pretty easily. HINT.

One final note. Did you order bonus stories and never got them? Check the email that contains your compiled Constellation Games ebook. You never got that email? Then we got a problem; let me know. Let's begin:

"The Time Somn Died" is the story you got if you bought the cheap but not-too-cheap package. I decided to send you this one because I think it's the best of the three. This is a prequel to Constellation Games, the story of how Somn railroads herself into making the biggest mistake of her life. It's the missing left parenthesis to her letter to Tetsuo at the end of Constellation Games, in which she's coming to grips with the idea that she may not have made a mistake at all. She may have done the right thing for completely the wrong reason.

This story took a lot of inspiration from Iain M. Banks's Culture novels, which periodically show slices of life from a mannered post-scarcity civilization, slices of life which I find immensely dull. Reading those passages of Banks I truly understand what Douglas Adams meant by the long dark tea-time of the soul. I wanted to capture that uncomfortable feeling, to use it as setting, without actually instilling it in the reader.

This is tricky stuff. I knew I was playing with fire. But there was no other material to play with. I needed to convey that Somn has a tough time adapting to the contact mission because she's not a misfit. Unlike Tetsuo and Curic, she was perfectly at home in the Constellation. What gets Somn is a hidden nugget of greed that's never had a chance to come out: her desire to have a scarce experience, to be the first one to see something. She's pushed through the contact port by that little bit of greed and her family's pride in her smarts and her own damnfool stubbornness.

Tetsuo's version of this story would be like Ariel's story: the ennui would build up to a "screw you guys, I'm leaving" scene. Curic's story would be like Tammy's story: no time for ennui, just a lifetime of probably-pointless training that turns out not to be pointless after all. To make "Somn" anything other than a repeat of a story you've already seen, I had to show Somn soaking in the ennui but not consciously aware of it. And I couldn't have the in-story ennui instill real ennui in the reader.

The solution to both problems is pissy family drama.

"Somn" is nothing but a series of family arguments. Great thing too, because as I mentioned earlier, arguments are the best way to do exposition. I needed to show how the other-room works and how Slow People and fleshy people interact, so I wrote Somn's mothers reinstating Dad-Tessererre over Somn's objections. When Tessererre is reinstated, his character is immediately defined by his kvetching about the guys his wife and daughter hooked up with after he uploaded. I needed a lot of exposition from Her, the only character who understands what's going on, but infodumps are boring, so I wrote the bitchy antagonism between Her and the passive-aggressive Constellation Library.

I think it works great. I'm really proud of this story. For a work of short fiction I think it packs an immense emotional punch. Her's "tired of begging for mercy" speech gets me every time.

Before the miscellaneous commentary, I want to discuss the exciting issue of the units of measurement I made up for this story. I've never seen a clearer example of the tension between building a realistic alien world and evoking certain emotional responses in the human reader's mind. When I was just starting to write SF, I would have loved to see a detailed walkthrough of this sort of decision process. So here it is, in a special section I like to call "the time, the distance, and the mass":

I knew right off that using human units of measurement was out. There are no humans in this story. No one in the story even knows that humans exist. But in several places I needed to convey rough measurements, especially time scales, to human readers. I didn't want to make up fake names for the units, for the same reason I didn't want to spend Constellation Games calling the Aliens and Farang "kej" and "metrase". Every term you make up for a story takes up space in the reader's mind and makes it harder to read the story. So I presented all the measurements in the stories as estimates, as unitless powers of two.

My original concept was that the unnamed Constellation units were based on the Planck units. For mass, this worked out fine. One kilogram is about 225 Planck masses, so the 231 mass mentioned in the first paragraph is about 64 kilograms. That fits the story. 231 sounds like a lot, but not an astronomical number. It's about a gigabyte of mass. And that's the only measurement of mass in the story, so I went with the Planck unit for mass.

But if I define 20 to be the Planck time, then one second is about 2116. That's a huge number! It's way outside your experience and mine. To human brains, 2116 doesn't look much smaller than 2137. But that's the difference between a second and a year.

Problem #2: I wanted to use a negative exponent for the scene where Somn imagines Dad-Tessererre speeding up his consciousness faster and faster. This conveys the idea that post-upload Tessererre inhabits a completely different cognitive universe from pre-upload Tessererre. But if 20 is the Planck time, negative exponents are impossible. Instead of going from 20 to 2-8, you're going from 2116 to 2108, which doesn't seem like a big difference at all.

For a phrase like "the minds below 20" to make sense, 20 has to be concomitant with the speed at which Somn's brain (and yours) works. So I defined 20 time as about a quarter of a second.

Now, if I wanted to be consistent I'd define 20 distance to be either the Planck distance (so that one meter would be about 2155), or the distance light travels in 20 time (so that one meter would be about 2-16). Neither of those is a good reader-scale number. The only distance measurement in the story is the diameter of the contact port, and as with the mass measurement in the first paragraph, the only thing that number needs to convey is "that sounds pretty big."

2155 is way too big and way too precise. Somn wouldn't estimate any measurement that precisely, even though 2154 is half the size of 2155. And 2-16 doesn't seem very big at all. So again, I calibrated the distance measurement according to a natural scale for someone as big as Somn. 20 is about a quarter of a meter, giving the contact port a diameter of about 32 meters.

Of course, now I'm stuck with these units for any future Constellation stuff. But since I set the time and distance units to Somn-scale for story reasons, it should work out fine if I need to use them again for story reasons.

On Twitter last week Emile Snyder suggested using made-up abbreviations instead of leaving the numbers totally unitless, which would also have worked.

PS: If you go through my math above you'll probably find some conversion errors, and if you tell me about the errors I'll fix them, but I don't care all that much, since my point is that the numbers in the story are Somn's rough eyeball (eyespot?) estimates.

Don't get used to this much bonus commentary; this is the longest one by far. But be sure to come back on Thursday for the comparatively minuscule commentary on "Found Objects", when Jenny will say, "Ariel's not the most reliable."

The drawings of Them organisms are by Beth Lerman. Other image credits: Wikimedia Commons user Miya, National Bureau of Standards, Makuahine Pa'i Ki'i, The Planetary Habitability Laboratory.

← Last week | "Found Objects" →

[Comments] (12) Constellation Games Open Thread: Now that the serialization is done, I think it's time to bring back the open thread, a place to talk and ask questions about the novel as a whole. This is also a good time to mention that Constellation Games is now available for $5 on Nook and Kindle. Finally, you can indulge your love of DRM!

What? You don't love DRM? Boy, is my face red. Fortunately, now that the serialization is complete, you can also now buy a $5 unencumbered PDF at the publisher's website. Or buy the trade paperback from the publisher, and get the PDF for free.

You can't buy the bonus stories right now! They've gone into a Disney-like "vault" of artificial scarcity, as a way of increasing the social standing of those forward-thinking individuals who bought the bonuses as part of the serialization. They'll shuffle blinking out of the "vault" at the end of November. At that point you'll be able to buy the bonuses from Candlemark & Gleam, either on their own or along with the novel. And only then will the stuff I'm saying over the next couple weeks make sense.

That's the business stuff; now I want to toss out a topic to get the open thread started. There's a weird plot hole in the novel that I don't think anyone else has noticed. Way back in chapter 2, Jenny and Ariel are picnicking in the hills on the way to the landing site. They encounter a hippie who's been to the landing site and who's now heading back to Austin. He talks like he just decided to go check out the landing site. How the hell did he get there so quickly? He's on foot, and the site's fifteen miles out of town. Did he just happen to be taking an early morning stroll in the country? That's a really big coincidence.

This little discrepancy has nagged me for a while and I've got a variety of solutions. Some of them are boring, some are way too interesting. Want to give it a try? Leave a comment.

Constellation Games Bonus Commentary #2: "Found Objects": Of the three bonus stories, "Found Objects" is the one with the lowest stakes. This is a direct consequence of the fact that I wrote a story set during the novel, while the novel was being typeset. There's only so much I could change. I actually like this strategy because it fits with Jenny's risk-averse nature, but it did constrain the story pretty tightly.

If I'd thought of it earlier, I could have told the story you saw in Tetsuo's Twitter feed after Ariel left Earth. The story of Jenny and Tetsuo picking a fight with the Hierarchy Interface overlay by starting the EVERYTHING IN AUSTIN tour company. That story also takes place during Constellation Games, but involves characters that are almost entirely offscreen at the time. Whereas "Found Objects" has to weave between scenes dramatized in the novel.

The main goal of this story, the story I actually wrote, is to portray Jenny as significantly different from the way Ariel portrays her in the novel. Not just "careful meticulous Jenny", but kinda ruthless in ways her friends find scary. In Constellation Games Ariel is pretty unsparing about his own flaws, but generally careful to present the "beautiful practical Jenny" for posterity. But this does her a disservice. By excising Jenny's talent for creative obscenity, Ariel makes her a less interesting character and obscures their bizarre chemistry. And his attempt to "protect" Jenny from Bai's business offer is just a dick move.

The "ruthless" stuff is me retconning Jenny into a more interesting character, but I'd always imagined that she and Bizarro Kate were super raunchy when they were together, and there's no reason why she would tone that down around Ariel. So Ariel must be changing the story. In Constellation Games Jenny and Ariel tease and provoke each other in almost every scene they share, but Ariel files the edges off in narration. (Brendan has done a good job of pointing this out, but after you read "Found Objects" you might like to reread the first part of chapter 14.) Jenny gives it to you straight.

A few misc. comments:

We're halfway through the bonus material! Be sure to tune in next Tuesday for the rescheduled commentary on "Dana no Chousen", when Dana will finally get her chance to say, "Americans cost extra."

"Protector of Earth" blueprint by Beth Lerman. Other image credit: Unknown 19th-centry land company.

← "The Time Somn Died" | "Dana no Chousen"

Loaded Dice 2012 Update: Here it is, folks. I re-downloaded the BoardGameGeek dataset and crunched some numbers to determine what happened between July 2011 and now. Highlights:

I'm planning another entry in the Loaded Dice saga, one involving geeklists, but that's not going to be done for a while.

Constellation Games Bonus Commentary #3: "Dana no Chousen": It's Tuesday, time to turn over a rock and uncover "Dana no Chousen", the most violent story I've ever written. My very first concept for bonus material was an excerpt from a sleazy, bloody Dana Light tie-in novel, illustrating the source material from which the Dana we see in chapter 35 took her personality. But I can't really do a long-form pastiche of a totally foreign style (that would be Kris). I don't even enjoy reading such pastiches (sorry, Kris).

And I'm less interested in Dana's source material than in Dana herself. There are a lot of unanswered questions and just plain plot holes in Constellation Games, but the only ones that still bother me have to do with Dana. As Brendan points out, Dana gets a really raw deal in the book—not just from humanity but from the Constellation. Why did Curic agree to uplift Dana in the first place? It seems like asking for trouble. Why did Smoke agree to send one of its subminds to be a human's girlfriend? And why does Dana never come out of the sandbox at the end of chapter 35?

I tried out a number of explanations: 1) Hypotheses about the behavior of fictional alien anarchists cannot be tested. 2) Back before the Greenland Treaty was a sure thing, Dana 2.0 looked like a good opportunity to land a spy on Earth. I did not like these explanations. The explanation I used for background in "Dana no Chousen" is that Dana is caught between different conceptions of identity.

Daniel Dennett's multiple-drafts theory of consciousness suggests that human minds, like Dana's and Curic's and Smoke's, are made up of subminds. Human psychology makes the simplifying assumption that the subminds add up to a single "person". But Curic and Smoke accept persons as the emergent properties of other, smaller persons.

To Ariel, splitting Dana out of Smoke feels like creating a new person. But as far as Smoke and Curic are concerned, that person already existed within Smoke. When Curic looks back on this, she's going to think her big screwup was trusting the human socialization of Smoke-Dana to a couple of videogame-obsessed flakes like Bai and Ariel.

(This is hard to square with Curic's guilt-trip of Ariel in chapter 9, the first time he asks for an Edink-English translator. I wrote that section very early, and I should have come back and revised it after adding Smoke to the story. But I think the problem is a lot smaller if you read Curic as suggesting the creation of a brand new AI for purposes of the guilt trip. Sometimes when we don't want to be bothered we exaggerate how much work it really would be to do something.)

A person can function even if some of its subminds are unhappy or psychotic. Sometimes an unhappy or psychotic submind can even help the larger mind get something done or come up with new ideas. But an unhappy submind of Smoke might be as big as a human, or bigger. Should you worry about that?

Curic doesn't worry because she doesn't believe Smoke-Dana is all that big. Smoke will worry if it feels a problem, but Smoke is the size of a society. It doesn't have the computing power to police the happiness of its entire tree. But Ariel, uh, knows Dana. And Ariel can't let this go. A person went in there and didn't come out.

So Ariel puts on his pith helmet and goes into Smoke with his human outlook and his human standards of morality, and it turns out there's a problem with the sandbox. Dana found a way to game the system without her supermind finding out. Ariel goes in and rescues Dana from her own cruelty and Smoke's complicity. A happy ending! By human standards.

We're almost done! Come back in two days for the Leonard/Adam joint commentary on "Pey Shkoy Benefits Humans," when Tetsuo will say, "Hot damn, it's business!"

"Dana no Chousen" banner by Brendan Adkins. Savannah photo by Scott Oves.

← "Found Objects" | "Pey Shkoy Benefits Humans" →

[Comments] (2) Constellation Games Bonus Commentary #4: "Pey Shkoy Benefits Humans": We're going out in style. This final commentary is a collaboration with Adam Parrish, anointed successor to Marc Okrand, and we've both got a lot to say about Dr. Tetsuo Milk's first popular work, "Pey Shkoy Benefits Humans". My commentary, directly below, focuses on the Ip Shkoy themselves and how Tetsuo's pamphlet fits with his character arc. Adam's commentary focuses on the Pey Shkoy language, how he designed it, and how it works from a linguistic perspective.

My writing group met on Monday evening; we had dinner afterwards, and the topic of the Constellation Games bonus material came up. The relationship between the bonus stories and the writing group is a little weird. The point of the writing group is to make stories saleable, and the bonus material was pre-sold, so after getting some good advice for "Dana no Chousen" and a "looks fine" for "Found Objects" I didn't even workshop "The Time Somn Died" or "Pey Shkoy Benefits Humans".

And when talking with the group over dinner I got an impression I've also gotten elsewhere, that people don't really know what to do with "Pey Shkoy Benefits Humans". That it's a worldbuilding document thrown in for completionists, like the Star Trek Technical Manual. I feel like I'm starting this commentary from a position of weakness, needing to justify the existence of "Humans" in the first place.

Looking through "Humans" now I think I repeated the mistake I made in the first draft of Constellation Games. I focused too much on creating a realistic in-world artifact, and not enough on the sleight-of-hand necessary to make a constructed narrative look like an in-world artifact. I even did this deliberately, because I had a fixed idea that all the "bonus stories" would be from the POV of the novel's women characters.

Unlike Ariel's boring first-draft blog, though, "Humans" is at least fun to read on its own. And although it doesn't tell a story, it comes from a story I could have told: the story of why Tetsuo left his wife and children on the space station to come to Earth.

Tetsuo really loves the Ip Shkoy. His love is not returned—if he lived in Ip Shkoy times they'd treat him as a second-class citizen—but we can't always choose our obsessions. Tetsuo didn't fit in at home, so he joined the contact mission the way an aimless American might join the Peace Corps, hoping to "do" some unspecified "good".

In terms of finding "good" to "do", Tetsuo hit the jackpot. Not only is his the very rare contact mission that finds a live civilization, but the new species they discover is physiologically similar to his own. They can pronounce the same sounds and operate the same computers. (As Adam points out below, the whole narrative of Constellation Games is based on this anthropic coincidence.) Even better, Tetsuo's one of a handful of experts on the Ip Shkoy, a culture that looks to be kinda translatable to the dominant culture on this planet.

Except this culture is doomed, just like the Ip Shkoy were doomed, just like all cultures based on the manipulation of scarcity are doomed. After leaving home Tetsuo met Somn, the first woman he's ever wanted to have children with, but while that was happening he saw the first wave of contact experts come to Earth and point out "hey, you guys are kinda doomed," and that didn't seem to help at all.

So Tetsuo leaves, again. He goes to Earth and makes a plea on behalf of the Ip Shkoy, the same plea Ariel makes to the future on behalf of humanity: play our games and read our stories. Humanity doesn't need lectures from the Constellation, any more than an alcoholic needs a temperance sermon. Humanity needs a sponsor: strength from someone else trying to beat the rap. And that's why Pey Shkoy Benefits Humans. Tetsuo's writing a work of science nonfiction, using space aliens to hold up a mirror to human culture.


Ever since Kate first raised the idea of bonus material, I wanted to collaborate with Adam on something. Since Adam and I have both written interactive fiction, my original idea was a project Adam called "the textuo adventure": an educational game written by Tetsuo to teach you, the visitor from Ring City, how to get through US Customs and Immigration without causing a diplomatic incident. I would write the prose and Adam would do the programming.

This didn't happen because the worldbuilding problems from "The Time Somn Died" come back and they're five times worse. Although "Somn" is written from a Constellation POV, there's no infrafictional audience, and the actual intended audience (you folks) is human. In the textuo adventure, the infrafictional audience would be Constellation, meaning that you, the actual audience, would be put into ET shoe-equivalents.

The main idea I had for conveying this feeling was to implement NPCs not only for the people present in the room with you, but for the organizations and overlays they belong to. So if a BEA agent was in the room, the BEA itself would also be in the room, and you could talk to the BEA through its human agent. This idea was inspired by Curic's "K'chua!" interaction with the customs official, and I like it a lot, but it would mean creating tons of NPCs for a supposedly simple game with only three or four characters.

While I agonized over this we did the cover design, and I asked Adam to come up with some Pey Shkoy characters for the fictional computer. That's when I remembered that if there's one thing Adam loves more than programming interactive fiction, it's making up fake languages. So I replaced the IF project with something simpler (for me): I asked Adam to turn the fragments of Pey Shkoy found in the novel into a coherent language. I gave him permission to add any weird features he wanted to the language, and I specifically asked him to do things with Pey Shkoy that are not done in any human language.

Adam delivered! But I'll let him explain exactly what he delivered, after I go through "Humans" and write a couple miscellaneous comments:

A final note from me: if you have the Constellation Games trade paperback, you'll see some Chospe writing on the back cover, near the UPC code. This isn't Pey Shkoy; it's transliterated English. If you transliterate the text according to the rules laid out in "Pey Shkoy Benefits Humans", you'll get a silly joke. I will eventually post the transliteration in an update, but give it a try on your own.

Now, I'll hand over the mic to Adam Parrish, who will commentate the process of turning the individual Pey Shkoy words in the novel into a coherent, maximally weird language.


Hi, I'm Adam. I'm a computer programmer, sci-fi fan and amateur (con-)linguist. Leonard approached me a little over a year ago to help him create a few phrases in Pey Shkoy. I had already read a draft of the novel by then, and I adored it—so of course I agreed. Who could turn down the opportunity to put words into the mouth of a character like Tetsuo Milk? Eventually, Leonard decided that a few phrases weren't enough, and that he'd like to produce an entire Pey Shkoy guide and phrasebook as a bonus reward for early Constellation Games adopters. My role was to supply the language design; Leonard did the hard work of rephrasing this as Tetsuo-ese. After a few collaborative work sessions and a few months of elbow grease, we were able to put together the document that many of you now have in your possession: Pey Shkoy Benefits Humans.

My goal in this commentary is to show how our collaborative process worked, and to show a few details about the language that didn't make it into the final document.

Adventures in alien physiology

The very first part of the process was to figure out what Pey Shkoy sounds like. Is the Alien vocal tract even vaguely similar to the human vocal tract? The only reference to the way that Alien speech sounds like in the book is when Ariel describes Tetsuo as "twist[ing] some vowels into balloon animals," which is a vivid description but doesn't help much from a linguistic point of view. I ended up having some unusual e-mail conversations with Leonard about Alien physiology, like:

Me: do aliens have lips? a lot of words in the corpus have "p," "v," "f,"
    "b"---which I assume would only be used to describe sounds made by blocking
    the airflow coming from the mouth entirely with something other than the
    tongue. so, by lips I mean: fleshy bits at the front of the mouth that can
    connect to form a seal.

Leonard: Yeah, they got lips.

I spent a good deal of time imagining how Aliens might produce and perceive vowels. I considered a system wherein Aliens (being lizard-like in some respects), have two syringes at the base of their bronchioles that produce tones at different frequencies, the interval between which determining the identity of the vowel. Leonard's response to this idea was "I don't understand any of this, but you're awesome."

I interpreted this lack of enthusiasm as a sign that I might be overthinking things.

Eventually I just decided to go with the flow and accept that Alien languages and human languages are (by some bizarre cosmic coincidence) remarkably similar, owing to the two species' similarities in physiology and cognition. (Arguably, it's this coincidence that makes the novel's story, or at least the strong relationship between Ariel and Tetsuo, even possible. Let's call it the anthropic principle of sci-fi linguistics.) Accepting this fact made designing the rest of the language much easier, since I could rely on tried-and-true human linguistics to do my job.


With this in mind, I was able to make the assumption that the letters used in the transcriptions of Pey Shkoy words found in Constellation Games must represent analogous human language sounds. I tried to come up with the simplest possible phonemic system for Pey Shkoy that could account for everything present in the "corpus"—by which I mean the Pey Shkoy phrases and names that occur in the novel. (If you're wondering why Pey Shkoy doesn't have a bilabial nasal, this is the reason: "m" doesn't occur in any canonical Pey Shkoy words!)

Here's the phonemic system I came up with: Pey Shkoy has five vowels and eighteen consonants. There appears to be a voiced/voiceless distinction with stops and fricatives (p, t, k vs. b, d, g, etc.). Pey Shkoy doesn't have any allophony or morphophonemic processes significant enough to be reflected in orthography. (This is because, intrafictionally, Pey Shkoy is a highly regularized and simplified language used mainly in government documents, education, and commerce, along the lines of Bahasa Indonesia.)

The only really unusual sound in Pey Shkoy is the "dental chafe," represented by the character '. I had originally suggested to Leonard that the language have what human linguists call a "bidental percussive," or the sound of hitting your teeth together. I explained this to Leonard:

Me: the bidental percussive is the sound your mouth makes when you bang your
    teeth together. it's a perfectly valid way of making sound with your mouth,
    but for whatever reason it's not used by any human language. I thought it
    might be a fun addition to pey shkoy for that reason.

Leonard: This is a good idea but it should be modified as Aliens don't have
         teeth. How about a sound for scraping the oral ridges against each

... which was fine with me.


With the questions of physiology and phonology handled, I was ready to design the writing system. The writing system is a syllabary along the lines of katakana, in which every syllabic nucleus has its own symbol and syllabic onsets/codas are indicated with diacritics. The Chospe glyphs you see in the guide are in the "idealized" form you might see in a textbook, or in a typeface designed to ease OCR. The cover of Constellation Games shows what the forms might look like with a bit more typographic imagination.

I had a lot of fun designing the glyphs. The idea was to create something that is plausible as an everyday writing system, but that nevertheless feels a little bit alien and off-kilter. The idea that Chospe letterforms were "burn[ed] into thin sheets of cma" occurred to Leonard after he saw my initial draft of the writing system, and I think it's a pretty cool idea.

Shortly after I finished designing the writing system, Leonard asked me if it had a name, and I suggested "Dr. Nif's Litigation-Free Language Symbols." Leonard tugged on this idea a bit and came up with the (hilarious, and now canonical) idea that the Ip Shkoy used the writing system of a conquered people because no one was willing to pay anyone else's license fees for existing writing systems.


"Register" is the technical term for how language is spoken in specific contexts—for example, "formal" language and "informal" language. Pey Shkoy's register system is unusual in that it only affects the words that speakers use, not the grammar or phonology. In this way, Pey Shkoy's system of gendered registers is more similar to the concept of a mother-in-law language, an elaborate system of taboo words and lexical replacement found most famously in Australian Aboriginal languages like Dyirbal.

My original idea was that Pey Shkoy would have two registers, formal and informal. Leonard liked the idea of registers with distinct lexicons, but suggested that they be based on the more sophisticated gender constraints you see in the final version. This lines up well with the existing facts about Ip Shkoy society. I designed the language in the Dasupey register, and only later came up with translations for the other registers as needed.

(As a side note: "How was your inspection of the sewer system?/It was grate!" is my now my favorite joke ever. Thanks, Tetsuo!)

On prepositions

Tetsuo's explanation of how Pey Shkoy's prepositions work is fine as simplified explanation for the layman, [gee, thanks—LR] but I wanted to go into a bit more detail about the linguistics behind the system. (Experts will forgive me if I get some of the terminology wrong in this section. It's been a long time since undergrad.)

Talking about Pey Shkoy's "prepositions" is a simplified way of getting at the real story, which is that Pey Shkoy doesn't exhibit any systematic relationships, across verbs, between grammatical roles and thematic relations. I've been toying with this idea for a long time, and Pey Shkoy seemed like as good a time as any to try to put it into an actual constructed language.

Relations and roles

So what are thematic relations and grammatical roles? Let's look at the sentence I like cheese. The verb "to like" requires two nouns—the person doing the liking (the experiencer), and the thing that that person likes (the theme). (We might say that "to like" has two semantic "arguments," in the same way that a function in a programming language might have two arguments.) In English, we make the experiencer the grammatical subject of the sentence, and the theme the grammatical object of the sentence: I (subject) like cheese (object). Experiencer and theme are terms for thematic relations; subject and object are the grammatical roles.

Now, not all languages use the same grammatical roles to express these same thematic relations. The Spanish equivalent of the sentence above is Me gusta el queso. When you use the verb gustar, the experiencer is the indirect object of the verb, and the theme is the subject: Me (indirect object) gusta el queso (subject). (Note that even though "queso" follows the verb, it's still grammatically the subject of the sentence---the subject/verb agreement on "gusta" is third person, not first person.)

Usually, languages tend to use the same grammatical role to express verb arguments with similar semantics, across all verbs. For example, in English, agents are usually subjects of verbs, and patients are usually objects (which is why we say I hugged John and I cooked fish, not, e.g., John hugged to me or It cooked me to fish). There's tremendous variation among human languages in how they map thematic relations to grammatical roles. One of the most difficult tasks in learning a language is figuring out the patterns (and exceptions) in these mappings.

If you're feeling particularly Sapir-Whorfian, you might make psychological conclusions about the speakers of a language based on the way that the language maps thematic relations to grammatical roles. Take the two sentences "John despises circus clowns" and "John stabs circus clowns." John's thematic relation to the verbs is very different in these two sentences (an experiencer in the former; an agent in the latter); yet English expresses both relations with the same grammatical role. Does this mean that English speakers are more prone than speakers of other languages to turn their dislikes into violence? That's for the philosophers and pop-sci journalists to determine, I guess.

Lojban and Pey Shkoy compared

Artificial languages take different approaches to the relationship of thematic relation to grammatical role. Lojban, in particular, takes an extreme approach wherein every verb has a number of positional arguments (again, like a function in a programming language), whose meanings you have to learn along with the verb. The Lojban verb tavla (glossed as "talk"), for example, is listed like so in the dictionary:

tavla: x1 talks/speaks to x2 about subject x3 in language x4

The x terms refer to where the corresponding argument is placed in relationship to the verb. The x1 position occurs directly before the verb; the others (x2, x3, etc.) occur after the verb, in order. To illustrate, here's tavla used in a sentence:

Lojban:         mi tavla do la lojban. la gliban.
Word-for-word:  I(x1) talk you(x2) lojban(x3) English(x4)
English:        I talk to you about Lojban in English.

(Here's a better introduction to Lojban positional arguments from this Lojban Textbook on Wikibooks.)

Lojban makes an effort to make the positional arguments correspond more or less with existing expectations about the semantics of the verb. It makes sense for the speaker to be the first positional argument, the interlocutor to be the second position argument, and so forth—since that corresponds, in the estimation of the designers of Lojban at least, to how most humans think.

In Pey Shkoy, however, no effort has been made to align argument order with human social or cognitive expectations. The relationship between the order of the verb's arguments and the meaning of that order is, in fact, always arbitrary. As a quick example, the closest verb to "talk" in Pey Shkoy is chan. Here's the dictionary entry:

_chan_ be the audience, speak on a topic
  ∅: those addressed
  a: the topic of the speech
  be: the speaker

This dictionary entry gives the basic meaning of the verb, along with a description of which semantic role goes with which preposition. Here's an example sentence (Pey Shkoy is verb-initial):

Pey Shkoy:      chan upa a shtay be adam
Word-for-word:  speak I/me prep-a tongue prep-be adam
English:        Adam speaks to me about a tongue.

Another entry in the Pey Shkoy dictionary:

_iaf_ be located at, stand
  ∅: the thing in a place
  ioh: the place

... and in a sentence:

Pey Shkoy:      iaf upa ioh shiw
Word-for-word:  stand I/me prep-ioh cma
English:        I am at a tree (cma).

(Reminder: cma is a Purchtrin word, not a Pey Shkoy word.) As you can see, the roles in the verb chan are nothing like the roles in the verb iaf. (In fact, the verbs use almost entirely different subsets of the five possible prepositions.) It's like this across the board: every verb uses the prepositions in its own unique way.

The aftermath

Whenever I needed to invent a new verb in Pey Shkoy, I looked up similar verbs in the Lojban dictionary, FrameNet (an excellent resource for English verbs and their associated thematic roles), and even poked around Wiktionary to make sure I wasn't getting stuck in an English-centric mindset. Once I figured out what the "arguments" of the verb were, I assigned them to prepositions, either by a chance procedure (rolling dice), or by intuition.

The main effect of this scrambled relationship of grammatical role to thematic relation is that Pey Shkoy—even for me, the guy who made it up—is really difficult to think in. Existing cognitive frames were turned topsy-turvy; sentences never quite fit together in comfortable ways. It's one of the features of Pey Shkoy that makes it feel, well, alien. (Or should I say... Alien.) [[Takes off sunglasses]—LR]

Other grammar notes

A few other quick notes on Pey Shkoy grammar:

Ironically, the part of Pey Shkoy Benefits Humans that took the longest—the translations—takes up the least amount of space in the actual document. I offer here in the commentary a few interlinear translations, showing the underlying grammatical structure of the Pey Shkoy phrases. (Some of these are from the phrasebook, some were intended as book cover copy, and some are from Tetsuo's Twitter feed.)

"Warning: This device will catch on fire if you look at it funny." [A classic example of shveil.—LR]

Pey Shkoy:      siukuy kefef be eshi chawa ioh chkekeshoy
Word-for-word:	happen-warning ignite-NOM prep(be) this device-this prep(ioh)
Literally:      this device's igniting happens (WARNING!)
                  under-the-circumstances-of being unexpectedly-observed

"You look even more beautiful in ultraviolet light."

Pey Shkoy:      siu uineetiukpefkiur ksey uippee shiefiui ioh ufuoo ioh shpape
Word-for-word:  happen attractive-NOM-sexually-looks-surpassing prep(ksey)
                  belong.to.me-NOM-NOM quiet.speech.interloc-NOM prep(ioh)
                  light-NOM prep(ioh) violet-NOM
Literally:      your seeming more sexually attractive happens (when) you
                  (my quiet speech interlocutor) [are] being lit ultraviolet

"You get to keep your blade."

Pey Shkoy:      iten tepeploh a peiuu
Word-for-word:  permit belong.to.you-NOM-continuing prep(a) knife
Literally:      (it) permits the continuing belonging-to-you of the blade

"Eat before using."

Pey Shkoy:      tepep foii a voiee be alauu
Word-for-word:  belonging-to-you.NOM before.NOM x1 eat.NOM x2 use.NOM
Literally:      your beforing eating (this) to using (this)

Back to Leonard

Thanks, Adam. With this, I declare the Constellation Games commentary series complete! I have a little more to say about the series itself, and a couple overall notes on the novel writing process, but that stuff is so self-indulgent I think I'm just going to post it as a separate entry, not as part of this educational series.

Image credits: U.S. War Department, Huw Williams, Chris Sobolowski, Wikimedia Commons user NJGJ, A.E. Shipley, Wikimedia Commons user dozenist, Wikimedia Commons user Robbiemuffin, NASA.

← "Dana no Chousen"

Beautiful Soup 4.1.2: Another small release. The big new feature is the ability to use the class_ keyword argument to search by CSS class. The big bug fix has to do with XML that uses namespaced attribute names. And the big performance improvement comes from cchardet, a Python binding to Mozilla's charset detector that's much faster (but gives slightly different results) than the pure-Python chardet. If you have cchardet installed, UnicodeDammit will use it in preference to chardet.

[Comments] (7) Weak Tea: In the novel I'm working on now, a character brews tea from tea bags that have been around the block more than once. I described the resulting tea as "the color of lemonade". Then I started wondering if that was an accurate description. What does tea look like when you reuse the leaves over and over?

An experiment was carried out in which I brewed the same tea leaves in a pot six times, steeping each pot for five minutes. The results are in the photo-montage below:

The "C" glass is the control glass, which contains water (i.e. zeroth-generation tea). I stopped the experiment after steep #6, because glasses #5 and #6 came out the same color, and because I was out of transparent glassware.

Conclusion: I don't think "lemonade" is accurate; I'll probably go with "apple juice" or "piss".

PS: I drank only the first pot of tea.

Movie Consensus: Since Sumana bought us a membership to the Museum of the Moving Image we've been going to see a lot of old movies, movies we hadn't seen before, movies that although critically acclaimed are generally not ones I'd have made a special trip and paid money to see.

I haven't been posting detailed reviews of my experiences, but at this point I think I've seen enough films at the museum to try and map out my views on classic film in general, with a special focus on where my opinion differs from the critical consensus.

I'm really interested in figuring out why I hated Vertigo and thought The Searchers and Taxi Driver were boring, given how celebrated those movies are, and given that I like other films that are superficially similar. I don't have any hypotheses to go on, but maybe you and I can compare notes?

Also, Roger Ebert didn't get Brazil but loves, absolutely loves Dark City. How does that even hapen? I like Dark City too, but before seeing Dark City I was required to take a special test to prove I understood Brazil.

[Comments] (2) Breaking Character: You probably know by now that I'm writing another novel. (Current word count: 33k.) I wrote Constellation Games almost entirely in secret, but after I sold it I got a lot more open about the revision process. For this one I want to talk about the writing process (since that's a big part of what's in my head right now) but I don't want to just blab about all my fabulous ideas and how great this book is gonna be. My plan is to strike a balance with occasional posts as I discover new things about craft. Today: stock characters.

The new novel covers a lot more ground than Constellation Games, and because there's a whole lot of people who only show up in one scene I'm making much heavier use of stock characters. I never paid much attention to stock characters because... you're not supposed to. They move the plot forward and they go away. You're not even supposed to have them in short stories, because word count is so precious. But now that I'm writing a lot of them I've discovered something interesting. With one line of dialogue you can break the stock-ness of a stock character, in a way that serves a larger story purpose.

An example of a stock character in Constellation Games: the goldbricking rules lawyer running the BEA counter in chapter 18. What a jerk. But imagine if during his one scene, he had had one line of dialogue expressing curiosity about what Curic is like. This guy works for the BEA, his whole job is passing messages between humans and ETs, but he's never talked to an ET himself and never will. He's still a jerk, but now he's a sympathetic jerk, like Ariel.

I didn't do this because a) I didn't think of it, and b) I accomplished that story purpose earlier, when Krakowski bitches about not having the same clearance to visit Ring City as the people it's his job to monitor. But one line of dialogue could have turned the stock character into something more closely resembling a real person.

In the new novel I needed a scene with one of those stuffy Starfleet admirals who are always chewing out Captain Picard in ST:TNG. So I wrote this stock character and he started chewing out one of the main characters, but then something odd happened:

Stuffy admiral: Why didn't you do [plot-specific detail]?

Main character: [Plot-specific explanation.] It would have been suicide, sir.

Stuffy admiral: Our analysis agrees with you. But you're discounting a long service tradition of glorious suicide.

I was not expecting to write that, but I like it. This guy still has a stick up his ass, but now he also has a sense of irony and he's willing to let it show. It's not something you'd get in ST:TNG, but I could imagine Admiral Kirk saying that to, say, a Captain Chekhov. With that line, not only does the admiral stop being a total stock character, but his willingness to talk that way to his subordinate says something about their relationship. A conversation that might have only advanced the plot now also develops one of the main characters.

This is the first draft, so there's no guarantee that line or that scene will make it into the completed novel, but now that I've seen how that works I'm trying to do something similar with all the one-shot stock characters. Maybe I'll overdo it, who knows. I'll also be looking to see if/how other writers do this.

I think this technique might only work in a comedy. Even when the stock-breaking bit isn't a joke, it's a surprise that works like a joke. It gives you that wait a minute... feeling.

Maloideae: the game of strained but learned analogies: I've been sitting on this for a while and figured I'd package it up for you. Maloideae is my latest free print-and-play card game, the follow-up to my earlier remix, Crazy the Scorpion. Maloideae is basically a parody of Apples to Apples, but if you give it a shot I think you'll find it has its own vibe and is a lot of fun.

[Comments] (12) Ticket to Grief: Ticket to Ride comes with 30 destination cards. You can start out with three, and on your turn, you're allowed to draw three new cards and keep them all. This means you can very rapidly take almost all the destination cards for yourself. You would get a very large negative score, but prevent the other players from getting a good score or having anything to do in the endgame.

Once the deck of destination cards runs out, you could start drawing two train cards from the deck every turn, and keeping them permanently. There's no hand limit.

If you're bored with Ticket to Ride, this is a great way to ensure you're never invited to play it again.

: Third board game post in a row. It's much easier to teach Cosmic Encounter if you pick out ten aliens ahead of time, separate out their flare cards, and hand out two alien cards to everyone. Instead of handing everyone two flare cards and making them look through the pile for the corresponding alien cards.

Maker Faire Roundup: I meant to do one of these last year but the news hook slipped away. Not this year! Check out some of the cool stuff I saw at Maker Faire. Some of it is stuff you can buy, but most is above your crass commercialism:

@everybrendan: As I recall, Brendan was sitting in my living room and he said "I want to do something that lets people change my Twitter name, but I don't want another @ReaIBrendan fiasco. Oh, how I regret the catastrophe that was @ReaIBrendan." That may not be exactly what he said--I don't think he pronounced the at-signs. Anyway, I said "To limit the possibilities for mischief, you should let people change your name to any anagram of your name." Instead of that sensible idea, he did this.

Here's my revenge: @everybrendan. Inspired by Adam Parrish's @everyword, I've crawled the English canon looking for one- and two-word combinations that meet Brendan's naming criteria. I've eliminated duplicates and also ones that are just kind of samey. For variety's sake I only crawled one book for each author, excepting Charles Dickens and Jane Austen, who have three or four each. Also excepting James Joyce, literature's greatest source of Brendan names ("brandylogged rudeman").

@everybrendan posts one name every half-hour. One-word names like the upcoming "brokenhanded" are sent @BrendanAdkins, so they'll actually become Brendan's Twitter name for a while. Should Brendan displease me for any reason, I will change the bot so that all names are sent @BrendanAdkins. There are currently about 2600 names in the queue. This will take us to the end of November, by which point we'll all be sick of this anyway.

Magazine P Earthrise: Several months ago, while looking through Great Images in NASA site for my #retrorocket project I found something very striking: a series of images taken by Michael Collins from lunar orbit at roughly even intervals during Apollo 11. A series that showed, among other things, an Earthrise. A series that could be turned into a movie...

The GRIN metadata on this series is really bad, and GRIN didn't have all the frames since I guess some were less Great than others. Fortunately, each photo taken by an Apollo crew has a unique ID and they've all been put online. Most of them are on the Internet Archive, but NASA's history department has them all, including the shots that didn't turn out. ("Completely dark frame.") The photos I saw are from Magazine P, and once I knew that, I discovered that someone else had created a video of the same photos and put it on Youtube a month ago.

There went any hope that I might be the first person to see this movie since Michael Collins saw it live, but oh well. There's still work to be done: that video goes by way too fast IMO, and since the images haven't been rotated the way the GRIN images were, the Earthrise isn't as striking to human eyes. So I downloaded the pictures and used PIL and mencoder to make my own movie. Here it is on the Internet Archive.

My animation uses frames AS11-41-5971 through AS11-41-6135. It goes into slow motion for a bit when Earth shows up, since Collins took extra shots right when the Earthrise started. (I fooled around with changing the frame durations around that point, but ultimately decided to leave it alone.) To the right you can see a smaller animated GIF of the Earthrise, but in the full video that's just the most spectacular moment among a series of navigational swerves which end with the Command Module disappearing into the lunar terminator.

Bonus: here's a second, shorter video I made from most of the rest of Magazine P: AS11-41-6109 to AS11-41-6135, the "orbital lunar horizon sequence west of Mare Tranquillitatis." Gets up close to some mountains.

GOTV Promo: A week from today, November 5, I've got a story going up on Strange Horizons, a genre-savvy space opera called "Four Kinds of Cargo." A week from tomorrow, November 6, is Election Day in the US, and because I like it when people vote in elections, I'm going to run a little promo for my story.

By the end of the day on the 6th, send me a picture of your "I Voted" sticker or equivalent, and on Wednesday morning I'll send you exclusive bonus content. Specifically, I'll send you the first chapter of my novel in progress. This is a direct sequel to "Four Kinds of Cargo" which picks up the action about twelve hours after the end of the story. So if you like "Cargo" on Monday, send in your proof of franchise on Tuesday and you'll get a little more of the story. You'll be getting a first draft, so if and when the novel is published, you'll be able to compare the published text against what I sent you, and see all the changes I had to make.

But wait! You say. What about all the people implicitly omitted from this promo? Those who are too young or otherwise ineligible to vote, those who vote early, those who are... I don't think there's any nicer way to put this... un-American? ["foreigners"? -ed.] Oh yeah, that's the word.

I'm announcing this promo a week early so that if you vote early or send an absentee ballot you can still get in on the promo. But if you can't vote in the upcoming election at all, you can also get the bonus material by engaging in any display of patriotism (as recognized by your native country) and sending me a picture. I realize how embarrassing displays of patriotism are for non-Americans, but them's the rules.

Email your stuff to leonardr@segfault.org. (It needs to be email because I'm going to email you the chapter, and I need a return address.) I will not be using your pictures or your email address for anything except verifying your eligibility and sending you the chapter. The only reason I'm doing this via email is to avoid concerns about having "previously published" this work once I finish it and try to sell it.

: And another social-good deal: for the rest of October, Sumana and I are matching donations to the Ada Initiative, up to $10,000. Here's how to donate.

"Four Kinds of Cargo": My story is published! Enjoy, and don't forget the election promo.

[Comments] (1) GOTV!: Here it is! Election Day; the holiday where everyone has to work; America's annual celebration of trying to combine ancient parts that don't fit together and may have been deliberately sabotaged into a machine that gives a coherent result. Among other things, that means today is the day of my long-foretold "Four Kinds of Cargo" get-out-the-vote promo.

Send me evidence that you voted today (or earlier than today), and I'll send you the first chapter of Situation Normal, my novel in progress. Situation Normal is a direct sequel to "Four Kinds of Cargo". It tells the story of the third and possibly final war between the Fist of Joy and the Terran Extension, with the binational crew of Sour Candy caught in the middle. If you want a taste of what's to come, this is your chance.

My email address is leonardr@segfault.org. I will accept any kind of evidence that you voted, including blind assertion, but it's on your conscience, mate. See original announcement for more fine print, and see you at the polls!

Update: Steve Minutillo pointed out that this contest violates federal law, so I need to amend the rules a little bit. You can also get the preview chapter by sending me email in which you deny having voted. This also makes things easier for non-Americans and people who refuse to vote on principle. (37% of the population stands with you!)

[Comments] (3) The Silver Eggheads: I read this 1961 Fritz Leiber novel and... I dunno. There's a lot of interesting stuff in this book, but also a lot of crap, and some of the interesting stuff is only interesting by accident.

It starts out so well! Actually my copy starts out pretty poorly, with this self-congratulatory blurb which I'm mainly quoting so I don't have to summarize the plot:

It is a very lucky thing Fritz Leiber decided to be a writer and not a surgeon. Somewhere in his background, though, there must lurk a frustrated medico, for he writes, as it were, with a scalpel... His target this time is the whole world of the literari—writers, publishers, reviewers and the great reading public—a rich field of self-flatterers, phony intellectuals and soft-headed businessmen to which Mr. Leiber does full justice. But because he writes with infinite glee, he is not vicious: he doesn't hate the world or the people in it. He simply has fiendish fun in cutting through to expose the frenzied, tangled, Heath Robinson structure beneath the complacent surface.

Hey, baby, you must be a frustrated medico, for you write, as it were, with a scalpel. (Also, Heath Robinson ~= Rube Goldberg.)

"Reviewers" get off pretty light in The Silver Eggheads; I don't think any reviewers even show up. But we got writers! A militant union of writers who in the opening chapters go on strike and destroy the wordmills, 1960s room-sized computers that act as their coauthors and creative enablers. In the destruction of the wordmills Leiber gives us some honest-to-goodness infernokrusher:


Fritz Ashton Eddison loosed a cloud of radioactive bats inside a Fiction House Fantasizer (really a rebuilt Dutton Dreamer with Fingertip Credibility Control).

Edgar Allen Bloch, brandishing an electric cane fearfully powered by portable isotopic batteries, all by himself shorted out forever a whole floorful of assorted cutters, padders, polishers, tighteners, juicers, and hesids-shesids.

Conan Haggard de Camp rammed a Gold Medal Cloak-'n-Sworder with a spike-nosed five-ton truck.


Infernokrusher fans will also enjoy this monologue later on in the book:

But I did spot a federal investigator named Winston P. Mears just outside. I got to know Mears while he was investigating me on charges—nothing was ever proved—of designing atomic-powered giant robots (an inevitable technologic development that still seems to terrify most humans).

It's a really funny book. And man, the robots. There's a government robot programmed for censorship. It's only fair to let you know that I'm gonna flat-out steal that idea, and when you see it you'll know this is where I got it. There's a robot who writes science fiction for other robots. We get to see a bit of his work: this is from the steamy "cranking scene":

Clinch, clinch, clinch went the bost working pinchers, firming the cable to the streamlined silfish burden. Squinch, squinch, squinch went to [sic] the winch as Dr. Tungsten turned it. A feelingful flood rilled the grills of his brunch frame. 'Happy landings,' he gusted softly, 'happy landings, my golden darling.' Seven seconds and thirty-five revolutions later, a shock of delicious violence trilled his plastron. He almost let go the winch crank. He turned crinkily...

Apparently that stuff really does it for robots. (We also see some terrible human-written science fiction from the infrafictional slush pile.) And here's where things start falling apart/being interesting only by accident.

The robots in The Silver Eggheads are humanoid and have gender, but they're not human genders! Some robots are "brunch", aka "robost" (whence "bost working pinchers"), and other robots are "silf", aka "ixy" (whence "silfish burden"). I spent half the book wondering what was the deal with these genders and why they didn't use human genders. It's pretty clear that "brunch" is male and "silf" is female. It's clear by the use of pronouns, and from the silf censorship robot, who says "I have a lot more in common with beings of my own sex, whatever material they're made of, than I do with babbling robots or brunch men." But why not just use "male" and "female"? WHAT WAS GOING ON?

What was going on was, I was overthinking it. There's no difference. Halfway through the book, in an infodump that spans two chapters, we learn that the robots copied human genders. Robots don't use the terms "male" and "female" because robot gender is a social construct. Unlike human gender, you see.

[I]t's become traditional for a robot—a brunch robot, I mean now—to have conections that are all of the pattern you humans call male, or plug-ins, while a robix has only female connections, or sockets.

Yeah, whatever, Fritz Leiber. You had your chance to create entirely new genders for robots and you blew it. Not surprising, given your 1960s Playboy sexism that is quaint enough in the first part of the book but which takes over the storyline around the time of the two-chapter infodump and turns The Silver Eggheads into wacky "battle of the sexes" crap and jokes about breasts. Also, there's no evidence that you ever wanted to be a surgeon.

So, as I said earlier, I dunno. The Silver Eggheads: an infuriating mix of hilarity, insights into creativity and generative fiction, and crap.

Constellation Games Bonus Stories Now CC-Licensed: A few months ago when the Constellation Games serialization ended, some of the subscribers got four short stories along with their compiled ebooks; stories set before, during, and after the novel. The long-term fate of those stories was unclear. My publisher and I wanted to keep them scarce for a while to reward the loyalty of high-tier subscribers, but writing and editing these stories was a lot of work, so we wanted to make them available to the general CG-reading public. Possibly in exchange for money.

But it turns out there's not much money in nickel-and-diming you (specifically, there's about $0.15), so we've agreed to make all four stories available under the CC-BY-SA Creative Commons license. That's about seventeen thousand words of free fiction: the post-scarcity family drama of "The Time Somn Died", the foul-mouthed artistic angst of "Found Objects", the headshot violence of "Dana no Chousen", and the bubble-pipe erudition of "Pey Shkoy Benefits Humans".

The catch is that the stories contain spoilers for Constellation Games, and won't really make sense unless you read the novel first. And the novel still costs $5. At least, that's the pro forma warning I feel like I need to give you. But I remember when I was a kid and I discovered that the Arvin Public Library had the third book of the Hitchhiker's Guide trilogy but not the first two. I had no idea what was going on, who these characters were or why they were stranded in caveman times, but I devoured Life, the Universe, and Everything, reading it multiple times, and the lack of knowledge as to what was going on just made me determined to get a ride to the library in Bakersfield where I could check out the books that would explain it.

So... go ahead and read the stories first, if that's your thing. I think they might pique your curiosity. And remember that you can also read the first two chapters of Constellation Games online.

PS: if you order Constellation Games from the publisher you'll now get PDF copies of the bonus stories along with the ebook.

[Comments] (1) End-of-Year Film Roundup: I was gonna wait til the end of the month for this but I have seen so many great movies recently that I want to tell you about them now.

This is a combination of movies I watched at the Museum of the Moving Image, usually with Sumana, and Criterion Collection movies, hurriedly purchased during the recent half-price sale, which we watched at home. I've put them roughly in reverse chronological order of when we watched them. Sumana also put up some short reviews recently. Don't want to read this huge post? Read Sumana's entry instead!

Incidentally, I love the name "Criterion Collection." "We only select movies that meet... a criterion!" It's like the "Un Certain Regard" award they give out at Cannes. I imagine a French person shrugging and going "eeeeeeeh..."

Update: Gonna post the rest of the movies I see this year here, again in reverse chronological order.

Notes On (My) Fiction: Yesterday I finished a draft of a second story in the universe of "Let Us Now Praise Awesome Dinosaurs" (working title: "Grand Theft Carnosaur"). It needs some work, but that's what writing group is for. I'm cautiously optimistic. While working on the story I got a concept for a third story in that universe, so maybe I can make it a trilogy. No, a cycle! A motor-cycle.

My actual point here is that while working on "Carnosaur" I discovered a Tumblr full of fan art for "Let Us Now Praise Awesome Dinosaurs", done for a school project! Most of the story is illustrated: the gun store, the motocross race, the news interview, Cass's accident, the capture, talking with the lawyer and going back to Mars. A "cover" was promised but never posted.

"Dinosaurs" got a lot of links when it was published, but no actual reviews, so I was surprised to find two reviews of "Four Kinds of Cargo". First, from Locus: "A lot of silliness and absurdity that ends surprisingly on a heartwarming note." You could review almost any piece of my fiction as "A lot of silliness and absurdity that ends surprisingly on a ________ note."

Tangent's review is longer, more reserved but overall positive:

“Four Kinds of Cargo” is a science fiction story about science fiction characters basing their lives around a science fiction story and its characters. It’s metafiction in a neat, innocuous disguise... Its major drawback is an unavoidable one – the prose simply isn’t very good. But to succeed as the kind of multi-referential system it sets out to be, I don’t think this story could have been written in any other way. The cleverness of the premise and the recognition of what’s been pulled off both explain (if not demand) and make up for the lacklustre prose. This one made me want to grimace as I started reading it; by the end I wanted to applaud.

I'll take it.

"Let Us Now Praise Awesome Dinosaurs" - Illustrated!: It seems like only a week and a half ago, I told you about my discovery of "Awesome Dinosaurs" fan art. Well, now it turns out the artist, Lisa Imas, turned the story into a (one-off) printed book!

Lisa sent me some pictures once she was done, and I got permission to host a PDF of the book on the "Awesome Dinosaurs" story page, under the same BY-NC-SA license as the story itself. Check it out--the story is now fully illustrated.

Artist's commentary:

The cover displays the tragedy inherent in how any time we put someone or something on a pedestal we are only yadda yadda it’s dinosaurs on motorcycles, okay.

I especially like this understated piece:

More news of my writing coming soon!

[Comments] (3) Year's Best: "Four Kinds of Cargo" will be appearing in the 2013 edition of Prime Books's "The Year’s Best Science Fiction & Fantasy". That's me in the same book as Elizabeth Bear, Ursula K. LeGuin, Kelly Link, Robert Charles Wilson, and other luminaries.

Strange Horizons Reviews "Constellation Games": I've been nervous about this review all week, but it's very positive:

Constellation Games is a very funny book, with an effective sweep into pathos that delivers a powerful message... Like the Ignobel awards, Constellation Games makes you laugh, and then it makes you think.

Definitely the first review to call the naming of the Constellation species "an effective piece of othering".

[Comments] (6) RESTful Web APIs: I guess it's time to announce my next book project. Mike Amundsen and I are working on a book for O'Reilly called RESTful Web APIs, a follow-up to 2007's RESTful Web Services. Our deadline is the end of March 2013, and the book should come out a few months later. (Here's Mike's announcement of the project.)

Here's my announcement of RESTful Web Services from about six years ago. You can see how far we've come since then.

In 2008 I came up with the now-famous "maturity heuristic" (aka the "RMM") for quickly judging the quality of an API. If you go back and look at RWS through the lens of the maturity heuristic, you'll see that it spends a lot of time trying to get the reader to grasp the concepts behind Level 1 services: that URLs identify resources, and that resources are the proper targets of HTTP requests. That's because back then, Level 1 was about the best you could expect from a "REST" design.

RWS spends a whole chapter treating Amazon S3 as though it were a great example of RESTful design, because in RMM terms it made it all the way to... Level 2. RWS spends another chapter arguing for the legitimacy of REST against a thriving part of the industry that's content at Level 0.

We don't live in that world anymore. I'd say the modal RMM level of a new "REST" API today is 2. Most of the 2007-era arguments have been rendered irrelevant (SOAP vs. REST, the usefulness of PUT) or been given generally accepted best practices (URL formats). Restful Web Services was the first book-length treatment of REST; there are now over ten books on REST from O'Reilly alone. There are lots of development tools that make it really easy to crank out a Level 2 service.

In short, a lot of gravel- and rock-sized problems have been excavated, revealing two boulder-sized problems. I mentioned these two problems in my QCon talk "How to Follow Instructions" (available as video in hour-long version and in a half-hour condensed version presented at RESTFest; see also my QCon slide deck and speaker notes). Now I'll state them explicitly as the two major problems I want to address with RESTful Web APIs.

Duplication of effort

Here's an article from May on Programmable Web, a great site that tracks the world of public APIs: "53 Microblogging APIs: Twitter, TwitPic and What The Trend". Fifty-three was really the number of organizations publishing microblogging APIs, and some of them are utility APIs rather than "microblogging APIs" per se, but after doing some spot checks I do believe there were approximately fifty-three distinct APIs.

Should there really be fifty-three distinct APIs in this field? What if there were, like, five? We're not talking about something complicated, like insurance policies or regulatory compliance. We're talking about posting a little bit of text to a user account. Can we at least get down to ten?

No, apparently not. Like I said, that number was from May. There are now fifty-seven microblogging APIs. Well, damn. What if we got together and hammered out a standard, interoperable microblogging API? Sounds great, except nobody's interested. Evan Prodromou tried that with OStatus, and nothing came of it. You could use AtomPub as a microblogging API, pretty much unmodified, but nobody seems to want to.

The original RESTful Web Services sets out a design procedure for taking your problem domain and turning it into an API. But there's a big problem with this procedure: it doesn't consider the possibility that fifty-six other people may have already done the work for you.

Back in 2007, that possibility was remote. There was one microblogging API. I had to scrape the barrel pretty thin to find enough quasi-RESTful example APIs to fill Appendix A. Now the big problem is too many APIs. When you design the fifty-eighth microblogging API you're limiting your audience and wasting your users' time.

This is a really huge problem and we won't solve it with a book. But we can point out that it's a problem and take the first step towards mitigation. In RESTful Web APIs we present a new design procedure that focuses on reusing existing designs, coming up with new stuff to fill any gaps, and then publishing the new stuff for the benefit of a) your users and b) API developers who come after you.


Whatever influence RESTful Web Services has had, it stops dead at RMM level 3, the hypermedia level. In 2012, the modal new "REST" API is at level 2. It has been level 2 for a while, and will continue to be level 2 unless something changes. Most architectures don't support hypermedia very well (or at all), and a lot of developers still don't understand it.

That's understandable. To the programmer brain, hypermedia is weird. When you read RWS it's possible to just skip the parts about hypermedia, and I get the feeling a lot of people did. There's stuff in RWS that is now outdated, and stuff that was useful for dealing with 2007's problems but that I now consider just plain wrong. Most of that stuff has to do with hypermedia.

RESTful Web APIs is tightly focused on hypermedia--you will not be able to skip the "hypermedia parts"--and it deals with 2013's problems. Some specific shortcomings of RWS we'll address:

  1. We as developers have a strong desire to export our server-side object models as APIs. This is the idea behind JAX-RS. It's the idea behind lazr.restful, the framework I developed to make the Launchpad web service. But it's also the idea behind SOAP, and it's how we got fifty-seven microblogging APIs.

    This desire isn't technically at odds with the use of hypermedia, but it does tend to use hypermedia only to describe safe state transitions (i.e. to link resources together), and RWS didn't really go further than that.

  2. In 2007 there were no hypermedia formats based on JSON, but JSON-based representations were becoming overwhelmingly popular. RWS does not offer advice for this scenario. Developers either made up their own one-off hypermedia formats (as I did with the Launchpad web service), or, more commonly, ignored the hypermedia constraint. Today JSON has a number of general-purpose hypermedia formats (like Siren, Collection+JSON, and HAL), and we'll cover them in RWA.
  3. In RWS I was very dogmatic about avoiding overloaded POST. I felt strongly about this because I really needed to yank people out of the SOAP-RPC mindset. But I've come to accept that overloaded POST exists for a reason: to convey state transitions that don't map naturally onto one of the other HTTP methods.

    These state transitions are legitimate if they are described by hypermedia controls, as they are on the Web. They're not just hacks to get around the fact that HTML can't describe PUT and DELETE methods. Prohibiting overloaded POST in the name of the uniform interface forces designers into complicated workarounds to minimize the difference between their application semantics and the protocol semantics of GET/PUT/POST/DELETE. Those workarounds usually reflect the object model the designers already defined for their CRUD databases. Or, the designers give up, use overloaded POST without using hypermedia to describe the state transitions, and feel guilty about it.

    Besides which, forbidding overloaded POST means that you can't use HTML, the world's most popular hypermedia format. That's a big problem.

The title

As I said, this is a brand new book, not a second edition of RESTful Web Services. The only major things we're reusing are the appendices dealing with HTTP headers and response codes. To signify the handoff, we're changing the name.

RESTful Web Services was a great name in 2007, but it's not so good now. See, when SOAP went down, it took the term "Web Service" with it. "Web Service" is now an enterprise software term. Everywhere else it's all "API API API".

As I mentioned last year, this is backwards. The SOAP approach is to make a remote service look like a local library. (This idea is not limited to SOAP, of course.) Whereas the RESTful believe that a remote service should look like the Web. (Whatever that means.)

But I'm not gonna re-litigate that argument. "Web Service" is dead, we're stuck with "API", and the name of the book needs to change. "RESTful Web APIs" is a direct translation of "RESTful Web Services" into 2013-speak. It keeps continuity with the old book, but it's a new title for a new book.


If you want to be a beta reader, let me know (via comment or email to leonardr@segfault.org). I'll get in touch with you around the end of March, or possibly earlier. Update: We've got a lot of beta readers and we're no longer accepting applications.

Once in a while I add a section to a chapter called "The Hypermedia Zoo", which takes a not-too-detailed look at a lot of hypermedia-aware data formats to demonstrate their diversity. I'm always on a low-level search for more hypermedia formats, and if you name your favorites in the comments I'll take a look. Don't worry about duplicating my list; I also want to see what springs to mind when you think "hypermedia format".

There's also a shorter section called "The Semantic Zoo" which talks about interesting domain-specific data standards. I'm mostly interested in reusable profiles (the IANA registry of link relations, microformats, schema.org microdata, Dublin Core), but I'm also interested in pointers to standalone data formats like Activity Streams. There's a whole lot of stuff out there and I'm not confident that I've seen even half of it.

[Comments] (2) new robotfindskitten!: It's a big day for announcements. There's a new "Mayan Apocalypse" version of robotfindskitten, due largely to to the work of new dev team member Eric S. Raymond.

My major contribution to the release was editorial. I consolidated the list of NKIs with lists produced for other ports (notably Dave Griffith's Frotz port). I removed some stupid fifteen-year-old jokes, and added new stupid jokes. The end result is that this version of rfk ships with 701 high-quality NKIs, versus about 400 NKIs of wildly varying quality.



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