Software we’d like to see, part six million: the Swamp

This arose from an IRC conversation which I was tangentially involved in, and I wanted to write down my thoughts while I ate my lunch. I am not a HCI person, so take it all with a pinch of salt. Also, all this has been said a thousand times before.

So.

1. You know what? I am tired of arguments about filechoosers. Nobody can get the things right and make everyone happy, and I think the reason for that is actually they assume you’re thinking about a small set of separate files where the set members don’t change very often, and which live in a hierarchy. That’s a bit like how programmers think of source code, which is probably why, but it’s not how most people think of documents. (Heck, I think it’s not how programmers think of most documents.) If you look at the documents directory or the desktop of most people, you’ll find a huge flat heap of files. You know we already have tools to deal with this sort of thing, but they only work for certain kinds of file (F-Spot lets you organise your thousands of photos by date and tags rather than by requiring you use hierarchical directories and filenames).

2. Yes, I know about Beagle. I still have to make up names for my documents and put them in a hierarchy.

3. Colin Walters mentioned in the IRC discussion that we could just make “File | Save” write stuff straight out to ~/Documents or whatever and not make people deal with having to slot it into a hierarchy at all. I would love this. Maybe turn it on in gconf or with an environment variable that could be set at login for certain users.

4. The trouble with this very good idea, of course, is that they then have to be able to find it again. So we let them search on metadata (yes, including <buzzword>tags</buzzword>) when they want to re-open the file. (Effectively that’s what they’re doing when they choose a filename like “email from Joe” so they they can find it again.) We have three kinds of metadata, though the difference should not be apparent to the user: there’s information gathered from the file like the height and width of an image (and some files formats can store arbitrary metadata internally), and there’s similar information which can be edited by the user and written back in, and then there’s information which must be stored externally to the actual file.

5. Where we actually store the data and metadata doesn’t matter. Ext2, maybe, with separate GKeyFiles for the metadata. Or maybe in a big SQLite database. I don’t mind, really. Maybe give people the option. Don’t ask users on installation or they’ll run a mile.

6. Using separate files raises the problem that all third-party solutions to the 8+3 character filename limit on MS-DOS had: you would always lose the data if you copied the file away. For this reason I’d rather not reuse an existing ~/Documents-type directory. Maybe call it ~/.swamp or something (I like the idea of a files floating around in the swamp and occasionally bubbling to the surface). Using one big file with tools to copy files in or out saves us that problem, of course.

7. Those of you thinking very fast will say, “If people don’t give a filename when they choose Save, then Save and Save As are the same thing, and that means there is no way to branch development of a document”. You are right, but you said the magic word, “branch”. Once user documents live in a controlled environment, there is no reason not to apply simple version control, which VMS has had since basically forever. Imagine how useful that would be! In fact, why are we requiring users to name files like programmers and not also automatically giving them the programmers’ advantage of putting their files under some distributed VCS?

This is just a thought-experiment, really.

I’ve had a number of people say they can’t comment on my GNOME blog; try clicking the number of comments and seeing whether that works. If it doesn’t, email me (tthurman at gnome). [Update: Might be working better now.]

Let me know when you make other posts about the subject (as I said on IRC, this is long on ranting and short on original content) and I’ll link them here. Or you could just pingback, of course.

Tags: ,

4 Responses to “Software we’d like to see, part six million: the Swamp”

  1. JustAGuy says:

    I started reading this, and when I got to point 3 and 4 it felt like I was screaming (on the inside) NOOOOO!!!!!

    This seems to be the same level of genius that gave us the spatial browser. If this is an option, that can be disabled, it might have some use. If you try implementing it, please do not repeat the spatial browser abomination of setting it on by default, without a simple way of turning it off.

    It is an interesting idea in theory, but it just won’t work for power users.
    I use plenty of files in which I can not add metadata – I also need an ability to run scripts on each group of files. Keeping 600+ files (latest project I had contained that many) in one directory is a path to madness for me.

    I like the possible idea of having regular users keep information like this, but there is a problem of compatibility – how does it transfer from computer to computer, and from OS to OS?
    If you do try implementing this interesting solution, you have to make sure that the tagging part is perfectly functional before this is enabled for ordinary users.

    It might be interesting for Joe user, but I’m not sure I see the utility this version has as compared to beagle (perhaps they should be both be integrated).
    However, if this is intended for Joe user, not a power user, maybe somebody should test mockups on ordinary users before trying this?

  2. I’m just throwing ideas around, brainstorming really– I’m unlikely to have the spare time to implement something of this size. If we can all talk about how we’d like things to be implemented, then when we come to some level of consensus we can try hacking something together and seeing how it goes. Of course it’s a crazy idea that something would ever reach a stable release without being tested on ordinary users, or without a way of turning it off!

    Yes, it won’t be a good idea for power users (almost anyone who does extensive work in the shell). This is a minority of users, though. Ideas which work well for ordinary users rarely are good for power users too. But bear in mind that the current system works very well for power users and isn’t necessarily the best idea for ordinary users.

    (And FWIW, I actually really like the spatial browser.)

  3. Phil says:

    I’ve wondered about a couple of these things before, and I’ve generally come to the conclusion that overall the current scheme works best. As filenames and directorys don’t have any set purpose, as long as you decide how to use them, you get on ok.

    The trouble is that a lot of people either don’t decide early enough, or just deal with enough documents to make it seems worthwhile, and so those people end up with flat directorys and lots of files called “letter.doc” or similar.

    If a different approach to filing was thought up, it would immediately help that second group of users, but it would have to incredibly good to get people to switch from their own systems.

    The idea I was playing around with a while back was to imitate the directory/name principle but using tags. Every file would get a name and a set of tags, and then the user would be able to browse around by basically making increasingly long “and” queries against the tags: “documents”, then “documents and personal”, “document and personal and letters” etc. Then these queries could be saved and reopened like desktop folders.

    The problem (well, one problem) is that in order to really make a this idea much of an improvement, you need a lot of integration, and you need to always make use of it. For example, if I want to query for all letters on a topic, each one has to be tagged as a letter. That means either I have to do it by hand (easy to forget) or I have to always use a template for a letter in a program that knows about the tagging system.

    Another problem is that it introduces another branch in the file saving process: save in a directory vs save with tags, because after all non-documents need to be dealt with the old fashioned way.

    Anyway, I guess my point is that I like to see people thinking about this, but just remember it has to be very good to be good enough! Oh, and Spatial Nautilus is my default too – is that maybe a symptom to something?

  4. Henry says:

    I like the spatial nautilus too. but points 3 and 4 made me groan. Tags, quite frankly, have always struck me as trendy rather than useful. And point 3 sounds like one of those condesending towards the user UI desicions that leads to MS Bob.