A notch above a monkey

N900 applications I miss

I love using N900 , but there are applications or features I miss. This post is a reminder to me on what I might do if I find more time. Since list is too long for me to do everything (unless I suddenly win lottery), feel free to pick an idea you like and run with it. Just let me know afterwards where I can see results of your work or participate in development.

Offline Wikipedia. When I am not behind a computer or reading, I like to be outdoors and even though cheap always available Internet was supposed to be here any day now, I regularly find myself information hungry in places with a very slow or no Internet connection. N900 with SD card could pretty much store everything I wanted and building an app that process and display information from Wikipedia dumps doesn’t look like a too difficult task.

Better dictionary for Maemo. QStarDict port is great and it has become one of my favorite applications. However its user interface suffers from being a direct port of a desktop version one and could be improved with one that wastes less space and is orientation aware. Reading dictionary is one of few things I wish I could do in portrait mode.

Web platform for Maemo. Wouldn’t it be great if you could build Maemo applications with web technologies? QtWebKit is a great place to start and I am certain I could expose new functionality through addToJavascriptWindowObject of QWebFrame class. Beside exposing this stuff I would also like to create tools and interfaces for developers and users alike with which they can easily package a web application as a standalone Maemo application or in case of users, turn a website into an application (I know you can add a bookmark to a website but it is not quite the same thing).

Caffeine for N900. I would like to pick “Switch profile to silent for <x time>” and know N900 will turn back normal profile when that time period expires. I always forget to turn ringing back on after I leave cinema.

Monitor unknown calls. I don’t want to pollute my address book with every phone number under the sun, but I would appreciate if I could get a hint if I ever talked or called the number in question. Bonus points for using public phone books to fetch name for given number and parsing number for clues (which country or part of it is call coming from).

This is not a complete list of things I want, but rest are mostly feature requests (except email client which currently really kind of sucks). For example I wish calendar had support for CalDAV or PDF viewer for screen rotate, search and fit to width.

I am aware that Maemo should be called MeeGo now, but a habit of years can’t be changed in few weeks. I searched for above applications and didn’t find them, but if you know of any I missed, then please let me know.

Appeal for a better support of authors widgets

Goal of Zemanta widget has always been to present contextually relevant information to text being written and to enable writers to add that information easily in places of their choice. We want to do this in as unobtrusive manner as possible, which means that act of writing should not be impeded by us and that published text should only have as little markup added as it is necessary to add items picked by user (images, links…).

Zemanta widget in various incarnations today works in all major browsers ( Firefox , Internet Explorer , Chrome , Safari and Opera ) and on all major blogging platforms. This wide support is presenting ever bigger challenge to us and to anyone who wants to follow our path.

Most blogging platforms today support enhancement of blogs with widgets. I think it is time for them to add support for widgets on content creation side and go beyond current one-interface-fits-all state of affairs.

Open platform would enable tool makers like us to build specialized tools that might cater to specific niches and empower writers to customize their workflow to their needs .

Such platforms should at minimum have a common shared feature set, but I hope for at least partially shared API .

Current state

Some platforms like WordPress already have a plug-ins API which can be used to customize parts of creation process. However it is usually very low level, highly platform specific and available only to self-hosted users.

Creators of rich text editors have also recognized a need to let outside developers extend writing experience. Most major editors have an API that admittedly we might not be using enough. But this is not true of all editors so we end up with common development problems like not enough feature overlap and missing, undocumented or poorly documented interfaces.

There is a lot of activity, but the end result is still a very fragmented landscape that in my opinion limits developers creativity. You either add wanted functionality to your favorite platform or if you are more ambitious, you end up seeking the right balance between ironing out platform peculiarities and building features users actually care about.

And since blogging environment that most people use lets them little control over it, we develop browser extensions that are really just a patch for this problem. The only reason why we bloat browsers (a little bit) with an extension that most of the time does nothing is because we have to. Extensions are great, but they also present a risk and in this case one that should not be necessary.

My vision of future

What I would like to do as a developer can best be explained with examples translated from code to English (well, approximation of it anyhow).

I would like to write: ?Take image at this address, upload it to writer?s image repository and return me its new address.?

I would like to write: ?When DOM node is added to text (or removed from it), run this function.?

I would like to write: ?Before text is published, run it through this filter function and save its result.?

I would like to write: ?Store this information and let me retrieve when I need it.?

I would like our users to add our widget with only a few clicks. Maybe a click on our side to trigger installation and a confirmation on blogging platform with a list of permissions sought (like OAuth ).

When user interface needs to be shown, I would want it to be well integrated. So if elements of interface can be rearranged, hidden or otherwise handled, then our widget would behave as expected.

In conclusion

