Ambient Location and the Future of the Interface

Amber Case (CC-licensed by webvisionsevent.jpg
Amber Case (CC-licensed by webvisionsevent)

Amber Case is a founder of Geoloqi and a cyborg anthropologist. Some of the themes that interest her are “ambient intimacy”, “the automatic production of space” (you can put stuff in your computer, but it doesn’t get heavier), “the digital dark age”, “persistent paleontology”, “information jetlag”, her dislike for skeuomorphs and “cellphones as providing temporarily negotiated private space”. According to her we are all cyborgs now. The minute you look at a screen you are in a symbiotic relationship with technology. Most of the tools from the beginning of time were an extension of our physical selves. Right now we are starting to see tools emerging that are extensions of our mental selves. From a fixed interface, we have now moved to liquid interfaces on our screens which can be infinitely configured. What will be the next step in the interface world?

Steve Mann already wore a computer in 1981. He was the first person to lifestream his life. He wrote a great paper titled WearCam, the wearable camera. He worked on the concept of diminished reality where he would cancel out the ads and brands that he didn’t like. One of his issues was how do you type? So the Twiddler,a one-handed USB keyboard, came out. He could get about 90 words a minute with it. He created contextual notification systems for “remember the milk” type of things. He built in face recognition software. He went from 80 pounds of gear in the early 80s to the current situation where he has the information laser projected onto his eye.

The Twiddler
The Twiddler

“Calm technology” was research done at Xerox Parc in the 70s. It is exactly what it says that it is: actions become buttons, there are invisible interfaces and there are trigger-based actions. The haptic compass belt is a great example of calm technology. At Geoloqi they realised that with geo-technology you can now make invisible buttons. So for example your lights will turn on when you enter your geo-fenced house. This will allow your phone to become a remote control for reality. She showed a lot of examples of what you can do with geofencing. One example was mapattack.org.

The conclusion of her talk: The best technology is invisible, gets out of your way and helps you connect to people.

Where is IMDB’s API?

Internet Movie Database
Internet Movie Database

I really like the Internet Movie Database (IMDB). It is the largest freely available database of movie related data. I use it mainly for two things:

  1. Whenever I see an actor or actress in a movie and cannot remember in which movie I have seen that person before. IMDB list all the actors/actresses in the movie and allows you to click on the name of each person. On the page of the person it will then show you all the movies in which they played a role.
  2. Whenever I am in video store and need to know whether the movieĀ  that I am about to rent is any good. IMDB has a ratings systems that can give you a good general idea of the quality of the movie.

This post will be about the second use case. In the video store I use the Internet connection of my mobile phone. This is a tedious and often infuriating process, especially when you want to look up multiple titles. IMDB’s pages are huge (they have many images and ads), and this makes them load very slowly. In case of an ambiguous title two pages need to load before you can see the rating. Let’s look at an example. If I search for “pulp fiction” I get the following page:

IMDB results page (click to enlarge)
IMDB results page (click to enlarge)

I then have to click on theĀ  “Pulp Fiction” link to see the IMDB page which has the rating:

Pulp Fiction at IMDB (click to enlarge)
Pulp Fiction at IMDB (click to enlarge)

After another angry session at the video store, I decided to do something about it. First I looked for a mobile version of the IMDB website. There are some available options (see here and here), but they are geared towards iPhones and don’t really work well.

Next I decided to write my own small web application and tried to find the IMDB API. It doesn’t exist! Unfortunately there is no way to easily use and re-purpose IMDB’s data. I don’t understand why some web companies (in this case Amazon) still don’t realise that this actually inhibits the building of their brands.

Luckily there is always one last option: screen scraping. I was actually willing to try and write my own parser for this (would be great practise), but found Izzysoft‘s IMDBPHP class which makes this easy work. This class allows you to get a lot of data about each movie.

After about two hours of programming I now have the following result. I call it Rent it?:

Rent it? The results for "Pulp Fiction"
Rent it? The results for "Pulp Fiction"

I tried to design it to be as fast as possible and made it fit for purpose using the following design considerations:

  • I used a big input field at the top of the screen, with a big button underneath. This input field is also shown on the results pages, so that it is always easy to start a new query. The field gets automatic focus as soon as the page finishes loading.
  • Only relevant information about each movie is shown: rating, title, year, director, run time in minutes and a user generated plot outline. The title links to the original IMDB page which will open in a new window.
  • The standard IMDB score is converted to a percentage and gets a background colour on the basis of the height of the rating. Red has a rating of less than 60% (not worth watching), whereas movies with green ratings are above 70% and could be interesting.
  • The pages are very light: no ads or images. All the processing is done on the server. If a search has many results, then this processing can still take a while. That is why the number of results are capped at five and results are cached for a week (also on the server to benefit everybody).

I hope you are willing to try it out and look forward to any of your feedback!

Try “Rent it?

Rent it? is also accessible through my mobile start page.

Corporate Social Networking Part 1: Elgg

Over the next couple of weeks I will write a series of blog posts about corporate social networking. I will be looking at some open source tools that can facilitate the creation of these kind of networks in a corporate setting and I will try and make a business case for why you want to start experimenting with these kind of tools in your company.

Elgg
Ellg.org

In this first post I will take a look at Elgg, a tool that will allow you to build your own social network. You should see it as an open source version of Facebook, Ning or Hyves. Unlike these services, Elgg will allow you to retain full control of your implementation and of your data.

Elgg has been around for a couple of years now. Recently the core developers have completely rewritten the application and version 1.0 came out on August 18th 2008. They have used the pretty standard PHP/MySQL combination to implement their own MVC framework. This will allow you to easily change the user interface without changing the functionality and makes extending the existing functionality a pain-free experience.

In 2008 Elgg won the best open source social networking award in Infoworld’s Best of Open Source Awards. Examples of Elgg sites are:

  • Community@Brighton: a social networking system for students and staff at the University of Brighton. This university has been using Elgg for quite a while now (they seem to use the old platform still), using it for blogging, sharing of different media files and for the creation of internal communities.
  • Rucku: a virtual clubhouse for rugby. Rugby enthusiasts share forums, videos and pictures. Note how even the language of the site is rugby themed (e.g. “sledge” instead of “message”).
  • Harvard University: recently some courses were taught in an Elgg environment instead of in the standard (home brew) Harvard LMS. Weekly blogging instead of threaded discussions was the central activity. This way the content of the posts stayed with the students even after the course had finished.

If I were to summarise Elgg in a couple of words I would say that the core functionality revolves around a dashboard, user profiles and groups and that these are linked through tags and a flexible access infrastructure allowing users to build their own networks.

Each user has their own dashboard. This is their launch page and contains widgets showing recent activity in the network:

The dashboard, each user has one
The dashboard, each user has one (click to enlarge)

Users can add their own widgets to this page by clicking on the “Edit page” link and using the drag and drop interface (Elgg makes extensive use of jQuery) to fashion the page to their own liking:

Adding your own widgets to the page (click to enlarge)
Adding your own widgets to the page (click to enlarge)

Developing your own widgets is trivial for any web-programmer. This will allow Elgg to play nicely with other systems (e.g. a Twitter widget already exists). The Elgg developers write on their homepage: “We are committed to open source, data portability and transparency”. Their support for OpenID, OpenSocial, openData and Elgg’s RESTful API clearly demonstrate this. Because of this it is very possible to use Elgg data inside another application.

There is a user profile for every member of the site. Users can upload their own picture and fill in a couple of profile fields. These fields can be created by the site administrator and will allow connecting different users on the basis of their interests, location or field of work for example. The user profile has the same widget based approach, so that the user can decide what people see when they view their profile:

User profile, note the Twitter widget (click to enlarge)
User profile, note the Twitter widget (click to enlarge)

One of Elgg’s most celebrated features is the way that groups can be created inside the system. Users can start their own groups around projects or communities of practice. A group has their own files, forums, activity stream and pages and can have open or closed membership:

The group homepage (click to enlarge)
The group homepage (click to enlarge)

Every thing that is added by users to the system will allow multiple tags to be attached. These tags make finding relevant materials in the network very easy:

A search for the term "Elgg" (click to enlarge)
A search for the term "Elgg" (click to enlarge)

Finally the access controls make it a snap for users to share any of their materials with the world, their friends, a particular group of friends, a group in Elgg or to keep them private. You can set these permissions for anything, be it user profile information, uploaded files or blog posts:

Tagging and providing access
Tagging and providing access

All the other functionality inside Elgg is completely modular and can be turned on or off with a couple of clicks. The main modules that are relevant for businesses are:

  • Each user can have their own blog. The blog is quite rich in functionality: it has comments, pingbacks can be installed and access to each post can be set.
  • The files repository will allow the uploading of any file type. Files can have a description and tags and their level of access can be set. Image files get special treatment, automatically allowing them to be viewed in a gallery.
  • Messaging comes in two forms. There is an internal messaging system allowing one to one private messaging and there is a facebook-like “wall” connected to the user profile page.
  • Elgg calls their wiki functionality “Pages”. It is a mix between a true wiki and a collaborative hierarchical web-page writing tool. Each page has separate access permissions for reading and for writing. A very simple revision history is kept.
  • The social bookmarking tool (including a bookmarklet) allows users to store their favourite websites and share these with selected friends. Websites can be tagged of course.
  • A user can easily update their status. Each status update is stored so that this can also function as a microblogging platform, especially in combination with the activity river which shows the most recent updates of your friends. There is a plugin that will push status updates to Twitter.
  • Many information streams inside the Elgg installation have their own RSS feeds pushing the content to your feedreader of choice.

In the next social networking post I will try to build a business case for a tool like Elgg inside corporations. Why would it be useful to have this inside your business? I can imagine that you as a reader might have ideas of what could be the added value or maybe you have some examples of businesses that are already doing this. It would be great to get your input and feedback in the comments.

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!