A small review of the Nokia 770’s 2006 firmware beta

Jeff Waugh beat me to the punch on a blog about the new firmware for the Nokia 770. I have to agree with him: The Nokia 770 is ready for the enterprise. And for the home.

I installed the 2006 software update last night for the first time. While I have been coordinating with the Nokia and OpenedHand developers for a while, actually using the new software was a surprisingly pleasant experience. That’s an understatement. The software absolutely rocks.


Many criticized the 2005 firmware for its lack of responsiveness. It felt sluggish at times. Some resorted to setting up a swap partition on the memory card, which helped a bit. So far, I’d have to say that the 2006 firmware feels a lot faster and more responsive than the 2005 firmware. Setting up a swap partition is as easy as checking a box in the control panel and setting a swap size. I haven’t tried setting up swap yet, but I haven’t felt the need. I was browsing a couple webpages, streaming music, and chatting without any real problems.

Visual Improvements

The look and feel has had a number of updates, and I love the results. The old style felt more monotone.. Black, white, grey, some hints of purple. The new style is a vibrant orange. The chrome along the side is rounded, and the Web, Conversation and Application buttons now look somewhat like actual buttons that push in on one side. (I wish I had screenshots at this point.)

The style can, of course, be changed. There are four themes available to choose from, the first (and default) being the orange theme. The second is a variation on the first theme, but in an aqua color. The style of the sidebar changes slightly in this theme. It gets a kind of winterish background.

The third theme is also a variation on the first, but in blue. As in #0000FF. Very blue. The only difference I can see other than the color is that the style of the clock applet changes, which is a neat little touch.

The fourth theme resembles the original style of the 2005 firmware, which some may prefer. A lot of the graphics, such as the clock and applet borders, are changed. This style may look “more professional” to some people.

Home Screen Improvements

The Home screen will at first glance look pretty familiar to existing users, until they notice the Google search bar above the RSS reader, and the contact list under the radio player. Users can now quickly perform a Google search using the search bar (which looks as if it may support other search engines in the future?), and see the presence of their favorite contacts in the contacts list. I’ll get to that part in a bit.

Don’t like the layout of the Home screen? You can finally change it! Under the menu, there’s a Select Applets menu item that allows you to specify which applets you want to see and which you don’t, and a couple items underneath it is an Edit Layout item. With this, you can actually drag around the applets and reorder the display how you see fit. Unfortunately, it uses pixel precision, and there doesn’t appear to be any snap-to-grid of any sort. Still, it’s quite promising.

Thumb Board

The Thumb Board is the new input method introduced in the 2006 firmware. It works as a full-screen keyboard where you type by using your thumbs. To invoke it, just put pressure on an input field with your thumb. You’ll hear a little sound effect and the board will appear.

The thumb board shows the alphabet at a glance, and each key is big enough to be pressed by the tip of a thumb. Other common keys, such as the spacebar, quotes, period, comma, dash, backslash, and colon are also available. Above the letter keys are a set of tabs. Press the “Abc” tab to switch between lowercase and uppercase. The “1!+” tab shows numbers and other common symbols (@, plus, minus, question mark, exclamation mark, etc.). The third tab has less used but still common enough symbols. The more common ones are the brackets, braces, percent, etc., but there’s also a copyright symbol, trademark, fancy quotes, mid dot, and others.

The thumb board may take a little practice at first, but I found I was typing along rather well last night. It feels well thought out, and is my new input method of choice on the 770.

Messaging and Contacts

Now this is where things get cool. This software update is all about the messaging. You’re able to set up accounts on Jabber and Google Talk (I believe there will be more options in the future?) and then manage their presence through an icon on the top. While connected, you can receive IM and Google Talk voice invites. You can also send them, of course, and this is done through the new Contacts list.

The developers decided not to use a traditional buddy list, and I think that was a great move. They have cleanly integrated the concept of a buddy list into a very easy to use addressbook. Your accounts will automatically get their own special groups in the addressbook’s sidebar. Along with your personal groups and account groups are special “Online” and “Recent” groups. “Online” shows you a list of people who are online (as the name suggests). “Recent” shows a list of people you have most recently talked to.

You can add new people to your addressbook or edit the information of contacts from your IM accounts. The information you can set is about what you would expect. First name, last name, nickname, picture, e-mail addresses, IM accounts. Pretty much the bare essentials. When connected to an IM service, each entry in the addressbook that has an IM account on file will have an icon representing the person or account’s presence.

