Nokia N95, Wearable OPAC, PAMP

In preparation for next month’s Wearable OPAC workshop, I’ve begun to lay some of the technical groundwork.

Last week I ordered up a Nokia N95-4 8GB, the latest incarnation of Nokia’s flagship device. It’s good for my purposes because it has wifi, has enough memory to run PAMP (PHP, Apache and MySQL), and it’s tiny and “wearable.” Oh, and you can also use it to call anyone, anywhere in the world, stream live video to the Internet, and locate yourself when lost in the Arctic with its built-in GPS (these features will be less vital for OPAC-creation purposes).

Today I got PAMP up and running: it’s actually rather easy to do, as there’s a canned install that’s pre-signed. You just have to click “OK” about a thousand times while it installs the various packages.

Lacking a good library-specific dataset for experimenting, I decided to use PEI Civic Address Data to take things for a ride. I initially ran into a problem with creating indexes, but found a workaround, and after waiting for about 30 minutes for the ASCII file to import, via Navicat, into the MySQL server running on my phone, I had a table containing 67,261 civic addresses ready to go.

Performance isn’t all that bad: with indexes on the street number, street name and community name I can find any civic address on PEI in less than a second. How much harder can cataloging data be?

I ran into a few hiccups along the way:

  • The Bluetooth File Exchange on my MacBook, which is what I was using to move files back and forth to the N95, would time out from time to time, and then would refuse to re-establish a new connection until I rebooted the phone. That’s somewhat inconvenient.
  • To work around that problem, I set up WebDAV in the Apache on the phone so that I could mount it as a remote drive from my MacBook. This mostly worked. And then it stopped working entirely. I have yet to figure out why.
  • I have yet to completely figure out Devicescape, the third-party wifi manager I’m running to, in theory, make wifi management seamless. Sometimes it connects me to a wifi network on a separate LAN segment here in the office, which makes things really difficult. I can’t figure out how to make it stop doing this, other than disconnecting and hoping it connects to my local LAN the next time.
  • A couple of times I got a “Got error 124 from storage engine” error message from the MySQL server on the phone. Not sure why.

That all said, I was able to whip up a small PHP application to run on the phone that accepts a civic address number, street name and/or community name and returns matching addresses. This is Good Sign for things to come.

I’d like to smooth out the bumps in the development toolchain before the workshop so that we don’t have to keep rebooting the phone (nothing like waiting for a phone to reboot to dampen a scintillating workshop).