One big library, one little device: Evergreen staff client on Nokia N810

Posted on Mon 02 March 2009 in Libraries


It's hard to take good photos of these devices

Almost exactly a year ago, Jason Etheridge (the primary developer of the Evergreen staff client) and I managed to get our hands on a developer edition of the Nokia N810 Internet tablet device. It's a nifty little handheld computer that packs 128 MB of memory, a touch screen, and a beautiful 800x480 screen, and I've had my hands on it from almost the beginning. The primary rationale of the Nokia developer program was to encourage developers to put together useful applications for their platform, of course... and as the months ticked by and I did nothing of interest, my guilt slowly grew.

Well, today I feel a little bit better. Here's what happened: when I was attending FSOSS 2008 at Seneca College, I ran into Madhava Enros. Madhava and I had worked together on some help UI designs back when we were both DB2 employees; since then, he had joined the Mozilla Foundation and was working on Fennec, the mobile version of Firefox targeting the N810 device (to begin with, at least). The first alpha of Fennec had been released to coincide with FSOSS 2008, so I gave it a shot a few days later. Madhava's team made some great innovative decisions for Fennec's UI, but what really caught my eye was that they had packaged a port of XULRunner-1.9 to the N810.

See, the Evergreen staff client is built on XUL, the same XML/JavaScript/CSS foundation as Firefox and Thunderbird and Fennec - and to run XUL, you need XULRunner. At the time, though, the Evergreen staff client needed the 1.8 version of XULRunner; it simply wouldn't work with 1.9. So, I stuffed the N810 back into its case and forgot about it for a few more months while I focused on other things like the never-ending effort to improve Evergreen's internationalization support.

Over the last few weeks, though, Jason has been steadily enhancing the staff client in Evergreen trunk - and the comment for one of his recent commits was “we're kicking xulrunner 1.8 to the curb with trunk”. I had a spare hour or two on my hands today, so I copied a staff client build from Conifer's Evergreen trunk test box to the N810, kicked off the XULRunner command, and waited... expecting failure. Instead, I found that the staff client worked almost exactly as it does on my laptop - the major difference being that some of the default function key mappings on the staff client conflict with the mappings of special buttons on the N810 (like the full screen toggle gets mapped to F6 - Record In-House Use on the staff client). Otherwise, the client did a great job of adjusting to the available screen width, and even Dojo-based interfaces like the Vandelay MARC batch importer/exporter and the pop-up calendar worked. Very cool!

So, if I can find a barcode scanner with a mini-USB attachment, I could have a nice little inventory tool on my hands. Or a mobile circulation station. All because the Evergreen developers made the decision years ago to build on XUL as a cross-platform framework... this should be sweet confirmation that they made a good choice. XUL continues to be ported to more platforms, and anyone using the Evergreen staff client benefits from the optimizations and bug fixes that go into XULRunner. Nice. When we cut a release from Evergreen trunk that supports XULRunner 1.9, I'll do my best to package up a version of the staff client for the N810, and some of my guilt will be assuaged. Yes!

*Updated 2009-03-02 10:35 am: Correcting Madhava's name; I shouldn't write past midnight without proof-reading! Sorry Madhava.*