Getting nothing wrong is for the uninspired
After several weeks of use, I believe that Muine is a fabulous, brilliant user interface. The search-based queueing/playing is perfect, and the single-playlist model is surprisingly ergonomic. And it is all the more interesting for how different it is from the mainstream music tools like winamp, WMP and iTunes.
You see, included in your use case analysis for a music application would be: browsing by genre, organizing by album, managing multiple play lists, burning CDs and managing remote streams.
Why would those things be there? Because every other music app has those features, and if you’re building a music tool, you’ve got to have them too. Only, somehow, you’ve got to do them better than everyone else. How could you possibly put out a music player without the ability to burn CDs from a playlist? Or without a five-star rating system like Windows Media Player? Are you paying any attention to what’s going on?
(Incidentally I think five-star rating systems for songs are useless. WMP ostensibly uses them to create a “favorites” list, and presumably to do collaborative filtering later on. But a simple favorites list would be work on its own, and collaborative filtering could be done better on profile data. And how the hell do you rate a song on a scale from 1 to 5? I’d love to hear from you if you find five-star rating systems genuinely useful.)
Larry in the stata center, where
it is easy to get lost.
This is how applications in established categories end up in incremental feature battles against each other. No one is free to break the mold, and so they just add feature after feature onto the pile. There are many examples of this: office suites, ICE collaboration tools, etc.
To me this is emblematic of the distinction between getting it right and getting nothing wrong.
The get nothing wrong way of life is evident in highly mature situations and established markets — and probably also in resource-scarce environments like a submarine — where not losing ground can seem more important than gaining ground. People are afraid to make mistakes — to leave something out, or to put something in that shouldn’t be there — and so they consult detailed process guidelines, check every decision with their peers, and generally
Which means that they get nothing wrong: they don’t introduce a bug, and so they won’t be fired. But you’d never want to go to a party planned by someone like that. Sure, there are enough cups for everyone, but that’s just about the only thing you can say.
New solutions to old problems are easy to ridicule because they always have major flaws. It would be a trivial matter for us (or anyone; this is not GNOME-specific) to laugh Muine out of the building. But we’d be failing to acknowledge the fundamental genius of the design, which anyone can see is there.
I think this applies to the current GNOME revision control situation. Everyone knows we have to move off CVS. And yet it’s going to be hard: we have seven years of revision history in that system, seven years of integration with other tools like email notification, mirror scripts, tinderbox, client scripts, and so on.
But whatever new revision system we switch to (subversion) is probably going to cause problems for us simply because unseating a seven-year incumbent technology is not easy.
In order to get the fundamental things right, we’re going to have to get some things wrong.
Eventually, people will recognize the beauty of the Muine approach, and we will either realize we didn’t need those traditional media player features, or we will find new ways to deliver them to the user: perhaps even new interaction models that are just as clever as Muine itself.
Also, does anyone ever browse their own music by genre? Or do the music players just put that option in there because id3 contains a Genre tag? And what the heck is porn groove?
Miguel and I played with Keyhole today and it was incredible.
Jon‘s experience was what drew me in:
Jon Trowbridge: So I already feel like I can’t live without Keyhole.
Jon Trowbridge: I went to the Chicago Calumet photo this evening.
Jon Trowbridge: I’d never been before, wasn’t sure if they had parking.
Jon Trowbridge: So I just looked.
Jon Trowbridge: Saw the parking lot.
Jon Trowbridge: No worries.
Jon Trowbridge: And I could check out the configuration of the off-ramp I had to take when exiting the freeway.
Jon Trowbridge: mapquest seems like flint knives and bearskins
I seriously hope they make this available on Linux; it apparently uses OpenGL, and not DirectX, so it is not unthinkable.
(Sixteen days, no tobacco, caffeine, or alcohol. Total inability to sleep, though. It’s 6am and I’ve been up all night again. Which is reminding me of this one Nabokov poem: Insomnia, your stare is dull and ashen, my love, forgive me this apostasy.)
I’ve never before seen so many people so enthralled by one thing for so long.
This is ridiculous. We are using blog aggregators like fancy HTML Usenet newsgroups without threading.
But, here I go.
Robert: What is invoking sync 57 times during shutdown? If it’s a shell, just make sync a shell built-in.
Some more hacking on the BBDB-inspired EPlugin today.
It now synchronizes your buddy list from Gaim and merges it with your contacts, including buddy names and photos (unless you already have a photo set in Evo). The whole thing relies on you aliasing your buddies to their full names in Gaim.
Miguel and Robosapien.
I’m thinking of snowboarding in Utah this weekend, since I hear that Brighton is open. If you’re interested in joining, let me know. I might just wait till next month to get started on the season though.
The EPlugin hackfest is over!
Despite my day being packed with meetings and other interrupt-driven activity, it was pretty exciting for me; I learned the EPlugin architecture, an Eclipse-like system Michael built to allow you to extend Evolution using plugins. EPlugin is wonderfully easy to use overall; almost all of my stumbling blocks were the consequence of not having enough sample code to play with, and after today that shouldn’t be as much of an issue for new developers.
You can see the code for my plugin here. After I had Evolution building, the core of the functionality took me about an hour and a half to get working. This initial version was about 95 lines of code (I count newlines). Then, there was about 4 hours to write the UI code and do a little clean up, and now it’s about 300 lines, but still pretty dead simple.
My addressbook is growing now with the names and addresses of all the people I work with. I’m already feeling the benefit as I go to type someone’s email address and Evolution autocompletes it.
I also got my first look at the Evo mail code in about a year, which I have to say is pretty impressive. Extremely clean, extremely readable, very easy to understand. Not at all like it was in the 1.x days.
Now that I know how easy it is to use EPlugin, I’m going to take a look at the other plugin ideas I described yesterday. Michael has really done a beautiful job making Evolution easy for anyone to extend.
Here are a few new ideas:
JP is going to post a summary of the hackfest, and everyone else’s work, in a bit I think.
Hunter S. Thompson has written up his thoughts on the presidential election for Rolling Stone.