Legend of the Greasepole gets the Silverlight 4 + Analytics treatment

Legend of the Greasepole Title Screen

Legend of the Greasepole has been ported to Silverlight 4 and reincarnated on http://greasepole.net.

Greasepole is the long-suffering game about multimedia tribute to the inexplicable Engineering traditions at Queen’s University in Canada. Over 50 students contributed to the project back in the day.

There’s a significant AI component to Greasepole – the autonomous “frosh” characters have models for learning and communicating with one another.

A couple of years ago I ported it from C++ to C# and XNA. I abstracted out a series of services (graphics, sound, input, timer, persistence) so that it might ultimately be ported again to a platform like, say, Silverlight or something. Why? I don’t know, maybe I’m a little obsessed with the illusion of preservation.

The Silverlight 2 version was a bit shaky. Silverlight 4’s hardware acceleration and bitmap caching make it pretty solid. It is also awesome to hear from friends that it apparently works on the Mac.

Analyze These… Shenanigans

I also added a little analytics. Although it should probably be said that the Greasepole event largely defies analysis, the game itself does not, and so this is the first time I can let someone poke their head in and see how the froshies are doing all around the world.

Back in the day, the worldwide best time was in excess of a mere 53 minutes. But I had to learn that by way of Sean Murray (class of ’05; wonder where he is now) sending me a screenshot. Now the interwebs will tell us immediately. (Admittedly, it’s not a fair fight against Sean, because the frosh are now permanently in “keener” mode, and the Options screen has been replaced by a dozen trendy Achievements for you to “unlock”).

So get going stalling those frosh, and my question for you is – what statistics would you like to see?

“Number of pints Al ‘Pop Boy’ Burchell has quaffed?”

“Number of hippos fed”?

“Height of human pyramid vs time”?

I am going to enjoy cooking up visualizations for some of those.

(Coding notes: A few new VS2010 things helped with this update: Web.config transformation (rocks), improvements to Web Publish functionality, XAML designer, Entity Framework experience… and more.)

Play Legend of the Greasepole Online Edition.


I finally watched a Roomba dance its funky dance.

The iRobot Roomba 550 we affectionately named Butler spent a half-hour cleaning the 4 downstairs rooms of a home, sucking up an impressive gob of dust from the previous night’s party.

Hello, Roomba
Hello, Roomba!

I finally watched a Roomba dance its funky dance.

The iRobot Roomba 550 we affectionately named Butler spent a half-hour cleaning the 4 downstairs rooms of a home, sucking up an impressive gob of dust from the previous night’s party.*

As I watched Roomba, I realized I’d forgotten…

How much we are inclined to anthropomorphize technology.

How we’re wired to perceive complex reasoning where only simple behavior exists.

How important it is to have users on your side!
(Roomba was occasionally bumbling but always so helpful — looking everywhere for last night’s crumbs, remembering which area needs more attention, and just generally “doing his best.”)

First Impressions

The design of the unit is clean, sleek, and functional.

Roomba in Motion across the rug
Roomba in Motion, scooting across the rug

The “wall following” behavior is particularly clever and plays to the strengths of the round unit.

Object detection mostly works (it’s supposed to slow down before a bumper-kiss), but it was blind to some antique table legs on our test run, threatening to knock over some photo frames and antique china.

Its motion is smooth, and it successfully un-stuck itself from the curtains.

I loved watching it ultimately find “home base” by IR and dock with it, 2001 Blue Danube style.

But I worried..

  • About non-techie users having to choose a “home base” location. A sleepy Roomba needs to locate its home, but a resting Roomba is hardly showpiece décor.
  • About long-term battery wear and life.
  • About how often you’d need to empty the dust out of his bowels, and what happens if you forget to do so.
Roomba Cleaning Patterns (from the manual - click for .pdf download link)
Roomba Cleaning Patterns (from the manual .pdf)

Navigation & Hackery & Papers

Roomba uses behaviors like spiraling, wall-following and room crossing (as explained in the image, right, from the manual) to create its not-quite-completely-random walk.

And below, check out this very clever 30-minute long-exposure photo (found at SignalTheorist via Botjunkie) that reveals the Roomba’s “Lovely, Inefficient” cleaning path.

