Saturday, April 27, 2013

Extracting contacts and calender data from a Nokia 2690

After resisting the inevitable march of progress, my wife upgraded to an Android phone recently. She had been using a Nokia 2690.

Image from Wikipedia

You may think "pfft, what an ancient phone!", but it has a USB connection and a microSD slot. Besides, I still use a 6100.

Attribution: Cessax / G├╝strow (Cessax at de.wikipedia)

It supports infrared, which must have looked cutting edge back in 2003, but surprisingly few new laptops incorporate it in 2013. Luckily my 3 contacts won't be too difficult to copy across manually in the unlikely event I actually use one of these Orwellian tracking devices known as "smartphones".

Anyway, back to the topic on hand. After swapping the SIM card over, the Android contacts application refused to read the contacts or calender information. I think the reason was because these had been stored in the actual phone memory instead of on the SIM.

My initial searches seemed to show that Nokia's Windows-only PC suite was the common way to copy this information from the phone to some usable format. Curses.

I tried searching the internet for terms like "transfer contacts nokia phone android ubuntu". The results were long-dead forum posts copied across multiple spammy domains, blogspam about Ubuntu phones, adverts for cheap feature phones, and review after review of the latest flavour-of-the-week Android device. This is the internet we have created in 2013 - full of unanswered questions wrapped in adverts, advertorials with more adverts, spam and money grubbers.

A beacon (mmm, bacon) of hope was a post on one forum that said "I've tried wammu but it didn't work". Aha!

Wammu it turns out is a GTK front-end application that ties into the Gammu command line utility to work with dozens (hundreds?) of mobile phones. And best of all it is Free Software. Jackpot!

On Ubuntu it's easy to install
sudo apt-get install gammu

Once that was done, I connected the aging Nokia device via USB cable to my laptop and set it to "PC sync mode". That caused a new device to show up in the /dev directory - /dev/ttyACM0. Wooo!
The gammu configuration I needed was on their wiki, but the connection string did not work. After fiddling around with wammu it seems like dku2 is the correct value for the connection type, and the advertised dku2phone doesn't exist.

~$ cat .gammurc
port = /dev/ttyACM0
connection = dku2

Once I had the phone details showing up in the wammu GUI I was almost there. I couldn't figure out how to save from wammu to a useful format - vCard seems to be the standard here. Luckily using gammu was easier and the man page has this example that does the job:

sudo gammu backup gammu_contact_backup.vcf -yes
I had to use sudo as I wasn't allowed to open /dev/ttyACM0 otherwise, and I couldn't be bothered faffing with groups for this one-off operation. This extracts all of the contacts and stores it in the vCard format. It came as a surprise to me that gammu chooses the type of data and the output format based on the backup filename extension, so using ".vcf" is required.

To extract the calender information, I had to use the ".vcs" extension. This causes gammu to export calender information and save it in the vCalendar format.

sudo gammu backup gammu_calendar_backup.vcs -yes
Once extracted, I copied these onto a suitable sdcard for the mrs's new android phone (which is a normal person's unlocked-but-freedom-hating Samsung S3 Mini, if you were wondering. Not my choice, but doesn't seem too shabby.)

The contacts app imported the vCard file no problem. From the android app's menu (didn't Google try and get rid of menus? Maybe Samsung have more idea about what works) there's an "import from SD card" option. This goes off and finds the vCard file itself and reads all the contacts in.

For the vCalendar file it didn't work as I expected. There are no "import" options in the calender app. Instead, I used the file navigation app (included by default) - and opened the vCalendar file there. It gave me the choice of what application to open the file with, I chose the calender app, and that was that.

Unfortunately I didn't manage to get the SMS files off in a way that the Android apps could understand. I don't think there's a standard interchange format there, each phone does it their own way.

I dread to think what will happen in a few years time when I want to repeat this process to get the stuff off the Samsung phone though.

Saturday, April 20, 2013

Life After Google Reader

A few weeks ago, Google announced that they would be shutting down Google Reader on 1st July.
I used Reader for 2 things: keeping up with podcast episodes and keeping an eye on rarely-updated blogs. I didn't subscribe to anything with more than 1 post per day, as I couldn't keep up with so many new articles.

Once I recovered from the shock and disappointment of Reader itself going away, I came to the conclusion that none of the alternatives are really there yet.
  • Feedly - requires a browser plugin, and is still based on your Reader account details
  • - threatening a freemium model
  • rss2email/tiny-rss - you have to run your own server - the only option that makes sense long-term - but it is a lot of hassle
  • Just about everything else shows large photos on their homepage and thinks that social media buttons are a good idea. I don't think we'd get along.
Since the spring-cleaning announcement I have gone cold turkey on Reader. My RSS-reading solution is now to imagine we're in early 2005 again and use a local client ☹

The client I'm using is newsbeuter. It's a text terminal application (this is a good thing) and has podcast queuing integration too. It can import an OPML file, which is a list of the feeds that you subscribe to. Reader has a URL to export your feed list as OPML too, so migrating is not difficult.

One nice feature newsbeuter has is the ability to export and import a list of articles that you've already read. This means that, using a git repository on bitbucket, I can synchronise read articles in a crude way between PCs. Fortunately I had mostly weened myself off Reader on portable devices, as my Google password is too annoying to type in.

The real downside is that refreshing articles is pretty slow. A couple of tweaks help here. Instead of reloading all feeds in one thread, newsbeuter supports multiple threads. 4 seems to speed things up a bit, I couldn't notice much difference using more than this.

Here's my .newsbeuter/config file:

bind-key k up
bind-key j down
reload-threads 4
reload-only-visible-feeds yes
This is far from ideal, but better than relying on free internet services that could disappear at any moment. The irony of this blog being hosted on blogger is not lost on me. I fear for its future too.