Live Blogging Open Source Show and Tell (OSSAT) at TheTeam, November, 2009 (Part 2)

standard live blogging warning

Continuing on from part 1

Phil Hawksworth: Playing with Each Others’ Toys

Phil describes the open source spectrum, from open-fan to open-curious to open-skeptic.

Open source is about sharing, so in that spirit, he’s going to show us some toys he’s made.

First up, Polaroiderizer. One of his lessons from this was don’t register a domain name that can be spelt and pronounced in many different ways! But back to Polariser…

The tool is made with simple technologies, requiring nothing more than some text files. HTML and CSS, JQuery, Flickr API. Able to be put together in just a couple of evening’s work.

Next specimen is Pinboard. Similar tech. This time, there’s a server, so he’s used the excellent Sinatra. Along with Ruby and SQLite. He did the whole thing in Heroku, pushing to it via Git.

And then there’s vlolly, Phil’s ticket to an early retirement as soon as it goes viral. Another open source project with Ruby, using base62 gem to generate unique IDs.

Rain Ashford: Open Source Gaming for Handhelds

Having convinced us she is a true gaming geek, Rain walks through a few of the nicer open source games out there, including:

  • Malice
  • Lemmings
  • Word Up!
  • Meteorea
  • Setsuzoku no Puzzle (hosted on “DS Scene” so it must be cool)
  • Pocket Physics
  • NitroTracker
  • FreeDroid Classic (based on C64 “Paradroid”)
  • XRoar (Dragon emulator for DS and GP32)
  • Nethack (DS and GP32 ports)- still going on strong

This session yielded the most challenging question of the night: Can you smell a wumpus?

Robbie Clutton: iPhone Dev

What’s all this objective C? A bit like C and C++, but also message based like Smalltalk, which is dynamic but not, and object-based like Java. In other words, it’s a different paradigm to what you’re probably used to and it gets tricky working out which languages to take design patterns from.

When Robbie started looking at how developers can embed a web view into their app, he started wondering about the possibilities of developing an app that’s mostly a plain old web app. Doing this would make development incredibly easy and you could get data from the local device in addition to the cloud. However, you don’t get any device integration, and some events like gestures don’t translate well.

Enter Phonegap. It’s open source, cross device, and gives you integration with native features like vibration and the accelerometer. The way they do this is quite neat – your app basically connects to a phonegap server. So you do things like vibration by making standard Ajax calls. (The calls actually go to URLs with “gap://” protocol). Demonstrating the power of open source with a strong community, Robbie’s submitted patches which have gone back into the product.

HTML 5 is a better way to do it in some respects. One of the obvious downsides is it doesn’t show up as a native app, though you can still provide a HTML5 manifest so the app loads straight from the phone. There’s also the question of talking to specific device features. You can do it in a limited form with device-specific meta-tags, but of course it ruins the whole standards-based approach to web development; move to another phone and you’ve got a port job ahead of you.

One of the nice things about this approach is you can use it elsewhere too, e.g. if you can put the whole thing in standard HTML, CSS, and Javascript, you just create a simple XML file, run “adl application.xml”, and you now have an Adobe Air powered desktop app.

Instalicious: Push Delicious “ToRead” Items Into Instapaper

Update: Moved instalicious to GitHub. The main change I made since posting this was to stop items reappearing in Instapaper once you’ve deleted them; the sync process was causing them to be pushed from Delicious again. The script now changes the “toread” tag to “instaliciousd” (configurable name), so “toread” items will only be pushed once.

Instapaper lets me read stuff later – I hit a bookmarklet when I’m reading it and I can see it later on my browser or in iphone, or print articles in a newspaper format. The problem is, I’d rather add that stuff to my Delicious stream so I have a permanent record, others can see it, and it plays nicely with in mashups.

So I decided I want a way to bookmark things in Delicious as normal, but still have them appear in Instapaper. Here’s the script repo:

Instalicious repository at GitHub

Instalicious is a little Python script that plucks out items tagged “toread” – or some other configurable tag – and pushes them to Instapaper. Fortunately, both services have easy APIs (Instapaper API; Delicious API), and in the case of Delicious, there was even a pleasant Python binding to the API. Also, the Instapaper API happily doesn’t create duplicates when you send it something you’ve already sent…so Instalicious doesn’t have to remember what it sent. It just dumbly polls Delicious and sends it over to Instapaper.

Now you can have your cake and eat it :).