Nokia N95

My New Ring Tone

2 Years with a Nokia N95

I wrote yesterday about my short-lived affair with a Nexus One, and alluded to the fact that my venerable Nokia N95, which I purchase in the spring of 2008, returns to the fore as my trusty backup device. I thought it a good time to mention a few things that I love about the N95:

  • The “macro mode” on its camera, that lets me take in-focus pictures of tiny object close up, is really good and I use it all the time for taking photos of receipts and newspaper clippings and tiny things.
  • The Gravity application for Series 60 phones like the N95 is a staggering work of genius: it’s client for Twitter, Foursquare and Google Reader and its brilliantly designed and simple to use.
  • The ProfiMail email application is also a brilliant app: it allows me to ditch the native Nokia email app, which is abysmal, and replaces it with a compact, full-featured email client that has no trouble at all working with my IMAP server.
  • As much as I’m not a fan of the multi-button Android approach to UI, I really love the dedicated music player buttons on the N95: there’s play, pause, forward and back buttons that slide out if you slide the phone in the opposite way to the way you slide it for the numeric keypad, and I use them all the time for listening to music and podcasts.
  • Although it’s inferior in many ways to Google Maps, the fact that I can use Ovi Maps on the device with pre-loaded maps means that I don’t need data connectivity for maps. That said, it’s annoying that Nokia hasn’t released the updated “includes free navigation” app for the N95 that they released months ago for other phones.
  • The N95 has SIP deeply integrated into the “telephone” app, meaning that I can make VOIP calls on the phone in exactly the same way that I make cellular calls, with all the same UI, features, etc. I really appreciate having VOIP as a capability rather than an application.
  • The Nokia Internet Radio and Podcasting applications, while not perfect, operate as advertised and are perfectly serviceable apps for listening to streaming radio and managing podcasts respectively.
  • Although their commitment to Python isn’t perhaps as strong as it once was, the fact that Nokia released and supported Python for S60 makes application development for the N95 drop-dead simple. It’s not easy to make distributable apps in Python, but for hacking together purpose-built personal apps, it’s still the best tool on the market.

Of course there are plenty of things I don’t like about the N95 – it’s wifi handling is fundamentally broken, the hardware is way too sensitive to moisture, the Ovi Store is unwieldy behemoth, the anemic Flickr support for the “share” application – but I’ve learned to live with those and, frustrating as they may be, I’ve been able to work around these limitations.

Where Am I?

Time to replace my Nokia N95?

For the past 18 months my day-to-day mobile phone has been a Nokia N95. When I bought the phone it was the top-of-the-line device from Nokia and while I’ve generally been happy with the phone, it’s showing its age and I’m looking at alternatives.

The Series 60 user interface of the N95, once the cat’s pajamas of mobile UI, seems needlessly complicated and clunky now that we’re in a touch-screen world. While I was once happy to put up with bugs and irregularities because the device was “bleeding edge,” things like the address book crashing once in a while, are increasingly frustrating. And when a recent firmware upgrade — the first in over a year — ended up introducing more bugs and irregularities (like the need for a hardware reset when trying to access a just-out-of-range WLAN), my frustrations only increased.

I feel like the N95 has been abandoned by Nokia, and thus I feel abandoned as a customer by Nokia, so I’m thus much less inclined to look at things like the Nokia N97, which has replaced the N95 as Nokia’s top-end phone.

By way of sussing out the alternatives I’ve been carrying my iPod Touch, as a stand-in for an iPhone, in my other pocket every day, and using it to run the sort of mobile applications I’d otherwise run on the N95. So instead of Profimail I’m using the built-in iPod mail client, instead of Gravity I’m running Tweetie, instead of Nokia Podcasting (that stopped working completed after the firmware “upgrade”) I’m using iTunes (or at least half-using it, as the mobile iTunes doesn’t support over-the-air subscriptions), and instead Nokia’s built-in web browser (never a joy), I’m using Mobile Safari.

I’ve also added in some applications that aren’t available on the N95 at all: Instapaper, Stanza and Byline for reading, and OffMaps and Google Earth for mapping.

