I've been taking a few days off, sort of, around the holidays here. The P-man is visiting his mom and I have a house guest, so it's a nice time to do so. Of course, I'm still checking my mail, closing bugs and making commits (just fixed a crasher in folderview, actually) ... but I'm only spending a few hours a day on KDE around the Christmas holiday time this year. That means my blog is not getting updated. =)
I've been brought out of blog hibernation a few days early because I keep getting asked about Mark Shuttleworth's post on notifications and figured I should get something out in a mildly timely fashion.
Before I do that, however, happy holidays to everyone out there. I hope you are finding some time with loved ones or even just some quiet contemplative time if this time of year is special for you. Happy new years as well. =)
That out of the way .. I do have to say that it's a little embarrassing that Mark's blog got picked up by places like Slashdot. I really hope it was a slow news day or something, but I suspect a bit of star worship at play. This makes us all look a little .. well .. trivial when something like "how we are going to show the user notifications from appications" gets touted as important enough news to make it to a Slashdot front page (and yes, they weren't the only ones). There's lots of much less trivial and much more intriguing stuff going on out there. Were I a Mac or Windows fan I'd be rolling my eyes right now at "those Freedom software guys" because evidently they are getting all excited about such trivial things. It's also pretty sad that the other much less trivial things going on get less coverage. This isn't Mark or Ubuntu's fault, of course, but something for us as a community to think about: when we start hanging on the words of anyone too much, it reflects something about ourselves. Usually it's not exactly flattering, either.
Now, Mark's UX (user experience) team has put out a concept for notifications which you can read about in detail on his blog. There are two main points to it: notifications should not have actions associated with them, only one notification at a time.
I think the one notification at a time thing has merit. There are too many applications spewing too many notifications. We need to do a better job of compressing these down. I think simply showing one at a time isn't going to help much, though, as you'll just have to watch the parade go by slower. It's an interesting start, perhaps. I think a more compelling solution is to watch the categories and severities of notifications and prioritize their being showed by that. Add per-applications compression (so all of Kopete's notifications would get compressed into one, even if Kopete insists on being a blabbering fool =) and it should be possible to show few announcements at a time in a fashion that is meaningful to the user. Finally, the user must have the ability to tell the system very easily "show me what other notifications are out there that you aren't telling me about" because it is quite simply impossible for us to know what the user is going to deem "important" with a 100% (or probably even a 98%) success rate.
The other item, that notifications should be non-interactive, is without merit. I'm a little worried that someone who came up with that is going to have a say in the *buntu desktop experience because it seems rather .. well .. silly.
Let's play a thought experiment: you move into a new house that has come pre-furnished. In it is a phone. However, this phone only rings. Moreover, you can't get it to stop ringing by picking up the receiver and putting it down again or hitting an "ignore" button. It will ring because it feels the need to let you know someone is calling, even if you know after the first ring you don't want to talk to that individual. (Damn telemarketers!)
It also doesn't care if the person on the other end only wants to let it ring twice or 10 times: it always rings 4 times. The oddness there is that even if the caller hangs up after two rings, you might hear the third ring and pick it up anyways .. only to find that there is nobody there. Odd, no? Of course, someone letting the phone ring 10 times usually communicates some urgency. But this phone doesn't care. Everyone gets four rings.
To take a call on this phone, however, you don't actually go to the phone itself. No, the phone only rings. It then routes the call to somewhere else. Where depends on who is phoning. So you need to check the number that's phoning and then go to the appropriate place in the house, find the little speaker and press the button on it. Hopefully you, the house occupant, can figure out which rings go with which speakers.
Thankfully, most of the speakers are in the same room as the phone. So it's only mostly inconvenient. Unfortunately, you have to figure out which speaker to use for which calls still. Thankfully, some of the speakers blink when a call is coming in. Unfortunately you have two phone lines and so sometimes you have two blinking speakers. You'll want to learn which speakers go with those rings pretty well.
This sounds absurd because it is. It's also what the proposal Mark describes espouses. I had this explained to me by one of the Canonical people on irc, so I know I'm not misunderstanding his blog entry either. They really do think it's more convenient to see only one notification at a time (even if two people try to chat to you within the same couple of seconds) and that you should then have to go find out where to get to that chat request via the system tray or task bar (or whatever else) rather than simply have a "Chat!" button or clickable link in the notification.
So while there's some good points in the proposal, there's also some highly dubious ones in my opinion. I don't think this will affect the notification spec in any way, however, as the spec can support their goals just fine as is and upstream KDE currently has no intention of implementing a system which we consider crippled by design.
As for the spec itself, I have been in touch with the Galago maintainer and I truly hope to see a unified spec by KDE 4.3 that we are all shipping with.
So for everyone who's been asking me about this over the last week, there you go. I'm going to go hibernate some more. =) Cheers!
Update: something I meant to write in the original post, but had forgotten by the time I'd gotten into it was that I realize that this is an experiment on the part of the Canonical UX team. Experiments are good and we need to be able to engage in them, even ones that fail. We need to examine, test and stress experiments, but we should not dismiss them out of hand or get upset at people trying them. Too few people are trying new and useful things in the Free desktop world as it is. It's a fine balance between accepting just any idea that floats by and discouraging innovation in general. In that sense, I'm happy to see the Canonical people trying to both contribute more to the F/OSS ecosystem and do so through attempts at innovation and user interface design.