I’m finally heading to the Boston GNOME Summit! I’ve wanted to go for years, and people have asked me to attend, but due to school and such it was just never possible. However, this year VMware is sending a few of us to go. Alex Graveley, Philip Langdale, my girlfriend Jamie, and myself are all going, and will be there Friday night.
We might give a small talk on our experience in integrating our product with the GNOME desktop, and I’ve been asked by a few people to give a quick talk and demo of Galago with Tomboy, Beagle, Gaim and Evolution integration (and hopefully Gossip at that point too).
I look forward to going and meeting all these great people who I’ve only talked to through IRC and e-mail. It should be a fun weekend.
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.
Woot! We finally released libview, VMware’s Incredibly Exciting Widgets! This has been very long planned, but it’s finally out. libview consists of many of the useful generic widgets we use inside the VMware Workstation code base. We have 16 widgets and one utility class currently in there, and have a list of widgets we plan to move into libview.
Now, this is not just a code dump, like some other companies have done. We will not be developing these widgets any further inside our own tree at VMware. libview on SourceForge is where the widgets will be developed from now on. They are under the MIT license, so feel free to use them for whatever. We will be setting up a web page and a listserv and stuff in the near future, and will commit some more widgets, bug fixes, and test apps.
Most of the widgets are written in C++ using gtkmm, so most projects won’t be able to take advantage of them as-is. We expect a lot of people will be re-implementing the parts they need for some projects. However, if you’re a project that uses the excellent gtkmm, these should Just Work (TM).
For a description of what’s included, see Philip’s blog, as he went into a bit of detail.
Philip Langdale, one of the Galeon developers and one of our very talented Linux UI developers at VMware posted a couple of blog entries describing the various problems that we, as an ISV, have had with maintaining compatibility amongst a wide range of Linux distributions, from Red Hat 7.2 to modern-day 64-bit distros. It’s a good read, and explains a bit about why we bundle so much with VMware and why some people have the bugs they have.
libsexy just got sexier. David Trowbridge (of Fyre, xchat-gnome and BZFlag fame) wrote a cool GtkEntry subclass that provides inline spell-checking. It works just like GtkTextView with GtkSpell. True to the name of the library it resides in, SexySpellEntry is very sexy.
I just put out a release of libsexy and the new GTKMM bindings, libsexymm (pronounced “libsexy, mmmmmmmmm”). The files will probably move at some point, but for now, they’re available here.
I moved GalagoGtkIconEntry into libsexy, and renamed it SexyIconEntry. Also, SexyUrlLabel has been fixed up to allow for hyperlinks that span multiple lines. Thanks to everyone who pushed me in the right direction there. It’s also been optimized a little.
This is not a stable library. I imagine I’ll break things without soname bumps right away, but maybe not. Who knows? This is just a fun library, but useful.
Obligatory screenshots follow.
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.
I’ve been needing a label widget with support for embedded URLs lately for a couple of projects, but nothing was available that met my needs. So last night I put together libsexy, which will be my testing ground for experimental widgets that do things that I consider very wrong but very cool.
The first widget I put into libsexy is SexyUrlLabel. It’s an actual GtkLabel subclass with a custom sexy_url_label_set_markup() function. This function takes the same markup that gtk_label_set_markup() takes, except it also groks <a href=”…”>…<a>. The link turns into the standard blue text with an underline. Moving the mouse over the link changes the cursor to the standard hand cursor. Clicking it will emit a url_clicked signal, and right-clicking it will pop up a menu with “Open Link” and “Copy Link Address.”
The only problem I have encountered so far is that if you have a link that spans multiple lines, the hyperlink won’t work on the second line except for parts below the top line’s link. I’d like to blame Pango for this, but I know someone will tell me a way to make this work 🙂 I’m currently getting the X and Y coordinates based on the range that Pango specifies for the attribute, but this doesn’t handle line wraps well. Suggestions are welcome.
This will be going into notification-daemon probably today. I won’t be around after today until next Saturday or Sunday. I’m going to Disneyland with my girlfriend and my family, and won’t have net access (nor do I want it). If anyone messes around with the widget and has any patches, please send them to me and I’ll get back to you when I’m next available.
Update: notification-daemon now uses SexyUrlLabel. Markup (as per the spec) is supported and links are supported. Have fun!
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 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.
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.