November 26, 2005

The visit with my son

Luke Steven Hays
Born 11/14/2005
7 lb., 8 oz. and 21" long

So last week my mom, dad, sister, and I had a chance to visit with my son. It makes the decision to give him in adoption a bit harder but more rewarding in the end, because I can see (and hold) him whom I'm committing to the care of others (a very wonderful couple). You can see more pictures and video by clicking on the image below.

He's certainly adorable.

November 14, 2005

Pygmy: New tooltips for the trayicon

So I've cooked up a nice tooltip for the trayicon for Pygmy (in SVN r79), with the help of Gian Mario Tagliaretti. Basically, it's a window that looks like a tooltip, smells and tastes like a tooltip, even behaves like a tooltip, but is not one. Here's a peek at what they look like right now (tooltip is on the upper-right):

I guess it could look a little more like a tooltip, but it's getting there. :)

Edit: r86 has corrected the look and improved the positioning. Thumbnail updated above.

November 12, 2005

Gaim and UI

So I've been using Gaim's 2.0 CVS (development version). They have some nice changes since 1.5.0. The most notable upon signing in (especially someone like me who has an AIM, a Jabber, and two IRC accounts) is the absence of the account sign-on window. It is one of the most annoying features about 1.X (and I have read that many people would agree), especially on my network connection which sometimes seems to be flaky. (I used to get a window popping up every time an account would disconnect.)

Another nice thing is the status message "selector". Whereas you used to have to use the menubar or system tray menu to set an away message, now you can set your status in the main window by way of a menu bar at the bottom (see the screenshot). It's very nice; you can select from a few different types of statuses (though I honestly don't know if all of them apply to the different protocols).

And the little things are nice too:
1. There's now a keyboard shortcut to open the formatting bar (I normally keep it off but want it on at a keystroke).
2. The tooltips in the buddy list are a little better-looking now, though I'd have a hard time describing how. :)
3. The Buddy List can be made smaller now without seeming cramped.
4. New messages don't just appear at the bottom; the rest of the text "slides" upward to make room for the new message. Not only does it look slick, but it's more eye-catching.

A few peeves, though all may be gone by 2.0:
1. The absence of the connection window is not (yet) replaced with any kind of notification, so it's hard to know at a glance if a connection has been dropped.
2. The idle times of buddies cannot be turned off (the option is gone), so when I make the Buddy List smaller, I still end up with things cut off. (I trust that this will option be added back in before 2.0.)
3. IRC/chat handling is still less polished. I'm of the mind that Gaim should remember window position, but even barring that, you can't keep the user list off in chat windows and they always open at the same (big) size. I filed some bugs in Gaim's bugtracker a while ago (and I know they're focusing on lower-level code changes first) but I hope that they get to them before 2.0 is released. (I'd patch the UI code myself if I knew C.)

All told, some nice changes in Gaim already. I still recommend it to anyone as the IM client of choice; it's only short of Trillian's* functionality (and only in a few less-than-critical ways), it supports all your accounts at once, it's completely free, and it just plain rocks.

*- Plus, Trillian is not available for Linux and costs money to get all the features. ($25 for an IM program?!)

November 3, 2005

GTK+ is not GNOME's

So I read this article this morning on work on GNOME optimization and they mention the "GNOME file chooser". Lo and behold, they actually mean the GTK+ filechooser, something available in any GTK+ application, not just in GNOME's. Perhaps it's a pedantic distinction, but I think it's an important one. Linux users should have a clear description of how things work (not to say that said description should be complicated) and GNOME holds too important a position to be saying inaccurate things, in my opinion.

I don't think I'd care as much, but this isn't the first time I've seen GNOME saying such things. This 2.12 preview lists Evolution as a "mail client for GNOME", but I happily use it when not in GNOME. And this leads me to a sore point with GNOME apps.

Many GNOME apps carry extra dependencies that a non-GNOME user wouldn't have. Often, these dependencies are unnecessary. A popular example lately is Evince, which relies on gnome-vfs. Nautilus, GNOME's file manager, also controls the desktop, but the default behavior of running the "nautilus" command is to open a file manager window and, if not already, take over the desktop. There's a flag (--no-desktop) and a GConf setting that can be set, but in my opinion, the default is a poor choice. Better would be to have "nautilus --desktop" run the desktop process and have "nautilus" only open a file manager window. The GNOME startup settings are very good, and you can have the desktop started therein.

This kind of development and publicity, in my opinion, is telling. It seems GNOME developers are developing for GNOME. They have a very respectable integrated desktop, but these types of things belie a narrow-minded attitude that hurts Linux as a whole in my opinion. With Linux being generally modular--customizable from the kernel up, chock full of functionality whether on the command line or in a GUI (of which you have many choices), and many choices of applications to suit your need and taste, etc.--I think it's frustrating to see GNOME be so self-oriented.

Rather, I prefer Xfce's attitude towards their software; they make things such that the user can use any piece of their choosing in any environment. No unnecessary dependencies, because the user's choice is valued. In fact, thinking about it, I'd say that whereas it seems that GNOME develops for GNOME, Xfce develops for the user. For example, Thunar, Xfce's upcoming file manager (being developed currently), looks very much like Nautilus and will provide comparable functionality, but performs faster (in my experience, and I understand that this is not a completely fair comparison at this point) and has a shorter dependency list. Xfmedia, a media player that uses Xine, doesn't do as much as GNOME's default, Totem, but performs better (when using GStreamer or Xine) and has a simpler UI. Of course, there's also the fact that Xfce's window manager, perhaps the most important piece of the desktop puzzle, is incredibly more useful and elegantly designed than GNOME's metacity.

I really appreciate GNOME's efforts on the desktop and recommend them to any person new to Linux, but as someone who's been around for a little while, I'm just a bit disappointed.

Disclaimer: I do not represent Xfce in any way (though I use it primarily and enjoy it) and in fact, I run GNOME's panel and volume manager on my Xfce desktop because I like them.

November 1, 2005

Pygmy... and Bantu?

So. Many updates with Pygmy lately. I rewrote the way it connects to MPD using a Singleton, so there's only ever one, no matter if you change the port, open the browser, etc. Makes it all very stable. For example, (I haven't written this capability yet) you'll be able to update your music database and not have to close/reopen the browser window. Neat.

Decklin Foster also graced us with his presence (and code) this past weekend and he has already made some good improvements on my code. He also has some good ideas about what to do in the future. For example, he has started implementing a parsing engine using the empy system. I haven't tried this out (or even heard of it before Decklin mentioned it), but I look forward to it. (As of now, Decklin has access to and will be patching our SVN tree. :) He also recommended we give the browser window a name, Bantu. I like this because that gives credence to the (eventual) fact that you can run the browser on its own.

All in all, it's been a fun time. This project has increasingly been a learning experience in OSS development and as such, has been constantly humbling! Decklin's patches, for example, have focused on cleaning up some of my badly organized code, which is a result of me learning how to do things as I'm implementing them. There are interesting ways of categorizing and classifying things; Python keeps on impressing me!

Look for a release in the next few days!