Roomba Path Long Exposure
Roomba Cleaning Path – Long Exposure Image

This brings us inevitably to the hacking. iRobot, to their credit, encourage you to hack Roomba!

Martha, whose Roomba apparently can bring her beer (wait… what?!), recommends the book Hacking Roomba. Here’s the book’s companion website.

Is anyone still using Microsoft Robotics Studio for stuff like this?  (ah, the memories of dancing Lego robots.)

In the meantime, with my head full of Roomba, it’s the perfect time to re-read some of iRobot Founder Rodney Brooks‘ seminal papers, like Intelligence Without Representation and Elephants Don’t Play Chess.

Because Elephants these days apparently can clean living rooms!

*the dust was left behind from the previous night’s party, in an otherwise impeccably clean home (i.e. not mine)

The Unfolding of Language

Deutscher's The Unfolding of Language

When Stephen Fry laments “it is a cause of some upset that more Anglophiles don’t enjoy language,” it’s as if Michael Phelps were to lament that not enough people enjoy water. So when Stephen wholeheartedly recommended Guy Deutscher’s The Unfolding of Language, which he characterized as more playful and engaging than books on similar subject matter, I was hard pressed to say no. It’s taken me ages to find time to get into the meat of this book (strictly my own fault), but now, about two-thirds of the way through, I wanted to offer it my wholehearted recommendation for anyone who is even remotely interested in language and its origins and evolution.

Deutscher’s prose is indeed playful and accessible, his examples thought-provoking, and his subject matter fascinating: what are the forces that shape and transform language?

Deutscher mentions more than once that “These days, there are no systems of communication which are in the process of evolving their first words.”  He’s right, I suppose, but only on a technicality.  Last week I was taught the basics of a computer scripting language I’d never worked with before. Surely the constructs of some arbitrary scripting language represent one of many “artificial” systems of communication which are in the process of evolving their first “words” (and tokens).

I am writing this now as Deutscher transitions in the book from talking about the destructive forces which are applied to language (which favor economy, expressiveness, and analogy), into the constructive ones which enable new linguistic richness to blossom. Metaphor, apparently, provides many of the raw materials for new grammatical elements.

With that observation under my belt, and aspiring to be a creative force in the universe, I suddenly feel a bit better about my obsession with admiration of Roger’s Profanisaurus (a dictionary of profanity that originates in the pages of the UK’s Viz magazine, which derives cleverness and vulgarity in equal measure from a playful, multi-layered cocktail of metaphor, rhyming slang and other wordplay).

And of course there are my dear LOLcats, who reflect (again in equal parts) the absurd and absurdly rapid evolution of linguistic memes as they’re propelled at the speed of the internets. Since I’m in Ireland, and Deutscher recently reflected on the necessity of the word possessing-implying “have”, here’s a somewhat appropriate LOLCat I just cooked up  – with my cap off to Jim Condron for his help with the Irish word for “flavr.” (context here for the uninitiated)

Orish Kitteh Ubserves: Deres a flavor on meh
oirish kitteh tinks: deres a flavr on meh, so dere iz.

Back to Deutscher’s book.  He spends the fifth chapter illustrating a point by employing a fictional dialogue between a cast of characters at a ‘George Orwell Centennary Conference’.  it’s a technique akin to the one I admired in Hofstadter’s Godel, Escher, Bach. Actually, that’s all I have to say.  Check it out.  Go for a swim.  And apologies to Deutscher, Mellie, Fry for this rambling but heartfelt review.

Whither AI?

I didn't like this movie.I was asked a few weeks ago about why Artificial Intelligence over the past few decades has been such a “failure”, meaning mostly that it isn’t seen to be living up to its great expectations.

James Gaskin at NetworkWorld gives a well-referenced response very similar to the one I gave back then, which went like this:

Essentially, whenever some field of AI achieves a result, the successful work is given a name (intelligent search, [something] recognition, adaptive [something], smart [something], etc.), it leaves the lab, has an impact on industry / research / our lives, and “Artificial Intelligence” remains loosely defined as “the tough cognition problems we haven’t solved yet.”

Mind you, even defined in that way, Marvin Minsky would probably still agree that the creators of AI really need to get a hustle on.