Kevin Carmody: machines, media & miscellanea

Elsewhere: Mastodon, Github, Email

IRC bots in Node.js, with CouchDB

Over at JS Oxford we’ve been avidly using IRC for organising, as well as general JS chatting. The openness of IRC is brilliant. You can just rock up to freenode, /join #jsoxford, and you’re chatting with the team. One of the major downsides I found with IRC though is that there is no obvious way to view conversations that happened while you were offline. So I decided to write a small bot that would save the conversation in a public document store. From that point on, it’s just a small jump to displaying chat data on a public webpage (and another blog post ;).

Wheedonverse, mapped using d3.js

Man, I love the Wedonverse. All of it. Firefly, Dollhouse, Buffy… even Angel. I really like Firefly. So much so that I’ve made my (lovely) girlfriend watch Castle, just because it has Nathan Fillion in it. So I got to thinking, how much crossover is there with all these shows? What we need is some kind of node/edge graph :)

Keep running

Over the past couple of years I've really gotten myself in to running. Last year I seemed to have peaked on my season's running, I think I did about 10 events. I hit most of my targets, with a 47:20 10km and a 1:51:45 half-marathon. I was really pleased with these, but they were all building up to the big one. The Marathon. I ended up doing the Milton Keynes event last April in 4:25:32. I'll admit, I was somewhat disappointed with my time as I was sure I could have done it in under 4hrs, but I know why I didn't.

Monkey Flask

So it turns out that in GCSE computing, they have to learn Python now. How wicked is that?! I've been helping out my girlfriend's cousin with hers and I've been having to quickly learn bits of Python on the fly so I can answer her questions. Here are some of my thoughts

RC cars in Node.js

Wanna make your brain hurt? Try developing a hardware interfacing library for node.js...

Arrownd variable size div arrows

One of our designers has a love for putting variable size arrows on navigation lists. This is really easy to do in Photoshop but a damn nightmare to build. However, I felt bad that saying it was something we couldn't really do. I mean, coming up with solutions is our thing right?! So I spent some time thinking about it...

Twon - many browsers light cycles

Last year’s jQuery conf was sponsored by BlackBerry and they gave away playbooks, loads of ‘em. This gave us an idea. Why not a game that ran across many of them? So we made a game that you can host and have multiple players join with their own device. You can also attach multiple screen together using hot areas so you can play across browsers across multiple computers. We called this game Twon… cause it’s kinda like Tron… kinda.

Naturally, the tech of choice was Node.js based sockets using Express. This allows some easy subscriptions to events across multiple devices.

Setting up the game is real easy. You can download the source at https://github.com/skinofstars/Twon, run npm install and then fire node app.js at it and you’ve got the Twon server up and running. Then, just visit the host machine with a few other browsers. You’ll see in the /public folder of the repo which pages to visit depending on what you’d like the browser to act as. We find projectors are great as arenas and mobiles as controllers.

Have fun!

Fukushima - The issues, in 'layman terms'

Trying to disseminate information from the news about what's going on at the Fukushima plant in Japan in the aftermath of their recent earthquake and subsequent tsunami is a tricky business. BBC is all about pictures of explosions and worried looking people in paper masks. Sometimes it's interesting to have a little more detail about what trouble they may be having in managing a nuclear fission plant in a critical state. Well as it turns out, I know a nuclear engineer who was kind enough to give me a summary.

Virtualbox Ubuntu Fullscreen Second/Dual Monitor

Virtualbox is an awesome application, allowing you to run multiple instances of operating systems concurrently. But getting full screen guest working on the second monitor doesn’t work by default, it always fullscreens on the primary. This drove me mad for a couple of hours till I figured it out. The answer is through the following steps:

  • Fullscreen (Host+F)
  • Hidden Menu (Host+Home. This only works in full screen)
  • View>Virtual Screen 1>Use Host Screen 2

Voila. Simple once you know.

Eclipse PyDev on Ubuntu

I had a bit of a moment earlier in getting PyDev up and running in Eclipse. Installing is easy enough through Marketplace in Helios, but when I went to open a project I was denied! Anyway, figured it out, just needed to select my interpreter.

When you go to open a new python project hit the ‘Please configure an interpreter..’ link. Then click the Auto Config button. Ok. Apply. Ok. I’m on Ubuntu Lucid 10.04 so my grammar is 2.6 (you can find your version in the terminal via:$ python –version ). Your interpreter is Python. Finish. And you’re done :)