After a few weeks of experimenting this way, here’s where I’m at:

  • The most maddening aspect of the N95 has always been it’s wifi-handling (or rather mishandling). The notion that I need to select an “access point” for every application I start, even if I’m already online with another application, is clunky and somewhat bizarre. While there are, in theory, add-ons like Devicescape that make this process easier has never really panned out for me: while they make logging in to secure access points easier, they don’t solve the underlying issues. The iPod Touch, by contrast, handles wifi brilliantly: you turn it on, and it works across all applications, and auto-connects to access points you’ve used before. The only downside is that if you leave wifi connected on an iPod Touch overnight it’s likely that its battery will be dead by morning. +1 for Apple.
  • I’m not convinced that the “screens of scattered icons” user interface used by the iPod Touch and the iPhone is best for me: I get confused by which application is which, and all applications being “equal” but for their icon position and design doesn’t offer enough for my brain to quickly be able to pick out what I need. That there is a Music application to listen to music and an iTunes application to buy music and download podcasts only makes this doubly confusing, given that it’s the iTunes application on my laptop that does both. While the N95 uses a similar approach, it at least supports folders of application so I can apply some hierarchy to the organization. +1 for Nokia.
  • The iPod Touch has two buttons: an on/off button on the top, and a single round button under the touch screen. By contrast the N95, in addition to the numeric keypad, has 14 buttons (I had to count), and while my fingers have become accustomed to their functions by now, there’s a steep learning curve, and something I’m still not sure which button I’m supposed to press. +1 for Apple.
  • Enforcing user interface guidelines is something Nokia has never particularly excelled at: even with applications the Nokia itself creates there are a seemingly endless number of user interface toolkits in rotation, and an application like Nokia Sports Tracker looks and feels completely different from something like Nokia Internet Radio. There’s more UI unity on the iPod Touch, but in a way this only makes things more maddening when inconsistencies appear: there are two different ways of “deleting items on a list of things,” for example: in the Mail application it’s “Edit, Select, Select, Select, Delete” whereas in Instapaper it’s “Edit, Select, Delete, Select, Delete.” Draw.
  • When it comes to syncing my calendar and contacts, it’s a draw: both the N95 and the iPod work well with iCal and Address Book on my Mac via iSync and iTunes. Similarly, Nokia Multimedia Transfer does a good job at handling photo and music syncing with iPhoto and iTunes. Draw.
  • The iPod Touch doesn’t have a camera, so I don’t have anything to contrast to. The camera on the N95 has always been a standout feature for me: it’s takes nice 5 megapixel images, has a very solid macro mode, and the onboard photo management and editing capabilities have always been enough for my needs. Setting as the occasional need to reformat the internal memory card to prevent videos from stuttering, the video camera in the N95 is similarly nice, and it’s nice that I can shoot videos like this with a camera that fits in my pockets. +1 for Nokia, but perhaps the iPhone will work just as well?
  • While it’s hard to argue with the ease-of-use of Apple’s App Store for finding and installing applications — it makes Nokia’s Ovi Store seem like a Commodore 64 application — the notion of there being a single conduit through which applications must flow to the device is anathema to me. That said, while the N95 is, in theory, more “open” to applications — I can install apps from any source, either over the air or from my PC via Bluetooth or USB cable — the inane Symbian Signed process that requires all applications to be digitally signed to be able to access capabilities of the device has always been a significant barrier, especially for open source applications. It’s great, for example, that Nokia released Python for the N95, less great that you need to use the complicated signing process to really take advantage of it (which effectively nullifies the notion of distributing Python apps for the N95 to a broader audience). +1 for Nokia, with a footnote.
  • I bought my N95 factory unlocked, meaning that I can use it with any carrier simply by swapping in a new SIM card. This is a big deal for me when I travel: it means I don’t have to pay exorbitant international roaming fees and can, instead, purchase a low-cost prepaid SIM card for whatever country I happen to be visiting. The iPhone, by contrast, is locked, here in Canada, to the Rogers network (although in theory it can be “jailbroken” to unlock it). +1 for Nokia.

