A SnapAsk Widget for Symbian S60

Answers in a snap
Answers in a snap

My favourite gadget of all time is the Psion 5MX. EPOC, its operating system, was sheer genius. It had a great interface and was a joy to use. EPOC became Symbian S80 and when the lack of Internet functionality of the Psion became too bothersome I decided to switch to a Nokia 9500, then to a Nokia E90 and now I own a Nokia E71 with Symbian S60 3rd edition.

Suddenly I find myself stuck with a smartphone that has an operating system which doesn’t leverage the keyboard of the device and is in many ways quite clunky (some options are hidden more than five layers deep). However I much prefer Symbian to the other available platforms: the iPhone is extremely nice but married to iTunes and locked down, Palm hasn’t been resurrected yet, Windows Mobile is a joke (using a pen is ridiculous in this day and age), the Neo Freerunner is too experimental, Maemo doesn’t allow me to use a SIM card and all the phones running Android that currently exist have no battery life.

I like to get the maximum potential out of all the technology that I use. I have spent quite a bit of time setting up my phone exactly the way I like it, so that I have quick access to information on the go (see for example the custom mobile start page that I created). In due time I will write a post about the programs that I use on my phone. In this post I want to focus on a small widget that I developed yesterday evening.

A couple of months ago I read a post on Lifehacker about a great service for people who own a mobile device with email capabilities: SnapAsk allows you to send an email to ask – at – snapask -dot- com with a keyword and a query in the subject line. SnapAsk will then reply to your email with an answer to your query. So “wiki Symbian” will return the Wikipedia page for Symbian and “news economic crisis” will return an email with relevant news articles. Some of the keywords are a bit US centric and don’t return proper results for me in the Netherlands (e.g. weather, traffic or flight), others are quite innovative: Know some words of a song, but can’t remember the name or who sang it? Send an email with the subject “lyrics A full commitment’s what I’m thinking of” to Snapask and you will be textually Rickrolled.

Using SnapAsk on my phone proved more difficult than I had hoped. I had to either type in the email address in the To: field or select it from my contacts, remember (the hardest part!) and type the keyword I wanted to use and finally type the query. I also learnt the other day that Nokia has decided to support widget development on their Symbian platform. So I gave in to my tinkering spirit and committed to trying to write a little widget which would make it easier to use SnapAsk on my phone.

I set the following criteria for the widget:

  • It should require the least amount of possible clicks
  • It should be as close to self explanatory as possible
  • I would have to be done with it in a couple of hours
The UI of the widget
The UI of the widget

At first I thought I would create links for each keyword and an input field for the query. The user would first click on the link with the keyword, then write the query and finally click on a link or press a button to start the email application. Later I realised that I could eliminate one step by making the keywords buttons. This way the user would only have to type in the query and select the correct keyword.

This idea required some Javascript. I have been wanting to try jQuery, so I wrote the initial implementation using that library. When I tried loading the page on my phone I learnt that jQuery seemingly was not supported by Nokia’s built-in browser. I then decided to try and write it with normal Javascript code and this worked perfect. With some CSS I managed to get the input field to be the full width of the top of the page (where the cursor is likely to be). I also made the field higher by increasing the font-size property, so that it is easy to get your cursor on it, in case it isn’t. The only thing I couldn’t manage to do was get the field to auto-focus on load. It seems that Nokia doesn’t want to support that function.

All I had to do, after finishing the HTML file (with inline CSS and Javascript), was create an XML file called info.plist with the name of the widget and its version number and an icon.png file of 88×88 pixels. I then put these three files into a folder, zipped it and changed the extension to .wgz.

The widget as an installed app
The widget as an installed app

The great thing about these widgets is that they install like any other Symbian program and can, by default, be found in the Installations directory on your phone. Ajax can be used and apparently some Javascript methods exist that allow you to map certain functions to the softkeys of the phone.

I really like how standardised web technology is becoming. This widget should run on any other device with a standards based browser and if you keep the structure of the page simple and clean you can expect each individual mobile browser to display the page optimally.

My employer has standardised on Symbian smartphones for all their consultants. It should be relatively easy for them to develop a highly relevant widget that will enable me to do my work better and more efficiently. I have to say I am bit puzzled about the fact that Nokia is not pushing this concept a bit harder. Where is the Nokia Widget Store?

I would love for people to use the widget and give me some feedback on whether they like it:

Download the Widget
(or try in your browser if you don’t have a Symbian phone)

If you know of any other interesting widgets for Symbian please let me know!

Why we should stop using Twitter and switch over to Laconica

The biggest implementation of Laconica
The biggest implementation of Laconica

A lot of my colleagues at Stoas Learning including myself are having a lot of fun using the microblogging service Twitter. It has changed the social interaction between some of the team members and we have gotten to know each other better through a very simple service delivering 140 character messages at a time.

I like the service a lot but have been worried about one thing: the fact that all this information is only on Twitter’s server. This point is extra poignant whenever Twitter is down (which happens quite often).

Imagine a world in which people with a Hotmail email address could only email somebody if they also had a Hotmail address. There would be no way for somebody who is registered at Gmail to email somebody at Yahoo. Luckily this is not the case: email is collection of open protocols which can be implemented by anybody. Unfortunately we cannot say the same about instant messaging. I personally have a MSN account, a Skype account and a Yahoo account and there is no way for me to talk to a Skype user with my MSN account.

So what about microblogging? Will we go towards a future which is similar to instant messaging with multiple microblogging services which are not connected to each other? Will Twitter be so dominant that there will be no alternative (creating a monopoly with all its disadvantages)? Or will we move towards a future where microblogging is like email: you can choose the provider you want and connect to people using other providers?

I prefer the last option and feel that I should be principled about it. That is why I will stop using Twitter, temporarily abandoning the people I follow and the people that follow me and switch over to Identi.ca, currently the largest Laconica installation. Here is how Identi.ca explains in what way it is different from services like Twitter:

Identi.ca is an Open Network Service. Our main goal is to provide a fair and transparent service that preserves users’ autonomy. In particular, all the software used for Identi.ca is Free Software, and all the data is available under the Creative Commons Attribution 3.0 license, making it Open Data.

The software also implements the OpenMicroBlogging protocol, meaning that you can have friends on other microblogging services that can receive your notices.

The goal here is autonomy — you deserve the right to manage your own on-line presence. If you don’t like how Identi.ca works, you can take your data and the source code and set up your own server (or move your account to another one).

I will spend the next couple of weeks trying to convince everybody around me to make the switch and maybe even get Stoas to start its own Laconica server.

If you are interested in hearing more about Identi.ca and Laconica I can recommend episode 37 of Floss Weekly where Evan Prodromou, the creator of both is interviewed and explains how Laconica works and what the plans for the future are.