Vista’s gremlins, now on Linux

Vista is an interesting operating system. They have done a number of very cool things with it, and yet it has confused and frustrated me in all new ways. I have been running Vista in a VM for a little while now. I think in many ways it is a better operating system. And there is one thing Vista comes with that beats us hands-down.

It has a Gremlin clock.

Vista's Gremlin skin

The little clock applet on the side has several skins, and one of them is a pink, furry gremlin. I fell in love with this little guy and decided that we must have a Gremlin clock skin ourselves. So I set out to create one, using MacSlow’s cairo-clock. After a couple hours of work, I ended up with this:

I think it’s a cute little thing. I hope others like it too. Just download it and untar into $HOME/.cairo-clock/themes or /usr/share/cairo-clock/themes.

A couple of notes about the theme. cairo-clock doesn’t tend to like themes with different widths and heights and expects the clock face to be in the center of the images. Since the clock face on the Gremlin theme is a bit lower, near the bottom of the gremlin, the theme images had to be made to give a lot of whitespace below the clock. The actual gremlin is on the upper-half of the images. This is not a huge problem except that there appears to be a bug where you can click and drag the clock on parts of the lower region, where it’s completely transparent. Hopefully this isn’t a big problem for most people.

Oh, and MacSlow, if you want to bundle this as part of cairo-clock, I’d be all for it 😉

Now we’re on par with Vista. Yep.

Relaxing with goombas

Sometimes you just have to take a few days and stop working. I’ve been working too much lately, and I know I have a lot more to work on (new leaftag, Galago, and Notification releases). So tonight was a good opportunity to just not really do anything. Except draw Goombas.

I find myself wanting to put together a Planet site with a Mario Bros theme. I’ve been on a weird Mario Bros. and Legend of Zelda kick lately. So yeah, the hackergotchies could be characters from the various Mario Bros. games, and the whole site could resemble the overworld. Mmm, fun and weird images in my head. Probably time to sleep.

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.

Weekend of Yay!

Jamie

Jamie

So I had the most amazing weekend. My girlfriend Jamie came down to visit. We hung out for a bit on Friday and then went to a nice Japanese restaurant near my apartment called Fuki Sushi. It was a very nice looking place, decorative, and the waitresses were even wearing kimonos. Next time we go, we’re going to reserve a spot in the back where we take off our shoes and eat sitting down on the ground at a table. The rest of the night, we just cuddled, watching anime and Dead Like Me.

Saturday, we got up and, after a while, took a tour of where I work. While there, we played some DDR and had some snacks. We then headed to the other building our company owns and watched some ducks splash around in one of the ponds. We walked around in there and saw that building, and just kind of sat around talking. Next, we went to Frys Electronics. While there, we picked up a copy of Soul Calibur 2, which we played later that night. She kicked my ass.

Our next stop was to a furniture store that I went to in November. The people who ran the place actually remembered me, and even remembered where I moved from. We were a bit shocked there. Anyhow, I picked up a couple of book shelves and a nice little wine rack.

For dinner, I took her to The Cheesecake Factory. Despite the 50 minute wait, it was really good, and she seemed to like it, especially the cheesecake 🙂 We spent the rest of the night playing Soul Calibur and just kind of goofing around, talking about things, etc.

Sunday morning, she had to leave. We had a nice breakfast before she left, but it was hard to say goodbye. All in all, though, it was a great visit. We both enjoyed ourselves immensely, and I can’t wait until we do it again.

Fyre

I’ve been playing with Fyre quite a bit lately. It’s a very awesome program, and they just released version 1.0.0. Cluster support and undos were just added (thanks scanline and purple_cow!). It’s a great way to waste some time 🙂

Electric Storm
Electric Storm

Galago

I’m also contemplating putting out a Galago release soon. It’s been kind of semi-frozen for a long time. Work’s been done, but there’s not much else to do until people start playing with it. So I’m going to test it with D-BUS CVS and see how it works, and then start putting together some autopackages together. I need someone to build Ubuntu debs. I’d rather not spend much time on that myself. If anyone’s interested in packaging for any distro, please let me know, and feel free to drop by #galago on irc.freenode.net.