Lost my hacking mojo

I’ve been trying to get out of this funk I’ve been in the past few weeks. It’s been far too hard to just sit down and code outside of work. I can’t even put together a release. A large part of this is due to the amount of work I’ve been doing for VMware as of late on VMware Server. I think another part of it is that I recently finished up releases of Galago, libnotify, notification-daemon, and Leaftag and

I know this is temporary, but it’s frustrating because there really is a lot of cool stuff I’m looking forward to working on. Some may say to enjoy it, take a break, play some games. Problem is, I don’t even feel like doing that! 😛 Perhaps after work calms down and I’ve spent long enough doing nothing at home, I’ll have more motivation to code.

How do other people usually deal with this?

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.

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 😉