Pretty new notifications… And a release!

I’ve been inspired by the December GNOME mockups. A lot of them are quite nice, and in the area of notifications, it had some good ideas on sprucing up the look and feel. So I present to you, notification-daemon v0.3.4!

Along with the usual assortment of bug fixes, I’ve improved the style quite a bit. There’s now a countdown timer on notifications with actions, a close button, themed urgency-based stripes, and actual buttons.

Before After
Old urgency stripesOld icons and actions New urgency stripesNew icons and actions

Mood: Asleep

It’s way too early for me. I got up at 7:00, which is not something I do very often at all. I’m groggy and wearing my Destroy Mornings shirt. Still, it’s for a good cause! I’m seeing my girlfriend in half an hour or so and heading back home to visit family and friends. My little sister Jenna is turning five years old. I could have sworn that she was this little thing that practically fit in my hands only a few days ago, but somehow, she turned five.

I bought her this very cool Vtech Nitro Notebook, which looks and feels like a laptop (albeit a cheap one). She’s been wanting a real computer for a while, and though I won’t buy her a real one just yet, this will feel close enough for her. She knows the difference between real computers and toys, but she’ll still like it.

This thing has 80 built-in activities. English, Spanish, science, social studies, math, etc. It even has a My Tools area where you can populate an addressbook of names, phone numbers, and e-mail addresses. There’s a lot to this little device. One of the features they advertise that I like, though I have not tested it, is that the difficulty apparently adjusts to the level at which the user is at. So if she’s having trouble in an area, it’s supposed to become easier so she can begin to complete it, and then the difficulty will eventually go back up. We can check how she’s doing with this built-in progress report. On top of all this, it has some games and stories.

Cool toy. I want one for myself 🙂

SVLUG

Last Wednesday at SVLUG, I gave a talk (well, more of an interview in the format of The Actors Studio) on Galago, Project Soylent, the Desktop Notifications spec libsexy, and some other stuff (demos of Beagle and such). We scheduled this something like six months ago, and I was nervous as hell the day of the talk. It actually went really well, though, and people seemed genuinely interested. I had a lot of questions at the end about the various things I’m doing and plan to do. I wish I had it in some re-broadcastable format.

Heading out soon, so I’m wrapping this up for now.

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.

Food For Geeks

I’ve been discussing a small site I plan to setup with some people. The site is called Food for Geeks, and is essentially a food donation system for Linux hackers. It works like other monetary donation systems, but instead of specifying an amount to send the person, you’re presented with their favorite foods. You don’t actually donate the food. Rather, you donate the money for a type of food, and it goes into the person’s PayPal account.

Really, it’s a wrapper for PayPal, but more geared toward rewarding food. I feel this would be more personal and fun, and gives the donator some idea as to what the person will be buying with the money.

The system itself will be easy to setup. I have the space and bandwidth, and developing the backend won’t be a problem. It’ll allow users to setup accounts with their portfolio, list of projects, and their favorite foods, along with the prices. They can then place a little button on their site, which other people may click. They’ll be presented with the food the donatee listed. Clicking a link will open up probably a PayPal Donation page with the price for the food and all the relevant information.

It might be crazy, but it’s not like it hurts to try. I just need some good graphics made, and I can do the rest. Failing that, I’ll do some mediocre graphics 😉