It’s those last two points – the notion that having an iPhone locks me to Apple for my applications and to Rogers for my service – that are particularly distasteful to me, and that, in fact, might be iPhone deal-breakers. My next move is to consider the Palm Per (presumably suffering from a similar locked-to-Bell problem), or one of the Google/Android phone. Or maybe I should just give up this mobility silliness and go phone free?

OpenStreetMap Street Addressing with a Nokia N95 and WhereAmI

I had the pleasure of a brief chat with Steve Coast, OpenStreetMap progenitor, at reboot11 last week. Steve is a kind and voluble man, and I learned a lot about the skills you need to propose a crazy idea (“let’s make an open home-brew street map of the world!”) and have people follow you.

Now that vast tracts of the world are actually in OpenStreetMap, Steve suggested that the next level of data gathering might be collecting points for street addresses. This isn’t exactly at a “we’ve 100% decided how to do this” state in the OpenStreetMap universe, but there’s a generally accepted standard that people are using and the map is rendering, so that’s good enough to plunge in. So I did. Here’s how.

First, I headed out into the field with my GPS-equipped Nokia N95 mobile phone running the free WhereAmI application that allows GPS waypoints to be annotated (note that, because of nature of the N95, you likely have to sign this application before installing on your mobile).

Once the GPS had found enough satellites to find its location I started walking down the street. With the Annotate tab selected in WhereAmI I pressed the centre button on the N95’s joystick when I was walking by the centre-point of each house, and added the house number as the “Name” of the annotation:

WhereAmI running on a Nokia N95 WhereAmI running on a Nokia N95

One way up the street I did this on foot; the other way I did it on a bicycle (the street’s not very busy, so it was easy to amble). When I was finished, the WhereAmI Named tab had annotations for every house number on the street:

WhereAmI running on a Nokia N95

When I got back home I selected Options \| Named \| Save Named To File… in WhereAmI, and this exported all of my annotations as a GPX file to the E: drive of the phone:

WhereAmI running on a Nokia N95

Next I started up the built-in File Manager application on the phone, navigated to the E: drive (or “memory card”), found the exported file — called wami-annotations-03.gpx — and sent it to my Mac laptop by Bluetooth:

WhereAmI running on a Nokia N95 WhereAmI running on a Nokia N95

With the annotations file on my laptop, I was now ready to add the addresses to OpenStreetMap. Because of a peculiarity with OpenStreetMap importing — it won’t import a GPX file that consists entirely of waypoint and no tracks — I first had to use GPSBabel to convert the GPX file into a native OSM-format file. I selected “GPX XML” as the Input File Type and “OpenStreetMap data files” as the output file type:

With the OSM-formatted file now in hand I fired up JOSM, the desktop OpenStreetMap editor, downloaded the existing map data for my neighbourhood, and then loaded (simply with File \| Open) the OSM file with my annotations: this loaded my house number points into the map, and I was then able to edit each one, placing it to the right or left of the street and adding metadata to each point, specifically:

  • addr:housenumber - for the house number, i.e. 343
  • addr:street - for the street name, i.e. Progreston Road
  • addr:city - for the city name, i.e. Carlisle
  • addr:state - for the state abbreviation, i.e. ON
  • addr:country - for the country abbreviation, i.e. CA

More details on the standards to use are on the OpenStreetMap wiki. The result was a map that looked like this:

JOSM screen shot JOSM screen shot

Finally, I uploaded my changes to OpenStreetMap — File \| Upload to OSM — and then went to the web-based Potlatch editor where I was able to see the satellite layer under my newly-loaded points and fine-tune the position of each housenumber so that the point fell over the house itself:

The result should is that now, a few hours later now that the map tiles have rendered, you see house numbers on the street my parents live on in Ontario:

OpenStreetMap screen shot OpenStreetMap screen shot

It’s not hard to imagine a modified OpenStreetMap-house numbering-optimized version of the WhereAmI application that would smooth over some of the steps in this process, but even with the standard setup I used it wasn’t all that difficult, and the entire process, including field time, was less than an hour.