Seattle, Generative Nerd Mecca

Seattle’s a geek-permissive town in general, but lately I’ve learned more about the actual shape of that – we’re a city that exports quite a lot of new ideas and content, plenty of it very geeky.

  • So crazy many indie game companies flourish here
  • Huge names, too: WOTC, Nintendo, Privateer Press, Bungie are set up here
  • Several larps were birthed here back in the 1980s!
  • 1% of the year, my neighborhood is not much more than PAXville.
There are bigger cities for media (LA), finance (NYC), and yeah, even software (San Francisco), but I assert that Seattle is the geek culture capital of the world. Hoist your freak flag high.

Adding content

So, I’ve got megabytes and megabytes of just, stuff – code, writing, content – stuff I want to have archived here. But there’s a lot going on these days, so I’m going to add it piecemeal and update here. If there’s two things I shoot for it’s moderation and consistency…

Yeah, that’s the ticket.


Well, switching from handrolled php to WordPress is a huge load off. It’s like moving from Reisterstown, MD to Seattle, WA – things will begin to make more sense.

…Aaaand we’re back.

Here’s a really clever scam idea: offer compensation to scam victims! Appeal directly to confirmed rubes.


This is to bring to your notice that our bank (ECOBANK INTL. PLC) is
delegated by the ECOWAS/UNITED NATIONS in Central Bank to pay victims
of scam $500,000 (Five Hundred Thousand Dollars Only).

You are to send the following informations for remittance.
Your Name.___________________________
Mobile Phone .___________________________
Amount Defrauded.___________________________

Send a copy of your response with the PAYMENT CODE

ECB/06654 $500,000 USD.
TEL :+2348058548116

Yours Faithfully,
Mrs.Henderson Elizabeth

Abrupt Goodbye

Collaborative story telling

Abrupt Goodbye is a collaborative chatting game released by an indie game studio. The whole thing is browser based and all of the content is user generated. I think that it’s possibly a first foray into a entirely new type of game.

The premise is supplied: A blind man is waiting for a train, a woman approaches him and talks.

Abrupt Goodbye is cool for a number of reasons:

– It is infinitely replayable – each completed game extends the content of the game a little bit, so the next game is longer and more varied.

– It’s totally asynchronous, but puts two ‘sides’ against each other. Each side is several players working together without communicating.

– The system is set up to be self-improving – as you choose your conversational options, you vote for the most interesting ones. So there’s a constant positive reform going on there.

You can crowdsource communication the wrong way, (as with some blog comments), or you can do something really great with it, like Abrupt Goodbye. Go play, it rules.

More OSS Volunteerism

Open source software isn’t second-class volunteering. In terms of effectiveness per time spent on it, it’s astoundingly helpful.

Because code is replicable and useful, it helps a lot of people. Giving away closed source software would be one thing, but open source code is reusable by other projects, viewable by people learning how to code, and fundamentally supported by the community. Writing software is also potentially research: solving problems in new ways is one of the ways the state of software advances. There’s no limit to the number of people you’re helping: the developers of Apache webserver deserve thanks whenever a page on the internet is served. (To anyone who thinks OSS puts coders out of a job, think of all the jobs the Apache foundation has created.)

Because coding, project management, UI design, QA testing, and all the other skill that go into successful open source projects take years to learn, the volunteer hours put into those activities are a scarce and extremely valuable resource. Suppose your friend, a lawyer, was looking for a way to volunteer four hours a week. Your friend can’t decide whether it would be more helpful to bake rolls at a food kitchen or give pro bono legal advice to DV sufferers. Or maybe your teacher friend can’t decide whether to teach ESL or do laundry for a church. Sure, your friends might enjoy both gigs, and they’re all nice causes, but your friends have the opportunity to contribute skills which are much more scarce, and you’d probably recommend they do that.

That’s why if you have skills or money to contribute to an open source project, you should act without hesitation: it’s an unselfish endeavor that makes a big difference to a lot of people, and it’s a great way to volunteer. It helps a lot of people in a real way.

And it definitely, definitely counts as volunteering.

OSS Volunteerism

Most of the time, volunteering occurs in an institutional way for a specific cause. People volunteer in a lot of different ways – for example, along class boundaries there’s an interesting difference: People of lower social classes tend to donate time, effort, and money to religious causes, and to those who live below the poverty line. The higher classes tend to donate to and volunteer for causes that perpetuate their way of life – schools, colleges, art galleries, medical organizations. In addition to donating a larger percentage of their income on average, people of lower class tend to volunteer more of their time. That’s interesting.

People who donate their time and effort to open source software projects don’t always look at it as volunteerism. It’s less institutional, it’s not usually through a church or school, and an open source developer is unlikely to be sent an appreciation card or invited to a brunch for their efforts. Because software lives behind the computer, it’s difficult to see how much work goes into it, and because it generally spreads on the internet it’s difficult to thank an open source developer in person.

Few open source projects interact in person with their users. This is a distinction AmeriCorps calls ‘indirect service’. It’s not seen as more noble per se, but it is considered important and some programs demand a certain amount of it. It really does seem like a purer form of volunteerism to interact directly with a population than to serve by handling paperwork or answering phones or doing data entry.

It’s definitely still volunteering.

Chat With Turk, Outline

How ChatWithTurk used to work:

  1. A user says a phrase A to Turk
  2. Turk remembers phrase A for later.
  3. Turk thinks of some ‘similar’ things that Turk has previously said that resemble A. (These are potential phrases B)
  4. For each of B, Turk checks to see what responses he has received when Turk said those. Turk picks one of these. This is phrase C. (If Turk has no good historic B phrases, he uses an untried one, something he’s heard but never said, which is his phrase C.)
  5. Turk responds with phrase C, which hopefully shares some context with phrase A, or maybe is a wild guess.

Right off the bat we have a system that has a lot of inherent randomness, even though it doesn’t have any entropy – the page just collects user input and regurgitates it according to the above. It does get tuned with use, insofar as the list of phrases (and appropriate human given responses) grows over time. Of course, Turk doesn’t track context at all, and doesn’t even differentiate from the conversation to conversation on his own. From close up, it’s very naive.

However, it works as sort of a conversational echo chamber – the user dictates the course of the conversation, whether they are greeting the Turk (he often returns the greeting), insulting him (he usually responds in kind to profanity), or asking questions about the nature of the page. He often accuses the user of being a bad chatbot.

At best, the conversations generated by a mature Turk system more closely resemble the ones found in the front cover of an old yearbook than a live conversation, and that makes sense. Since doing this experiment, I’ve let it go, but email me for free source code.

You should chat with a Turk

There’s a little Internetology experiment I’d like to share with you. What if I paired up a random person on the Internet for a conversation? Actually, that’s been done before.

What if I paired you up with a random person, but told you that it was a chatbot? Finally, what if that chatbot was non-stateful and just replied the best it could to everything you said to it? Would that the result of that be interesting or just confusing?

(Coarse language warning: Like I said, this is an experiment in chatting with strangers on the Internet…)

Try Chat with A Turk. Go ahead, I’ll post the results and an overview of the algorithm here soon.