Filesystems Aren't a Feature

Don Park recently made an interesting observation about how his family uses the computer:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/01/filesystems-arent-a-feature.html

Now that computers also serve as media centers, Raskin’s ideas have to be re-evaluated. The new Palm OS has a hierarchical file system because you can store over 1gb of data. Audio files are typically not edited (at least not on a palm) and come in groups (an album for example). Folders seem like the best way to work with media files.

This doesn’t mean that we shouldn’t work on better solutions, it just means that the no filesystem solution is not enough. For now, I’m using an old Palm as well.

Palm OS added filesystem support with version 4.0 because it needed to communicate with the rest of the world – that was added with external media support, and flash cards have filesystems. A lot was done to make this hidden from the user, but ultimately the need to power users to work with filesystems that hadn’t been built by Palm OS won out.

Yup.

I realized this as well when one day I noticed that one of my (non-IT) coworkers placed her files everywhere. To her, it just didn’t matter. The filesystem wasn’t something to be organized, because, as you mentioned, it really has nothing to do with their task at hand.

It also explains somewhat why people “get” web apps so easily - hey, when I hit “Save” on the intarweb, it saves it somewhere - I don’t really care where, just so long as I can get it back sometime later.

besides, it would be easier to type grep -irl “world war 2” ~

:slight_smile:

That said, the problem I’ve always had with the idea of ditching the user-controlled file system is that I often forget what I’ve written! “It was a short story idea… oh, did I use a black protagonist or a hispanic one? Gosh, it was only a half completed thought… I can’t think of what I wrote in there! And was it last week? Oh wow, maybe it was three weeks ago.”

Or I can just go into my folder and start doing a linear search, and maybe the filename will job my memory.

Or, what if I have to go to someone else’s computer and find something? At least if it’s all in My Documents, I have a fighting chance. (The thought I had was a kid trying to sort out his family’s affairs after his parents died. He has the password, but he’s lost after that.)

Now, I wouldn’t mind an interface more akin to a room (Yes, I know, MSBob tried it, but I’m thinking less cutesy.) You have a filing cabinet with drawers and these contain your documents. Then you have the junk drawer where anything you download goes. You have your jukebox where your music goes. A toolbox has all your system utilities…

We have struggled with this issue since our inception.

Attempts to introduce an auto-save feature were met with howls of protest (well, maybe not howls, but one user said he was being subjected to the tyranny of the developers).

The difficulty was compounded by the fact that our application uses multiple documents that are kept in one project folder. Allowing people to do a Save As… would have created naming issues akin to what Raskin describes.

The solution was to provide users with the ability to choose the location where their project folder was stored. The name of the folder is chosen by the user but the docs inside the folder are auto-named.

This approach seems to have satisfied everyone. It provides users with the power they wanted while avoiding the naming issue.

I think everybody commenting here misses the point! It is not “how should the file system change?” It is “what will replace the file system?” Why the big interest everywhere in search technology? The hierarchical file system is a dinosaur about to breathe the last breath.

Yes, I understand the frustrations of developers and trying to accomidate end users, but maybe we’re all looking in the wrong direction. We’re wanting the OS to take the control (human at that) and figure out what us imperfect users wan’t. There isn’t enough desktop computing power on the market to do that.
The averge user who doesn’t understand Windows explorer has NO business messing around in system folders. Don’t even mention the word “directory” if you don’t want the “Deer in the Headlights” look. OK, you say, Windows already has these locked by default. Well, why not a two-tier approach, all files such as internet cache and useless data that can be cleaned eaisly be confined to a specific directory.
User: "I need to clean juk files on my computer."
IT Guy: "Oh, open explorer and delete the tmp folder, everything will be just fine."
Mind you, software companies would and will want to hide some user info that may need to be accessed somewhere else on the users hard drive, but we could encourage standard coding practices to help.

To futher expalin what I mean (I ran out of space).
maybe what we want is a two tier explorer. One for documents (normal users)and one for system files (Advanced users/administrators). We basically already have these, but they need to be enforced by default and not part of some group ploicy.

The proposed solution (that the contents of the file become its name) isn’t really adequate. While it may in fact make it easier to search for files and simpler to save files, it makes browsing through the filesystem quite difficult. This is why each file needs needs additional metadata on top of the existing file contents - to allow for easier content discovery.

it makes browsing through the filesystem quite difficult

When was the last time you “browsed” through the internet, eg, you used a YAHOO or DMOZ style directory?

That said, some metadata is effectively free such as username (author), date/time, and the application used to create the file. We definitely want to make that searchable as well.