Tap a person and their details come up, along with Call, Chat, and E-mail buttons. Press Call to initiate a Google Talk voice conversation with them. Press Chat to begin an IM conversation. Press e-mail to e-mail. It doesn’t get much more straightforward than that, does it?

I haven’t tried to call anybody yet, but the chat conversatoins work great. The 770 will play a little chime and subtly flash an icon when someone says something in a chat. It’s both easy to notice and easy to choose to ignore. Just how an IM client should be 🙂

The contact list remembers people who were found to be in your buddy lists last time you connected. If you’re not connected to an IM service or even to the internet, initiating a chat will attempt to auto-connect to both.

Package Manager

Finally! A real package manager! The package manager that came with the 2005 update was problematic, and heaven forbid you had an error in your package. Sometimes you couldn’t even uninstall it. The new package manager is clean, easy to use, and actually supports package feeds. I added FBReader’s feed last night as a test. It updated its list, showed FBReader as available (along with a version number and brief summary), and a couple taps later I had it installed.

After installing a package, it will ask where you would like to place the menu item. The placement can be re-editted later. This is a warm welcome to people who are used to digging around in their Extras menu for all sorts of different programs.


I’m pleased to say that Galago is being used for integrating presence information and such into the addressbook. This is the first real third party use of Galago. The developers from Nokia and OpenedHand have been key in helping to get Galago into a mature state. There’s a lot more work to do, and various optimizations are being made.

I’d like to see us do on the desktop what Nokia and OpenedHand have managed to do extremely well on the 770.


Awesome release. The 2006 firmware is a work of art… And it’s still only a beta. I can’t wait to see the final release, and then I will be recommending this to a lot of people. If you have a 770, download the new firmware and give it a shot.

New libnotify, notification-daemon and notify-python releases

I’m very tired, so I’ll keep this brief.

I just put out libnotify 0.4.0, notification-daemon 0.3.5, and notify-python 0.1.0 releases. Most of the really annoying bugs people have reported have been fixed. More information is available on the news post.

I made a decision that will be unpopular to some, and I expect some disagreement on it. notification-daemon 0.3.5 does not ship with the Bubble theme. A large number of the problems people have reported to me on IRC and in e-mail centered around this theme, and until I have the time to give it the attention it needs, I’m removing it from the default install. It’s still in SVN and the tarball, and development will resume on it at a later date. However, I want to give people the best out-of-the-box experience as possible, and the Bubble theme currently makes that hard. If people want to chip in and help, you’re more than welcome.

Aside from that, it’s a very good release and I highly recommend people update. As always, please make sure to report bugs.

I have a couple of neat things I plan to work on. One is a little event notifier for scheduled events on online calendars (30Boxes.com to start). This will be using the new libnotify Python bindings. If it proves useful, I hope to add Google Calendar support as well. I’ll make some sort of announcement once I get a prototype working.

Galago 0.5.0! Can I sleep now?

I finally, after a long 8 months of development, put out Galago 0.5.0. The list of changes are huge, but I feel it’s a pretty solid release. I’ve been wanting to get this release out for a while now, but I kept finding one more thing to fix. I finally bit the bullet and prepared the release. Oh, and this one includes Python bindings!

I have a news post at the Galago site talking a bit about the release and linking to release notes.

I feel like a weight has been lifted from my shoulders. I’m going to sleep well tonight.

Alpha channels and release schedules

  • GTK+ and semi-transparent windows

    Mike Hearn wrote a blog entry on writing GTK+ applications that provide semi-transparent Cairo-rendered windows. He suggests a SexyWindow class for libsexy, which actually fits in with some of my plans nicely. More on this… someday.

  • Galago 0.5.0.. Almost

    Galago 0.5.0 is about to be released. I’ve said this for a while, but it’s actually happening now. The only thing left is to get the GalagoGtk# bindings out, but I’ve ran into a problem… I want to call the namespace Galago.Gtk, but then the GAPI-generated code tries to use Gtk.Widget and such, which causes a lookup in Galago.Gtk. I don’t know how to fix this, and may have to go back to the GalagoGtk namespace. Any suggestions?

  • Thanks Federico

    I’m somewhat borrowing Federico’s blog entry format on a trial basis for some posts. I’ve grown to like it. Helps to stay organized without being too verbose.

