The utility of a service like GeoClue is not immediately evident to a casual observer so I thought I should try to explain why I believe it's important: It's all about context sensitivity and avoiding or simplifying user interaction whenever possible -- if the computer can find out where it is, it should not ask the user (at the very least it should offer reasonable defaults based on the knowledge). Doing this will make current software better and enable entirely new functionality. I shouldn't need to point out that this effect is enhanced on a hand held device.
I'll start with a general view on context sensitivity and how interaction can be reduced (and why it should be). I'll then present an example case, the OMWeather applet to "make my case" with regards to GeoClue.
Some programs are all about manipulating information (e.g. a drawing program), but most software is actually information software, programs that are mostly used to get information and not manipulate it. Information software basically does three things:
The first step is what were interested in. Context can be inferred from three sources:
Bret Victor has lots of examples of the first two in Magic Ink1, and he also makes a convincing case why interaction is a often a bad idea (that chapter is really recommended reading even if you have no time for the rest of the paper). I'll just quote his conclusions:
Interaction should be used judiciously and sparingly, only when the environment and history provide insufficient context to construct an acceptable graphic.
The dialog at the beginning of the page was really stupid, right? Take a look at the next screenshots from the OMWeather applet2 and tell me how much smarter they are, considering that in a normal situation it is entirely possible to make a reasonably accurate guess about the environment without bothering the user:
That's a lot of interaction there (13 clicks or more), just to get your computer to give you a usable weather forecast... something it really should do automatically. The decision to build that UI (and not build a context-sensitive application) was totally reasonable though, if you consider it from the developers point of view: First, very few people travel constantly, so most people only need to use the UI rarely. Second, the amount of work involved in building position-aware software would be totally unreasonable compared to potential benefit.
Points that I'd like to make from this example are as follows:
It looks like GeoClue could become the one-stop shop for Geographical Information on Maemo (and Linux in general). It is still rough around the edges and there are parts missing, but it's not far from the goal -- feedback from application developers is, in my opinion, essential at this stage:
Author: Jussi Kukkonen. Thanks to Henri Bergius, Tuomas Kuosmanen and Andrew Turner for ideas.