The real difficulty – which nobody has referred to quite yet – is images and other binary files. Sure, a file with a bunch of text contains its own best name, but what about a PNG file?

Don’t even mention the word “directory”

And another pet peeve of mine-- is it “directory” or is it “folder”? Better still to solve the problem once and for all and do away with both completely, I think…

[Part 1 of 2]

Alan Cooper and Jeff Raskin are making different complaints here, and neither of them wants to get rid of the filesystem itself. (I’m mostly going by your account, as I haven’t read either /THI/ or /About Face/ yet.)

Cooper is talking about the distinction between the file itself - the book on the shelf - and the private, temporary copy of it which an application works on in the first instance - what Emacs calls a buffer. He is unhappy with the way in which applications gratuitously expose the distinction between the two things to users. But as long as you still have an shared abstraction of books (files) on bookcases (mounted disk partitions etc.) which different applications/processes and users can all see and access modulo permissions, then you still have a filesystem - that’s what a filesystem is. It’s the file buffer that Alan Cooper wants to hide and minimise, in order to expose the underlying file itself. *

Similarly, Jef Raskin’s rejection of file names is not a rejection of files themselves. It’s not the existence of a common library of books that offended him here, but how the library is catalogued. IOW, this complaint is not about file data but about file metadata. (Yes, filenames are file metadata too - they are information about a file that is not part of the file itself.) **

His criticism of filenames quoted above is dead on. The whole business of having to bestow a name on every file you create before you can create it is like something out of a Monty Python sketch:

Greengrocer (Michael Palin): Good morning, sir.

User (John Cleese): Good morning, my good fellow. I wish to buy a banana.

Greengrocer: Certainly, sir. [He places a banana on the counter.] That will be sixpence, if you please, sir.

Customer: Ah, excellent. A satisfactorily ripe and shapely banana. Here is your sixpence. [places sixpence on counter]

Greengrocer: Thank you very much, sir!

[The Greengrocer rings up the banana on the cash register. The Customer moves to pick up the banana, but the Greengrocer swiftly moves his hand over it.]

Greengrocer [beaming smarmily]: And what would you like to call it, sir?

Customer: Call it?

Greengrocer: Yes, sir. What /name/ would you like it to have? [He reaches underneath the counter and produces a packing label and a fountain pen.]

And so on. (“Oh, I’m a-fraid there’s already a pineapple called Gregory, sir.”) But the alternative Raskin proposes is not a good idea. (It’s a typically Procrustean approach from the man who once wanted to allow only one file per disk.)

Eric K, the user is going to have to learn an interaction. If it’s grep, or spotlight, or click click click, it’s an interaction.

The ability to quickly find data you want exists. Peter’s interactions are a false friend. In practice using Natural Language seeming interfaces are not nice. Consider that it took Peter something like 200 characters to do what I write in like 20.

Very interresting topic, but yes replacing the file system seems a bit too radical. :slight_smile: But most people dont understand files, folders and most certainly they dont understand maintaing versions of documents. Nice to see a differnet view that the filesystem itself might be too complicated. I always thought that people where too stupid? :smiley:
I would suggest doing some more intelligent way of mainting the users documents and not the users files. I never liked the Desktop Folder, My Documents Folder, My Pictures Folder, etc. I can see its uses, but as a developer I still have to look into "C:\Windows\System… " "C:\documents and settings… " but it is as you mention logical since the developer needs to know and operate the operating system. But I cant remember how many times people ask me "where can I find my mail on my c drive, is it under c:\program files\office… " or under "C:\documents… " or maybe they dont understand why attached document from a mail is saved in a temp folder because they forgot to choose "Save As… ". And dont get me started on the window search functionality, I dont really get why it is in the oprating system?
It is not only the average windows user who looks around, everybody using windows sometimes find themself in a windows folder outside the local desktop folders.

Lets say its only a standard office and browser enviorment. I think the best solution would be to track everything the user does. I think the “last opened documents” is a great feature, but It should be MUCH more advanced, but ofcause not more defficult to use. But the user should be able to do something like :

User Could you open the paper I wrote about Worldwar 2?

Computer I have 20 documents containing that topic, when did you write it ?

User I wrote it last sunday, before I whent to school

Computer I have 1 document from that day, and I have kept it in 3 different versions. The last version seems to be larger, contain lesser spelling errors, was printed 2 times before closed 8.00pm and was that last version you worked with. Do you want to open it?

User yes, that must be the final version of my paper.