A few project updates

I’ve been putting off several posts for a few days now, due to just being busy with things. So, here we go.

Notification Framework

I just put out a couple of good releases of notification-daemon and libnotify. A few days ago, I released version 0.3.2 of both components, and tonight I put out notification-daemon v0.3.3, which contains a few nice bug fixes such as a fix to prevent notifications when the screen saver is active or when something is running full-screen. The style of the notifications has been changed to resemble the look from notification-daemon v0.2.x. It now supports theme engines, so that other looks can be developed. The protocol has improved and stabilised a bit, and the API and general code of both components have been cleaned up, thanks to J5’s work.


Galago’s been on hold lately due to work and trying to get the new notification-daemon and libnotify ready for distros. Development has picked up again, and I’m hoping I have very little to do before I can put out the 0.5.0 releases of all the components. Finally, libgalago will be GLib/GObject-based, and the API will be a lot more sane. Plus, Python bindings! Yay!

Oh, and I’m moving to Trac for our bug tracking (see trac.galago-project.org). This is real nice, because I can now reference bugs in commit messages and they’ll close automatically with the commit message. It’s also quite clean and easy to use. I’m slowly moving some bugs over, but I’ll continue to monitor the bugzilla for a while.


Remember those screenshots of our tag integration I posted? It too has been on hold, but it’s far from vaporware. We’re calling it leaftag, and I think our logo is somewhat cute :). I have very little left to do before the library is released, and I should be able to redo the Nautilus support quickly. I’ve been using the tagging almost every day. Now I just need to find the time to get this ready. Maybe at one of these upcoming hackfests I’ve been doing (and really hope to do more) with friends.


Busy busy busy, but good. I’m working on some pretty exciting stuff. More about this later 🙂

Oh, and someone needs to remind me to put up a picture of our cool new Workstation 5.5 sweaters featuring Mario!

Goings Ons

Hard Day in GNOME

All day long, people have been talking on IRC about the Novell lay-offs. It’s been sad to see, and as hard as it was for the people who were let go, I’m sure it was just as hard for those that had to let people go. My condolences to everyone who’s been affected by this.

I’ve talked to a few people individually about this, but it’s been recommended to me by a couple of people that perhaps using Planet GNOME would be the best way to reach everyone interested…

I’d like to offer to anyone affected by this who is looking for a job to send me your resume if you’re interested in a job at VMware. I can make sure it goes to a human being who will actually read it, rather than in some queue somewhere. We’re looking for good people, and the company is nice to work at. Although the Palo Alto offices are where all the interesting things happen for the Linux desktop development, some jobs are available at our new Cambridge office. So if you’re looking for a fun job where you can do interesting work with good people, and this interests you, even a little, we can try to get the ball rolling. To everyone else, best of luck. I don’t doubt that you will all find good jobs soon, and everyone appreciates what has been done so far by everyone in the Ximian team.

Nokia 770

My Nokia 770 came today. I haven’t had much time to play with it, but it’s quite nice so far. Cute little device, and I’m eager to hack on it. I have a couple of games I’ve written or PDAs that I hope to port. Taco would be fun to port to it, if it had cairo (which I don’t believe it does? Correct me if I’m wrong!).


A lot of work has been done in Galago SVN the past couple of weeks. A lot of the code has been cleaned up and the API is in the process of being fine-tuned. Python bindings are being written. libgalago is moving to glib. All neat stuff. I’ll post more when I get closer to being finished, but this is very cool:

for service in galago.core_get_services():
    print service.get_name()
    for account in service.get_accounts():
        print account.get_username()

Just so easy. That’s not the final API, though. The core_get_services() part will change. Anyhow, fun stuff.

galago.info is no more, for a while

I discovered last night that galago.info had expired just a couple of days ago. I was a bit shocked by this and looked through my inbox for expiration notices, but could find none. They may have been caught by the spam filter :(. So, it’s in this state where it’s unavailable for everybody (myself included) for 35 days. After 35 days, it’s available for purchase again. I could pay $90 to get it back now, it turns out, but that just seems too much for the domain.

So, I’ve moved to galago-project.org. Please update your bookmarks and check out the new svn repository. This covers all galago work and all notification work. Sorry for the inconvenience. It sucks.