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

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!

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.

Beagle with Galago support

The release of Beagle 0.0.12 rocks. Among the many reasons is support for Galago, provided by Lukas Lipka. This just kicks ass. Simple, informative, useful integration that doesn’t get in your way. Now if some other IM clients will step up and provide at least optional support for Galago, non-Gaim users will be able to get this functionality as well.

Beagle with Galago support

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.

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