Since I have been having a digital camera since a few weeks now, I've had a need for an application to manage my pictures. The two applications that people have pointed me to are f-spot and digiKam, which also seem to be the most popular applications in this category for Linux. Since I use neither KDE nor GNOME as my user interface, it doesn't matter much to me which I install; so I've tried them both. Their feature set is quite different; unfortunately, though, they both have some features which the other doesn't, which makes choosing for one or the other rather hard.
Since their on-disk format is rather different, it's impossible to use them both at the same time—at least not if I don't want to enter commentary and tags each and every time; so I'll have to choose one or the other based on their features. Since that requires me to actually compare them, I thought I might as well make a blog post out of that. Note, though, that this comparison is in no way intended to be complete; it only compares those features which I really care about.
albums; these albums can be created hierarchically, and are created on disk as the directory lay-out in which to store pictures. One picture can be chosen as an
examplepicture per album.
albums
People,
Places, and
Events, suggesting that f-spot encourages the use of tags where Albums would be used in the case of digiKam. Tags can have icons which are otherwise available to gnome selected as their icon, or one can select a picture to fulfill that function (in fact, it selects the first picture which receives a tag to do that by default)
Favourites, suggesting a scoring system with a binary scale.
albums, pictures cannot be stored in a one-directory-per-album lay-out. Instead, pictures are stored in a one-directory-per-day layout, using a yyyy/mm/dd format. Unfortunately, this also means that no picture metadata (tags, comments) is easily available to command-line applications.
write-onlystorage medium to f-spot.
After having used f-spot for a few weeks before I tried digiKam, I
have to be honest and say that I don't like the concept of
albums
. They do not add value; everything they allow you to
express can equally well be expressed with tags. Additionally, one can
categorize a picture in only one album
, whereas it's possible to
categorize pictures in as many tags as you would want. Just creating one
album which contains all my pictures, with tagging used for
categorizing, doesn't help either; that way, digiKam would store all my
pictures in a single flat directory, which would become problematic when
the number in the picture filenames wraps around.
I do love the scoring thing in digiKam. A favourites
tag just
doesn't cut it; and creating five tags for scoring would make things
like find all pictures that have a score of three or above
rather
cumbersome, and sort by score
outright impossible. However, the
fact that it's not possible to filter by score makes it all rather
useless.
The export to gallery
function in digiKam is horrible. I have
to select my pictures blindly; none of the metadata which I tack on them
can be used to help select which pictures I want. Workaround: use
whatever filtering is available to select the right pictures and add
them to a temporary album from which I then upload all pictures, but
that's silly (and requires disk space for no good reason). Additionally,
there seems to be a bug in
the interface, which means that I have to babysit an upload (with no
workaround). And I can't even
view my pictures to spend the time waiting. Bah.
F-spot isn't without problems of its own. Due to a bug in mono, it crashes rather often on my PowerPC laptop. When that happens, it can't be restarted until the X server is restarted. Workaround: use Xnest, but that makes it impossible to view pictures in full-screen mode.
Also, since f-spot is a GNOME application, its options
dialog
is as helpful as a pair of soccer shoes when you're out swimming. No
surprises there.
Which one do I prefer? I'm not sure. The digiKam upload interface is
positively annoying, especially the bug which requires me to click
continue
after every picture. For that alone, I might ditch it.
On the other hand, it has a slew of interesting features (the scoring,
to name one) that f-spot lacks, and that pull me more towards
digiKam.
I guess I'll have to give it a few days of thought. But hey, at least I know where I stand now.
So, in my previous blog post, I mentioned that Enlightenment, bug-ridden as it is, is the only application I've seen thus far that implements edge flipping the right way. Since it's been a long time since I last used the only windowmanager that actually implements it the right way, I've been able to give it quite some thought by now. Here's my take at it:
The central thing to remember is that the edge flipping interface will trigger accidentally. No matter how well you implement your interface, sometimes a user will accidentally move his or her mouse, or he/she will want to click somethin near the edge of the screen and touch it. Therefore, there are two things an implementer should do:
The best way is to make sure your interface has the following characteristics:
Getting the above two right will ensure that accidental edge flipping is reduced to a minimum. This is the first step, and one that only Enlightenment and IceWM got right. The final step, however, is something that IceWM does not get right; and this is what makes Enlightenment's edge flipping implementation such a natural thing to do:
Some people will find that last point evil, I'm sure. I'll admit it took me a while to get accustomed to it as well. But it's the only natural thing to do. You should think of your virtual workspaces as one large desktop; if you're using four workspaces next to eachother, that means one large desktop four workspaces wide. When you move the mouse one quarter to the left, it's normal that it ends up about the same place on that same desktop. In other words, warp the mouse.
Additionally, the mouse warping will have the effect that it makes recovery from accidental edge flipping easy and fast. If the mouse stays where it was after edge flipping (as in the case of brightside and IceWM), then if I accidentally hit my mouse, by the time I've moved my arm towards the mouse and started moving it back, I've moved away three workspaces from where I was already (because of the second bullet point in this post). If, however, the mouse does warp to the opposite side of the screen (i.e., the side where it was coming from), then going back to where you were is just a matter of moving the mouse a few millimeters in the opposite direction. Very easy to accomplish, that...
Oh, and finally, you also shouldn't segfault at random. Again something that brightside did not get right when I used it—did I mention that brightside is crap? Well, I did now. Hopefully it's changed for the better in the mean time.
Back in my Enlightenment days, I used workspaces a lot, because Enlightenment made it so natural with its excellent edge flipping implementation, and with the help of the pagers which would always, at any time, give me a snapshot of all my workspaces, helping me to remember where this or that application was running. IceWM doesn't replace that, but it sure gets close.
I had been an Enlightenment user for a long time—halfway the Summer of 2000 up to the early fall of 2004—before someone finally decided to pick up the pieces where they were left somewhere around 2000 and restart its development. Unfortunately, that also meant causing #219925, which was irritating me more and more each day. Eventually, in the early fall of 2004 (almost a year after I filed that bug), I gave up and started looking for something else.
The problem, of course, was that I'd grown so accustomed to using Enlightenment and its way of doing things that I felt at a loss. I wanted to be able to move windows above the upper edge of my screen again. I needed focus-follows-mouse. I was having a hard time without edge-flipping. Eventually I found that there was functionality for all of the above, but it wasn't flawless. Especially not the edge flipping—GNOME implements that in a truly horrible way1. Not to mention the fact that brightside, the application which implements edge-flipping for GNOME, segfaulted on me an annoyingly high number of times, sometimes even taking away my entire session with it. Even Enlightenment never did that; it would just misbehave instead.
Apart from that, of course GNOME also had some extra annoyances that I didn't get rid of. The fact that it insists on mucking with my keyboard settings, to name just one example. Even so, I used it for about nine months. Then, slightly after DebConf5 in Helsinki, I realized what the true horror of GNOME is: not the fact that they hide away features or try to make the desktop void of superfluous options; the fact that they remove features that are critical to some of its users. I know I was horrified to find out that something I really used a lot had been removed in that new release. I kept using it for three more months before I threw in the towel and tried something totally different.
Ion3.
After coming from the mostly mouse-oriented interfaces that GNOME and Enlightenment were, ion3 was truly different. I liked it at first; it was a welcome change from what I'd previously been doing. Eventually, though, I found that the ion way of doing things just wasn't my way. The fact that, by default, it puts new windows right in front of the window you're working on was rather offputting. Any serious attempt at configuring the thing involves learning lua which, though supposedly not hard to do, is not something I ever found the time for. In the end, I discovered that I disliked working with ion, as I often felt that it gave me a fragmented and tunneled view on the world, and that it was working with me instead of the other way around. In short, it was getting the fun out of computing for me. Which wasn't good, at all.
So that's when I started looking for something else again. When I'd made the decision to move way from ion3, I didn't want to keep using that "until I'd found something else"; instead, I quickly installed IceWM instead—which I still knew from back when I had a Yopy YP3000—and used that until I had found something better.
Little did I know the beaty of IceWM. I've decided, by now, that it does all I need, and more: By default, it tries the best it can to put a window on your screen so that it overlaps with as little other windows as possible. I can have it not focus a new window by default. I does focus-follows-mouse, if enabled. It even does edge-flipping. Of course it's not perfect—the edge-flipping, though not as horrible as the GNOME implementation, can still use some improvement. As if to prove my point, I accidentally closed the window in which I was writing this very post before it had been written to disk, the cause of which could be described as an interface problem in IceWM (though it's more likely an example of PEBMAC (Problem Exists Between Mouse And Chair). But, all in all, using IceWM feels like finally coming home.
Thanks, Marko and Mathias, for a truly wonderful piece of software.
1 I know that there are a lot of people who dislike edge-flipping. I am 99% sure that this is because they've never seen it implemented right. Edge-flipping is great, if done right; it's nightmare if done wrong. GNOME does it horribly wrong. IceWM does it better, though not perfect. The implementation in Enlightenment is perfect. I'll discuss the details in another post.
-g, --generate Unpack, but do not generate a new package.
Hmm.
If the GNOME people keep going on the track they are currently on...
... This is where they'll end up:

I just decided to move away from ion3. It was bothering me too much, and getting in the way of things that needed to be done. Back in the days with Enlightenment, I had my system configured so that new windows would, by default, not overlap with the one that currently has the focus, and that new windows would never get the focus. Ion3 does none of those; new windows receive the focus and appear in the currently-active frame, thereby overlapping whatever was active in that frame already.
I've accidentally hit "OK" too soon on an ssh-agent window once or twice because of that. Which is bad, very bad.
There were more annoyances. The frames, and the fact that a window cannot resize itself does have its advantages, but it certainly does have its disadvantages as well; I found that I had to move windows around all the time when they weren't terminal windows. If the idea of switching to ion3 was to avoid having to move around windows all the time, then it failed. Horribly.
So what I needed was a window manager that, by default, does not overlap windows or give out the focus to new windows; that allows me to move around using the keyboard only (and not the mouse); that is not too heavy; and that would allow me to configure shortcut keys for starting common applications (such as an x-terminal-emulator).
I've switched to icewm for the time being. Not sure it supports all those features, but most of them seem to be in order. Which is good. The docs can wait for tonight...
Funny how people start to get all defensive if people start giving their opinion about software they like very much, and that opinion is quite negative. I've had a rather high number of comments on my blog, on IRC, and have seen some in other blog posts on Planet Debian, too.
For clarity: I didn't claim that the Gnome people need to do this or that; I just explained why I dislike it. If people are interested in my opinion, great; if not, too bad. I couldn't care less. After all, I didn't marry Gnome or anything—I used to be an Enlightenment user for three years before I started using Gnome, and switched to ion now after using Gnome for less than a year.
And yet, so many comments... it would seem that at the very least, the Gnome policy to constantly hide away features which used to be there is quite controversial.
There's a heated discussion going on over on Planet Debian currently about how Galeon 1.3.x dropped a lot of configuration items as compared to Galeon 1.2.x, and how this is disappointing some of the more advanced users. The claim is that by dropping some of the more advanced features, you won't scare off novice or casual users who don't know what all those thing actualy mean.
This is all backed by usability test such as one done by Sun, in which people who've never used the system before are put in front of a GNOME desktop, are being asked to do a few things with the system, and their progress on that is monitored; also, they're being interviewed afterwards, so that they can give their opinion.
While such work is probably tremendously important to make sure the system is useful for those who don't use it all that often, it's horribly important that you don't forget that such people do not make up the majority of your users. Creating a system that's tremendously useful for people who only use it for ten minutes in their whole life but tells advanced users to go fuck themselves and delve into some obscure and hardly documented gconf-tool frobnitz if they want their email program to stop making sound if they get new mail is horrible. Having a website that links to all sorts of community and developer information, but doesn't even have a fucking 'documentation' link on the front page (or on any of the pages linked to from that page, except the 'Developers' one which contains links to developer documentation) is completely and utterly useless. Someone once pointed me towards where the users' documentation is, but I forgot to bookmark it, and have lost the link.
Contrast to ion. Granted, I could start using GNOME a few minutes after I'd logged on (two minutes for GNOME to start up, five seconds for me to have a look at everything there and to start clicking away), and the same wasn't actually true for ion3. However, ion does point me towards its documentation with its very first message, and while I needed more than a few minutes to read it, I already had everything I needed: the manpage is concise, clear, and to-the-point; and down the bottom, there's a link to the ion website, which contains a 'Documentation' link in the second paragraph—the first paragraph being a short and concise explanation of what ion is.
Of all the bad things I've got to say about Windows, there's one thing I'll have to give them: at least they got it right that you shouldn't fucking mess with the registry. I don't know how gconf is supposed to work (even after googling for the documentation, and studying it as well as I could a while back), and I wouldn't call myself a novice user; so how is such a novice user then supposed to understand all this gconftool and gconf-editor whiz-bang-hoopla?
The main argument seems to be that this is wrong:
Which is a good point. But the solution that the GNOME people seem to push is not, in fact, a solution:
Because it misses at least this:
or, even better, this:
But, well. Since it's utterly clear that the GNOME people are not interested in anyone who's been using their system for more than 10 minutes, I guess the best thing to do is to use something else...
As I said previously, Gnome has been annoying me for a while, and I've been looking out towards 'something better'. Although I had received quite some suggestions from various people, the only thing I really tried is ion3; I've seen a fair number of people use it in Helsinki, and had already gotten interested in this quite different user environment.
I must say it's something completely different; as you might've guessed by the fact that I used Enlightenment and Gnome before, the look of my screen is something that has always been of quite some importance to me; and, unless I'm missing something, this ion3 thing doesn't even allow me to specify a wallpaper. Of course it's not that I didn't expect that when I prepared the switch, but it shows what a huge difference there is between what I'm used to and what I'm getting myself into.
Other than that it is totally non-pleasing for the eye, using ion3 is going pretty smoothly to me. Then again, I haven't made the switch totally unprepared—I'had tried it out in Xnest beforehand. Which worked, mostly, except for the fact that gnome was messing with my keyboard settings and that, thus, some keybindings didn't work. But that's now an annoyance of the past...
I've been using Gnome for about a year now, after having been an Enlightenment user for about three. Even though E had far more bugs in it than Gnome (and E was no longer being supported upstream), I managed to bear E far more than I do Gnome now:
usability. That's crap; things I knew how to do under Gnome 2.8 now suddenly require me to manually fiddle with obscure gconftool-2 commands for no good reason other than 'it confuses users'. And by reading their documentation, I found that this isn't the first time they did this kind of bullshit. If it confuses people, hide it behind an 'Advanced' button please, don't throw it away.
And there are probably some other things. Summarizing, it feels as
though Gnome is coded for unexperienced users. That's cool, but in doing
so, I'm afraid the Gnome people have forgotten that there are also some
power users who'd like to use their software. I'm finally fed up with
Gnome now, and want Something Better™
. What, exactly, I
still have to figure out. Perhaps I'll go back to E and have a look at
fixing the one bug
in the thing that annoys me the most; perhaps I'll consider a switch to
ion3, which I've heard
lots of good things about and which seems interesting; it's just that
some things I've seen when people were using it on DebConf scare me a
little bit; mainly because of bugs in other applications, but they
still reflect on the usability of the window manager, IMO.
Also, it appears to be a bit of a spartan environment, which I'm not
really a fan of—I (still) like E because of its features, and
switched to Gnome for the same reason.
In any case, I will not 'switch' to KDE. I used it quite some time ago (back in the 2.x days), and didn't like it, mainly because I think their look and feel has too much of an in-your-face attitude, and the recent screenshots I've seen haven't changed that. But that's just me.
Other suggestions are welcome.
The Gimp is a great tool. Not only does it allow me semi-professionally manage my pictures (those things that I don't have) or create hackergochis; it also allows me to print pictures of decent quality on my deskjet (at home) or color laserjet (at the office).
Or at least, it did. For some reason, the File->Print option is simply gone. Nowhere to be found. And control+p, which used to be the shortcut to print stuff (as it is on every decent thing) is now suddenly mapped to some palette dialog that I've never heard of.
I want my print back!
Update: Right. Turns out I need to install the gimp-print package, which was pushed off my system somehow with the libgimpprint->libgutenprint transition. Fixed, now.
On Planet Gnome, I found a post by Nat Friedman regarding user interfaces. One example that is given there is called 'Mezzo', which is has the following "feature":
Bumper boarders:
Windows cannot go beyond the edge of the screen. Period. The edge of the screen is a hard edge, a 'bumper', preventing users from moving content outside their view.
That is evil. Period.