Galago

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.

Performance

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.

Galago!

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.

Overall…

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.

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

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.

New libnotify, notification-daemon and notify-python releases Read More »

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.

Galago 0.5.0! Can I sleep now? Read More »

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

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.

Leaftag

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.

VMware

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!

A few project updates Read More »

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!).

Galago

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.

Goings Ons Read More »

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.

galago.info is no more, for a while Read More »

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

Dinner!
Something I threw together the other night in Inkscape

Galago

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…

Notifications

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.

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

The self-planted rumors are true!

So over the past few hours, I managed to put together a new Galago release. There was a lot done in this release, and I wouldn’t be surprised if I broke stuff, but at least now it should work with both D-BUS 0.23.x and D-BUS 0.3x. I have neat things planned for the next release, but as I’m basically going to be away from computers for a week, spending time with Jamie, I probably won’t get to any Galago hacking.

Releases of this magnitude take forever.. There’s just so many components to package up. I need to get a small release team together. Any packagers want to package things up for Fedora Core or some other distro?

I also need to find a sane way to announce releases for several independently versioned apps and libs at once. Shame I can’t really give them each individual release names without being too confusing. Hmm, and I need to get screenshots of the contact chooser dialog up. Lots to do still.

The self-planted rumors are true! Read More »

If you’re going to invest, don’t invest in llamas

The Motley Fool had some great 401(K) advice. They say that if your 401(K) lets you invest in llamas, consider moving to a job where the owner is not insane, as llamas cannot possibly help your retirement. I think they understimate the power of the llama.

Galago with D-BUS 0.30

I’ve been hacking a bit on Galago’s D-BUS 0.30 support the past couple of days, and although it’s not yet complete, good progress has been made. Most things now work, with the exception of a few bugs here and there.

Thanks to D-BUS 0.30’s new struct container support, I can really start to clean up the protocol. However, for the time-being, not much protocol-wise has changed. I’ve been developing a small abstraction layer to minimize the number if D-BUS versioning checks in the code. You see, I’m not dropping D-BUS 0.23.x support just yet. Not until more desktops have 0.30+ installed.

Galago in VMware Workstation 5

I do all development nowadays on my laptop, which runs Ubuntu Hoary (containing D-BUS 0.23.x). I needed to be able to quickly and easily move back and forth between this and a distro with D-BUS 0.30.x support for testing, and I certainly didn’t want to set up a new distro on one of my other computers.

I ended up installing Fedora Core 4 test 3 inside a VM using VMware Workstation 5. It’s working beautifully, and just sits on one of my virtual desktops taking up a good portion of the screen. The theme and everything matches, so for the most part it doesn’t even feel like I’m using another virtual computer. I’ve been able to make a D-BUS 0.30 change, submit the code, switch virtual desktops, and make sure the 0.23.x support still works. And vice-versa. It truly makes this kind of development a lot easier to deal with.

Also, since I’ve been using my laptop and taking that to work with me, I’m able to just click Suspend on the VM when I need to power down to travel with it. Gotta love that. I wish I had suspend working on my laptop itself.

If you’re going to invest, don’t invest in llamas Read More »

Scroll to Top