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.

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.

Mood: Asleep

It’s way too early for me. I got up at 7:00, which is not something I do very often at all. I’m groggy and wearing my Destroy Mornings shirt. Still, it’s for a good cause! I’m seeing my girlfriend in half an hour or so and heading back home to visit family and friends. My little sister Jenna is turning five years old. I could have sworn that she was this little thing that practically fit in my hands only a few days ago, but somehow, she turned five.

I bought her this very cool Vtech Nitro Notebook, which looks and feels like a laptop (albeit a cheap one). She’s been wanting a real computer for a while, and though I won’t buy her a real one just yet, this will feel close enough for her. She knows the difference between real computers and toys, but she’ll still like it.

This thing has 80 built-in activities. English, Spanish, science, social studies, math, etc. It even has a My Tools area where you can populate an addressbook of names, phone numbers, and e-mail addresses. There’s a lot to this little device. One of the features they advertise that I like, though I have not tested it, is that the difficulty apparently adjusts to the level at which the user is at. So if she’s having trouble in an area, it’s supposed to become easier so she can begin to complete it, and then the difficulty will eventually go back up. We can check how she’s doing with this built-in progress report. On top of all this, it has some games and stories.

Cool toy. I want one for myself 🙂


Last Wednesday at SVLUG, I gave a talk (well, more of an interview in the format of The Actors Studio) on Galago, Project Soylent, the Desktop Notifications spec libsexy, and some other stuff (demos of Beagle and such). We scheduled this something like six months ago, and I was nervous as hell the day of the talk. It actually went really well, though, and people seemed genuinely interested. I had a lot of questions at the end about the various things I’m doing and plan to do. I wish I had it in some re-broadcastable format.

Heading out soon, so I’m wrapping this up for now.

I Can’t Believe It’s Not Chicken, now in gelatin style

Something I threw together the other night in Inkscape


I finally gave up with the whole “playing everything politically safe” with Galago and am now moving the whole library to GLib. It’ll take some time, and there’s a few things I need to figure out first. For example, a very useful feature that Galago’s object model let you do was connect a signal handler on a class itself, which would call the handler any time the signal of any object of that class was emitted. This of course didn’t translate to other object models or bindings well, and certainly doesn’t translate to GLib at all.

One of my potential solutions was to create a Manager class for each class where developers would want to do this. The Managers would be singletons and objects would emit signals on them as well as themselves. Maybe Manager is a bad name of the type of object… I’m still not sure what to do about this. It’s a very useful feature though, and the only alternative for everything that currently uses this is to set up a bunch of signal handlers for parent containers to know when these objects are added/removed and then register/unregister signal handlers every time the objects of interest are created/destroyed. It’s a lot of messy code, and would take up more memory than a manager interface. Still got to play around with the idea more…


I’ve begun work on porting libnotify and notification-daemon to D-BUS 0.3x. I plan to use a simple abstraction layer consisting of macros to keep compatibility with D-BUS 0.23.x for now. I have a lot of work to do this week at VMware, so I don’t have a whole lot of time to devote to it right now.

Mike Hearn and I had a talk earlier about extending the notifications spec. Sorry, we’re still not going to provide a way to embed Mozilla. One thing people have been wanting, though, is to be able to associate a notification with something on the screen, say, a notification icon. So what we’re going to do is provide support for X, Y coordinate hints. Since they are hints, the renderer will be able to just ignore them if they want. However, this would allow the battery applet (for example) to say, “I have a notification, and here’s my location!” and the renderer could pop up a notification near there with, say, a little arrow pointing to that X, Y location. This could be useful in a few situations, though hopefully it won’t be abused.

I have some future plans for the notification daemon. I’m going to put together a (for now at least) experimental daemon that has two types of plugins: Render plugins and Transition plugins.

The Render plugins will be responsible for rendering the notification. They could do the nifty folding thing that appeared on Planet GNOME a while back. They could do a bar sitting at the bottom of the screen, semi-transparent. They could do toaster popups. Whatever.

Transition plugins handle how the notification will be displayed. They could just show a notification, fade it in, slide it in, make a poof of smoke.

Again, it’ll be a while before I can start on this, due to life just being busy right now.


And this is one other reason why life is busy. My girlfriend Jamie and I are going with my family to Disneyland after next week. Unfortunately, this week is spent on some deadlines at work. But that’s just going to make the next week even more fun 🙂 We’re staying at the Disneyland Hotel, which will be a first for both of us. I’ll have plenty of pics when I return.

Weekend of Yay!



So I had the most amazing weekend. My girlfriend Jamie came down to visit. We hung out for a bit on Friday and then went to a nice Japanese restaurant near my apartment called Fuki Sushi. It was a very nice looking place, decorative, and the waitresses were even wearing kimonos. Next time we go, we’re going to reserve a spot in the back where we take off our shoes and eat sitting down on the ground at a table. The rest of the night, we just cuddled, watching anime and Dead Like Me.

Saturday, we got up and, after a while, took a tour of where I work. While there, we played some DDR and had some snacks. We then headed to the other building our company owns and watched some ducks splash around in one of the ponds. We walked around in there and saw that building, and just kind of sat around talking. Next, we went to Frys Electronics. While there, we picked up a copy of Soul Calibur 2, which we played later that night. She kicked my ass.

Our next stop was to a furniture store that I went to in November. The people who ran the place actually remembered me, and even remembered where I moved from. We were a bit shocked there. Anyhow, I picked up a couple of book shelves and a nice little wine rack.

For dinner, I took her to The Cheesecake Factory. Despite the 50 minute wait, it was really good, and she seemed to like it, especially the cheesecake 🙂 We spent the rest of the night playing Soul Calibur and just kind of goofing around, talking about things, etc.

Sunday morning, she had to leave. We had a nice breakfast before she left, but it was hard to say goodbye. All in all, though, it was a great visit. We both enjoyed ourselves immensely, and I can’t wait until we do it again.


I’ve been playing with Fyre quite a bit lately. It’s a very awesome program, and they just released version 1.0.0. Cluster support and undos were just added (thanks scanline and purple_cow!). It’s a great way to waste some time 🙂

Electric Storm
Electric Storm


I’m also contemplating putting out a Galago release soon. It’s been kind of semi-frozen for a long time. Work’s been done, but there’s not much else to do until people start playing with it. So I’m going to test it with D-BUS CVS and see how it works, and then start putting together some autopackages together. I need someone to build Ubuntu debs. I’d rather not spend much time on that myself. If anyone’s interested in packaging for any distro, please let me know, and feel free to drop by #galago on

Scroll to Top