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.

The secret is in the easternmost peninsula

I’ve been hacking away at various pieces of Galago lately at an attempt to improve the API and Gtk+ widgets. This is leading to some very cool applications and utilities I’m developing. Hopefully if I can get some of this set up the way I want soon, I’ll get another release put together.

A wiki has been put up containing some installation documentation, a preliminary FAQ, and other documentation. It’s also hosting the wiki for Project Soylent, which we’re starting to develop some decent plans for (they’re not on the wiki yet, just in some discussions).

My latest cool Gtk-related Galago work is the Contact Chooser. I love this thing, seriously. It’s not finished yet, but is close, and is simple and easy to work with. The screenshots are fairly self-explanatory.

Contact Chooser with MSN contacts

Contact Chooser with people list

Contact Chooser with a person's accounts

If you haven’t guessed, it’s a widget and dialog that resembles the Gtk+ file chooser, but it’s designed to select contacts. The gnome-presence-applet will be using this fairly soon. I need to work on some of the speed issues, but they’re not too major.

libgalago got some major code cleanups these past couple of weeks. A lot of the communication code was abstracted, and as a result, several hundred lines of code have been removed. This will dramatically ease the porting effort to D-BUS 0.33. I plan to keep compatibility with D-BUS 0.23.x as well. I’m not sure when exactly all this will be done, but definitely before the upcoming stable release.

I’ll post some screenshots of the design we’re considering for Project Soylent once we have something I feel is worth demoing.

Galago: Hey! Where’s the cream filling?!

I felt especially motivated today and started work on an API I came up with in the shower. I spent hours hacking on libgalago and, when I was done, I had reduced the codebase by over 800 lines, all of which consisted of D-BUS 0.23.x-specific communication code. There’s now a much cleaner API abstraction over D-BUS, which could easily in the future be expanded to not be D-BUS-specific, if that ended up becoming important (say, a Windows port of MacOS X port without D-BUS). Furthermore, it should now be much simpler to get Galago working cleanly with D-BUS 0.31+. I’m not going to be able to work on that right away, but it’ll happen sometime before libgalago 0.4.0.

The abstraction still has some work to go, but most of the codebase for libgalago has moved to it. I still don’t know what I’m going to do for galago-daemon’s D-BUS 0.31+ support, but it’s probably not as huge an effor as I’m thinking. Worst case, I do some more abstraction work, but it won’t be as bad as libgalago’s.

Also, I hacked up contact-lookup-applet a few days ago to check for libgalago at compile time and to use Galago for the Instant Messaging section of the Address Card dialog. If Galago’s dead due to some bug, it falls back on the default implementation of just showing a protocol icon. There is a patch available for now, and I’m hoping that perhaps support can be added to CVS at some point. Next stop, gnome-present-applet UI work and Evolution.

Contact Lookup Applet

Galago Release and SCO

Well, I finally did it. The 0.3.0: Wrath of Squirrel release of Galago is out! No, seriously. It needs some testing, and I have a bunch of neat little projects in the works. If you’re in the Silicon Valley area, I’ll be giving a presentation at SVLUG in the near future. That is, if I can get everything working in time.

There’s been some concern of code theft in a project I’m involved in, so we put in place an SVN repository wrapping my Source COde authentication tool. This is an old project of mine, and for those interested, you can read about it. With SCO, you’ll never have to worry about code theft again.

New Galago Hosting

I finally finished the transition to my new Linode account for Galago’s website and SVN repository. It should hopefully be more reliable, as I’ll have direct access to all services and account maintenance.

If you had an account on the old freedesktop.org SVN repository and need a new account, please contact me with your username/password, and I’ll set it up. Also, please update any bookmarks or trees. The new site URL is at http://www.galago.info, and the SVN URL is http://svn.galago.info.

Various Updates

So a few things have taken place lately, and I haven’t blogged about them because I’m just really busy (or lazy, depending).

Galago and the fd.o desktop notifications reference implementation that Mike Hearn and I wrote have been proposed for GNOME 2.10. As I’m still new to this whole process, I don’t know exactly what to expect, but time will tell.

For the first time in a long time, I actually wrote up birthday and Christmas wishlists, as I usually get asked by everybody every year. I figured I might as well post them, as I find it useful to look at other people’s for ideas. I have them on Amazon, ThinkGeek, and NewEgg.com.

At sri’s constant urging (it’s appreciated!) I’ve been working on a couple of articles for GNOME Journal. Hopefully I’ll actually be happy enough with one of these and have it finished by tomorrow.

And I guess that’s it for now.

Galago .NET bindings and other news

I am pleased to announce that due to some, um.. gentle nudging on Nat’s part, work on the Galago .NET bindings has started. There isn’t a whole lot there yet, but it’s getting there. I hope to have something usable this weekend, when I actually have time to hack on this.

The Galago release is still being held up by two (possibly very related) critical bugs in galago-daemon. Once I find those, and finish up the avatar support (almost done!), it’ll finally be ready to release. The Evolution integration will be finished later (although I’m near completion), and I’ll be providing packages as soon as that’s done.