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.

Disneyland

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.

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.

Everybody’s hiring!

Wow, lots of “We’re looking to hire” posts on Planet GNOME today. So I might as well say, we, as in VMware, are looking to hire too.

I would try to really sell this place and embellish everything, but there’s no need. The company is so much fun to work at, and every manager I have talked to has been friendly, helpful, and without an ego problem. There are lots of little perks. Free snack food all day long, every day, once-a-week catered lunches, video game systems, DDR, weekly sports of several types during work hours, very flexible hours, weekly beer bashes, and company events (such as the company paying for us to see Star Wars Episode 3, picnics, etc.), to name a few.

I work in the Hosted UI group as a Linux developer. We hack on the hosted products, such as Workstation and ACE. The team is great. We do things together all the time, grab lunch and just BS the time away. We’re pretty productive, though, and the people on the team are all very smart. Every one of the Linux developers comes from open source, specifically from a Gtk project. The Windows guys know their stuff as well. All in all, it’s a great little community that is just a part of a larger great community.

The general rule is that every full-time developer gets an office, which is shared with one other developer. In our team, we all have window offices. Makes for a nice atmosphere.

The pay is very nice, and the area is great too, if you live in Palo Alto. We have a currently very small Boston office we’re setting up, but I honestly don’t know the details with that. It’s not very big at the moment. The team I’m in is exclusively in Palo Alto.

I’m not exaggerating a bit when I say that VMware is the type of company I have always dreamed about working at. Most days, I look forward to going to work, unless there’s an annoying bug I’ve spent days attempting to fix without success. 🙂 We are picky about who we hire, but we are definitely looking for some skilled Gtk+ hackers. We’re open source and Linux friendly, and try to contribute back in one way or another when possible.

If anyone’s interested, please contact me.

Snap, Crackle, Pop!

For about two weeks now, I’ve noticed that the lights in my apartment have been flickering a lot. I tried changing the bulbs and it did no good. Eventually I concluded that it was the portable heater causing it, until it started having this problem when the heater was off. Several times a day, the circuit breaker has been tripping. It’s all been getting on my nerves.

Today I noticed the lights fade off and realized that something was very wrong here. I headed to the breaker box and saw that the breaker was not tripped. However, there was a very faint smell, and a crackling noise. Uh oh. I quickly flipped it to off. Or rather, I slid it. No longer does it actually toggle. I can slide the switch to any position I want.

Fortunately, the crackling stopped and the smell quickly faded away. There was no heat on the breaker box. So now I have to get someone to fix this first thing in the morning. My fridge is plugged into this circuit, and I’m a bit worried about things going bad. I do have a mini fridge I’m putting some things like meat in. I guess I’m also worried about a potential fire. Ugh. At least now I know what the cause is, and hopefully it can be fixed quickly… Monday’s starting early!

Take back your vacation!

Wow, what a fun week. VMware bought tickets for everyone to go see Star Wars Episode 3 for yesterday. Yesterday’s whole day basically included us going to the movie theater, standing in line, watching the movie, and then either going home or doing a little bit of work and then going home. All in all, it was a relaxed today. And I must say, I liked Episode 3.

Today was another non-work day. In celebration of our Workstation 5 release, we spent the day at Santa Cruz Beach Boardwalk. We had food, volleyball, rides, laser tag, miniature golf, and VMware beach bags, all paid for by the company. The day ended way too soon, but it was so much fun. It was my first time going there, but I fully plan to go back with Jamie or family at some point.

Back to the work Monday, though. What’s kinda cool is that these two days of relaxation were the break I needed to come up with some solutions to coding problems I’ve been dealing with the first part of this week. By next week, my current project should be a lot further along 🙂

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.

Finally, a modern desktop

I updated my main desktop today, which I haven’t really used since getting my laptop. It went from Fedora Core 2 with gnome 2.8cvs to Ubuntu Hoary. The operation was a success and the patient is in recovery, except with one casualty: I lost my last 5 months of e-mail. I have a script to auto-archive e-mail, so I have the last few years worth, but I didn’t back up /var/mail… *sigh* So, if anybody e-mailed me something important, please send it again.

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.

Chippy the Perfectly Sane

Figure I’d get in on this as well. Not that I’ve been prodded too much by Chris Lee or anything.

This is how I feel some days, you know, after dealing with a massive network failure, code that just won’t work, or certain users.

Chippy the Sane

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
Scroll to Top