Broken because they were toys, and vice versa.

10 October 2010

Dylan is six or seven, and frustrated that his toys don’t live up to their promise:

If the Etch A Sketch and the Spirograph had really worked they would probably be machines, not toys, they would be part of the way the adult universe operated, and be mounted onto the instrument panels of cars or worn on the belts of policemen. Dylan understood and accepted this. These things were broken because they were toys, and vice versa. They required his pity and patience, like retarded children who’d been entrusted to his care.

Jonathan Lethem – The Fortress of Solitude.

I’m enjoy the book a lot, but that paragraph leapt out at me early on and has been dog-eared since.

Margaret talks a lot about one possible pillar of good game design being “how is this interestingly hard?” I described this to her, and she suggested that what distinguished many (but not all) toys as toys were being things that were interestingly shit.

Of course, not all toys are; many of the very best are just genuinely interesting. I immediately leap to Lego to answer that one. But broken-in-interesting-ways allows for subversion and exploration; enjoying it not despite, but because of brokenness. Difficult-in-interesting-ways allows for mastery. Both are interesting, and worth pursuing.

And yet: reading Dylan’s disappointment, as he realises the Spirograph is just not as tolerant a device as the cover of the box suggests, I felt that same feeling in my gut; the same feeling I felt at six or seven, realised all my efforts with my Etch A Sketch were doomed to being rubbish. Interesting, but broken.

  • "There is only room enough on this earth for one majestic horned beast, thus the Unicorn and Narwhal must clash to decide the fate of their species. Two previous battles ended in a tie, with both sides claiming to be the victim of dirty tactics. Now you can settle the score with your very own Unicorn vs. Narwhal Play Set."

Heroku – a new addition to the toybox

05 March 2009

You can now find out what Schulze – or anyone else, for that matter – is listening to (as described in this post) on the web; just head on over to http://wotlisten.heroku.com.

The utility of the original command-line script is now diluted even farther – mainly because you now have to go to the website to scrape the web – but that wasn’t really the point of putting wotlisten online; the point was to see just how easy deploying to Heroku really was.

The answer is: remarkably so. I wrapped the original script into a little Sinatra application, with two views, and a tiny bit of error handling for convenience. Sinatra’s something I’ve been playing with for a while now: it’s really excellent for wrapping small scripts into little webapps with the bare minimum of extra code, and when combined with lightweight tools like DataMapper, and sqlite, just powerful enough for the lightweight tinkering I seem to do so much of. If you’re a Ruby developer and you haven’t played around with Sinatra, you owe it to yourself to check it out – it’s a lovely library to have in the toolbox.

With the webapp written, I installed the heroku gem, which helped me create a new remote git branch pointing at my Heroku account. Deployment is trivial – far simpler than using something like Capistrano; all that is necessary is to push my master branch to the heroku remote, and upon a successful push, Heroku notices that I’ve pushed out a Rack application – and it directs requests to it automatically.

It took about ten minutes to write the Sinatra app, and another ten to get it up and running on Heroku; the single snag I ran into was the same as Tom did – the need to unpack haml into a vendor directory.

I’m very, very impressed. It’s all very well being able to build small, trivial toys like wotlisten, but it’s often a hassle to deploy or configure them. Heroku really takes most of that pain away, and makes setting a tiny Sinatra app live a trivial task. It’s definitely going into my toolbox – or, perhaps, that should be toybox – for the near future.

  • "…kids are utterly, utterly obsessed with fairness. It's the most important element in any game. And human rule-enforcement is automatically deemed unfair. There is no referee, umpire or god-like grandparent that can escape being seen as unfair at some point, for some decision. But the commanding voice of Cosmic Catch escapes all that. The relentless, ineluctable judgement of the RFID machine brooks no argument, is prey to no human frailties and biases and is immediately seen as fair."
  • It's more cursor*10, and it's as fiendish and entertaining as ever. The impaled-cursor is particularly cute.