Creating and supporting a tool like Zemanta is difficult. Front end development is challenging enough when you are against few browsers on your platform, but it is far worse when you try to deliver the same high level of experience on multiple platforms none of which you actually control.

You keep hitting at browser quirks and unexpected platform changes and ironically it keeps getting worse as other people?s code gets better. For example, wrapping your Javascript code in anonymous namespace is good practice, but it often removes hooks on which you relied and you need to come up with a new solution.

My work often feels like war of attrition, which is odd because there is no enemy. We work to complement blogging platforms, not replace them.

Surely it is time we do better.

A month with Nokia N900

Title says it. A month is enough time to get a better understanding of the device and to get asked repeatedly about my impressions. Many have wrote theirs, so I doubt I will be telling anything really new. Before I go on, a short disclaimer, since my writings on this blog stay around longer than might be sensible.

I wrote this post at the start of February 2010. I believe everything I write about technology to be hopelessly out of date after 6 months, but I expect this article will be obsolete even sooner. So by the time you got around reading this, most of my gripes might not even be true anymore.

Nokia N900 is an uncut diamond. A wonderful thing made by talented designers that has quite a few rough edges, not all of them in device. I wouldn’t recommend it to most people, but to some of you it might become your favorite computer. It goes with me almost anywhere.

If you want a rock solid phone, then this device is not for you. I was unlucky to be in minority of people who experienced constant reboots. By constant I mean few times every hour.? My Nokia also lacked a 2GB partition, which meant I was constantly running out of space in which to install applications. Both of this problems have since been fixed. I still have a problem with GSM connection occasionally completely dying, which I can fix only by manual reboot. I’m personally not bothered since I don’t use it as phone.

On the other hand updates to software are regular, with one major firmware update already, that fixed some of my problems (reboot). Annoyances of today might literally be gone by tomorrow and thus my disclaimer.

I know how much effort goes in good software and don’t want to be too negative, but email really does suck for IMAP users. Not only doesn’t it cache headers, so if you have a slow connection and a big Inbox, get used to waiting. You also can’t set sent mail, drafts or trash folders which makes it useless to me for anything but reading email. Even worse, it creates its own folders (like iPod touch ) to make a mess in your account. I am all for simplicity and avoiding needless configuration options, but it could at least get a list of folders and compare Levenshtein’s distance to common names (Sent, Sent mail…).

Gecko (Mozilla) based browser though is great, in my opinion much better than iPod’s and I completely switched my mobile browsing to N900. I am biased since unlike many I never was fond of constant zooming in and out (with pinching). My opinion might have been different if my eye-sight was poorer and I needed to zoom more.

If you are a Linux user or appreciate freedom, then it’s difficult to find a better mobile device. N900 is a Linux machine which happens to also be a phone and you have complete access to everything. There is a store (Ovi) and app manager, but you can install and run anything willing to run without permission from anybody. Terminal is loaded by default together with tools needed to prod into the system and root is one package installation away.

I dislike fixed space of iPod. N900 is only slightly better. You can expand it with SD cards, but you have to open battery cover. It looks so fragile that I don’t intend to actually do this unless absolutely necessary. Speaking of storage, as a programmer I can understand why applications can use only 2GB of it, but as user it simply looks daft.

Pair of contact and conversations applications is absolutely brilliant. Instant messaging, Skype and SMS are superbly integrated and they also feed contact application with information about your buddies found on those networks.? Install Hermes and you can update it with data from Twitter and Facebook.

Screen has higher resolution than iPod’s, but physically same (small) size, which means I’ll keep reading PDFs on my 770. Since it’s resistive instead of capacitive, it needs more pressure than iPod’s, but works better at -12 degrees centigrade ( this picture was taken with my gloves on).

Maemo has a very active and generally supportive community, but some members can also be needlessly unfriendly . Just because you know where everything is and have seen certain faux pas 100 times before, it doesn’t mean either is true for a new N900 owner with a problem.

N900 RUNS PYTHON, which was my main reason for preferring it over an Android phone. Documentation is a bit all over the place, not always current and I still haven’t found information about how to control built in cameras, but I am an optimist that this will be sorted out soon and that documentation will improve as well.

I compared N900 with diamond, but maybe a better comparison would be a sports car. If you want a polished, sedated experience then N900 is certainly not for you (yet). But if you are a tinkerer who doesn’t mind rough edges in exchange for freedom to make it do almost anything, then you should give it a spin.

There is so much more that could be said, but big picture wouldn’t change much. I haven’t talked much about UI since I simply couldn’t do it justice in few sentences. On the whole it works fine and multitasking is really great even though I think iPhone/iPad’s switch-to-where-you-were model is in my experience rarely a problem and wouldn’t be surprised if it was here to stay.

If there is anything about it you would like to know, then please ask and I’ll try to respond to it promptly.