…computer opens the document worldwar2paper13452.doc

Computer Was that the corret document ?
user yes
… computer renames worldwar2paperfinal.doc

This dialog should of cause be done in a pleasent way and I am sure it could be done graphically. But the idea is to let the computer keep track of the users actions, since that is one thing it does better then us.

Hi some guy,

I dont think you understand my point anonymous coward. ( hehe sorry, just felt like a . reply you gave me)

Anyway, searching files is as you say very easy achived by searching through all files in all (sub)directories and you can even speed that search by indexing like some fanzy google desktop. But what about searching through files that are encoded differently or what about searching pictures?

And what if my tekst about World War 2 was something like:

WWII

World War II, also known as the Second World War, was a mid-20th century conflict that engulfed much of the globe and is accepted as the largest and deadliest war in human history. The war was fought between the Axis Powers and the Allies. The Axis initially consisted of an alliance between Germany and Italy, which later expanded to include Japan and Eastern European countries such …

What good will a search query on “World War 2” do to me ? And even better, what if I cant remember what I excatly words I wrote, because I just wrote a draft? And even better, how do I find the document if I deleted it? Or what about you made a nice little script, but you cant remember where you put it. So I should just do a:

grep -irl grep
?

I am sure you have more then one file containing the grep command. But besides that, you seems like someone knowing a filesystem, but my guess is that you have used several hours, where you from time to time misplaced a file or had to rearrange the file structure in your usr folders or something like that. And by doing so over and over, you dont have to think about it anymore, and place the files at a location where you can find them again… but noob users just dont know that.

Have you tried Photoshop ? I really like the the History functionality. Every step you take through your painting it remembers and you can see a full list of every step you take. Like "Select rectangle, paint, airbrush, crop, … ". The functionality if ofcause not perfect, and is as far as I remember only kept trough editing process. But what if the operating system kept something like that? Of cause it should not register every key you pressed in your first person shooter, passwords you typed, everytime windows defragmented a file, etc.

My point with all this, is to let the computer understand more of what the user is doing, instead of the user needs to know so much of what that computer does.

One problem with the filesystem is that there are two things stored there: the computer’s stuff, and my stuff. The “my documents” thing is an attempt to mitigate that after the disasters of having all the user’s (eg) Word documents in c:\Word\Dox and the Word program files in c:\Word. As it is, knowing what to back up is an art, and even finding their files for some of my friends is nigh on impossible.

Flip side: having the metadata/whole document search is all very well, but you need a lot of it. I have one friend who emails word programs to herself because her mental model in based on Outlook folders and archives. At least the latest Outlook doesn’t lose its email database too often.

A live history is very useful - one of my favourite options is “undo after save?”, and I can’t understand why anyone would ever turn it off (if it was persistent, even better). Bring on the return to the VMS filesystem!

I hate to use buzzwords, but with all this discussion of metadata, I’m surprised no-one has mentioned tagging (a la delicious).
Audio files are already managed using tagging-like metadata, and, for me at least, it would solve a lot of problems to do with structuring of one’s file hierarchy (“Binaries go together, wait, an application’s files should go together, this file is shared between two projects, dammit!”)
I feel pretty strongly that if the general populace ‘get’ tagging, pretty soon we will start see a general adoption of this approach.
My 2 cents.

This reminds me of an ICL product that was around in the late 70’s/early 80’s: CAFS or content addresable file store. Its goal was similar although it used a query language to obtain results. See the wikipedia entry for a synopsis of what it was about. Content Addresable File Store

Peter,

That is an excellent sounding “personal assistant”! I typically use the journal function in Outlook just to review excel documents. But that doesn’t help you if you do not save the document you are working on! I had written a bunch of code in a workbook before the holidays and was able to find the workbook containing the output; but was unable to find the workbook I was using to develop the code.

Now I am thinking about writing some code that automatically saves any workbook that I try to “discard” if it has VBA code in it. Now that would be useful!

Re tagging: Nobody is going to tag my internal document. And if they did, just as Peter mentioned, it will be filled with WWII, World War II, etc vs. World War 2 ambiguities.

Peter: I demonstrated how to use an existing file system to find a text document dealing with world war 2. This is what you described (apart from the inclusion of revision control).

If you want me to design and implement a full fledged revision control file system with search in a blog discussion section, you’re out of luck. But, if you offered a lucrative contract to design and implement such a system, I would certainly consider getting a team together and working on it. :smiley:

Luckily for you, comparative advantages leave it up to OS implementors to write that stuff so we can all have it cheaply. :slight_smile: