Shuttleworth On Redefining File Systems
moteyalpha writes "Mark Shuttleworth described the beginnings of what could a great step forward in making file systems more usable. I've personally had the experience of trying to find a file for a customer who had just finished editing a critical report, saved it, and then couldn't locate it to deliver to their client. Quoting: 'My biggest concern on this front is that it be done in a way that every desktop environment can embrace. We need a consistent experience across GNOME, KDE, OpenOffice and Firefox so that content can flow from app to app in a seamless fashion and the user's expectations can be met no matter which app or environment they happen to use. If someone sends a file to me over Empathy, and I want to open it in Amarok, then I shouldn't have to work with two completely different mental models of content storage.'"
Was it a Word file? Locate all .docs, run them through antiword, grep for words from that critical report, and report back the matches. Less than a minute of Bash scripting.
Merging the efforts of Nepomuk and new file systems like brtfs are the way to go with this. Handling of file events can be done better than what we have now with inotify. File systems should allows plugins to update indexes on files within the file system structure and file systems should allow queries and query monitors directly.
DBPedia shows the power of SPARQL and implementing an efficient storage for it into a file system is the first step forward. Then user interfaces in GNOME and KDE can take advantage of the queries that are currently very expensive to do.
Ubuntu is in a good position to help out on the Nepomuk effort. Mandriva is already sponsoring this work. More support for this desktop-independent project would be a boon for achieving the file system Mark is looking for.
DNA is the ultimate spaghetti code.
Version control, searching, and all of the other advances since the first directory tree are good things to add, but they must be supported down to the application level.
VAX/VMS had a wonderful system of versioning baked right into things, if you worked on a file, it kept versions for you as you saved them....
login.com;1
.. etc.
login.com;2
login.com;3
The default was the last version, unless you explicitly chose a different one. This is an incredibly useful tool, and I still miss it to this day, 20 years after I last used it.
If you can't express an idea explicitly, your power of expression is radically limited. If we can get consensus and support a bigger set of expressions, we can do a whole bunch of cool new stuff. As long as we follow the leader, we'll never do anything this innovative, and we'll always be playing catch up.
It won't be easy!
To do even this simple thing with Linux, all of our applications would have to be re-written to enable a new file specification syntax, hopefully one reasonably compatible with the past. We're talking about a shitload of work, so it's important to agree on a set of goals first, to avoid having to re-do it later.
--Mike--
... just finished editing a critical report, saved it, and then couldn't locate it to deliver to their client.
Well, there are some people who can't find Pacific Ocean on the map. I dont see map makers running around in panic, thinking how to make their maps more accessible to the general population...
...had the experience of trying to find a file for a customer who had just finished editing a critical report, saved it, and then couldn't locate it...
None of this would be an issue if folks were competent and created directories themselves, and Word (or whatever) asked where to save stuff, as opposed to just assuming (or insisting on) some default system provided directory.
Am I the only person who hates those "My Documents" folders? Or on a Mac iTunes insisting on putting music in a certain weird place? I want to create my own folders, and maintain why own directory structure, and know exactly where stuff is because I put it there---not because Microsoft/Apple/Ubuntu think that's where I should keep stuff.
For the most part, maintaining my own folders for stuff works out just fine (easy backup, easy moving among environments, etc.), except when some program assumes it knows better, and saves a file "somewhere"; really hate it when that happens.
ie: The problem is caused by Microsoft/Apple (and Linux following) to cater to stupid users who just want to create a document and not care where it is saved. Those same users probably wouldn't be able to locate the file (for copy/backup, etc) unless they use the same program they used to create the file.
"If anything can go wrong, it will." - Murphy
If someone sends a file to me over Empathy, and I want to open it in Amarok, then I shouldn't have to work with two completely different mental models of content storage.
And you wouldn't have to, if every app would just show the frigging directory tree as it exists, instead of trying to fool the user with a random bunch of stupid fake roots in every GUI.
My mother in law in upstate NY had a Windows box that she used for exactly two purposes: email, and playing online Scrabble. Her Windows machine got full of malware, to the point where it wouldn't even boot. While she was visiting us in California this summer, I set up a machine with Ubuntu for her to use, and she got fairly comfortable with GNOME and Firefox. I sent an Ubuntu install CD home with her on the plane, and she went ahead and installed it with virtually no problems. I only had to talk her through a couple of issues on the phone, the main one being non-Linux-related: her BIOS wasn't set to boot from a CD.
She got going with email, and then it was time to get her set up for scrabble. The one she plays isn't the famous facebook one, it's a java program that accesses a club's server in Romania. Well, I think I spent about an hour with her on the phone, and we still don't have it working. One thing that took us a heck of a long time was that when she downloaded the jar file for the scrabble app, neither of us could figure out where the file had gone. Probably if I'd been in the same room with her it would have only taken me thirty seconds to locate the file, but over the phone, it was more like I was experiencing it from her point of view, and it was completely confusing. She was clicking around in the Firefox download manager, in the GNOME file manager, all with no luck. It seriously took her about 20 minutes, *with my help*, to find the file. It probably didn't help that I use fluxbox myself, and am not familiar with GNOME or its file manager. (Now we're almost there, except that apparently she's got a completely dysfunctional version of the java runtime installed. You click on the widgets in the program's UI, and it doesn't respond.)
Anyway, what kind of indictment is it of Firefox/GNOME's usability when it's easier to install Linux than to find the file you just downloaded?
Of course now I have to slap a steel helmet on my head to withstand the inevitable onslaught of know-it-all slashdotters telling me what an idiot I am, and how I could have easily found the file. Of course that's always how it is with usability. To the person who already knows how to use the software, it seems painfully obvious.
Find free books.
You think it's going to be any better for people who can't find things they saved?
They can't find it because they didn't care at the time of saving to attach enough information to the file to be able to find it later. Instead, they saved it under a name like "letter5", or even worse, "asdf", and possibly left it in a random directory as well.
Tags won't be just as bad, they'll be worse. They require a considerable effort to tag consistently. You also have to think of all the possible tags that could be related to the file. Is it "friends", "acquaintances", "buddies", etc? Is it singular or plural? Will "birthdays" be enough, or you also have to file it under "parties", "celebrations" and "events" in case you remember the file you need was related to some sort of celebration but you can't remember which?
What happens with categories that are diffuse, change meaning, or their contents? For instance, take emails from Alice, that initially get tagged with "acquaintances", then progresses to "friends", then "significant other", then "ex". If you search for something that was mentioned in a friend's email, are Alice's emails tagged as they were initially (in which case after the upgrade from acquaintances to friends her previous mail needs an extra keyword to find), or have they all been updated to "ex", in which case the search might fail since she was a friend back then?
Coming up with a good keywords system is something that only geeks and secretaries are going to do. Your average person will at best pick a couple keywords, then complain they can't find stuff because they didn't use the right keywords, or that every single document comes up because all the mail is tagged as "email" and nothing else.
Why not in OSX a combination of OS and filesystem data allows me to move applications while they are in use. I can uninstall an application or change it's directory location and all files know how it gets opened again and where it moved to.
Literally you can move an application to a thumb drive, and the next time you open a file that launches said app it will try to mount the thumb drive if it isn't already done so. I get so frustrated in locating files under windows. Why can't the OS get out of my way so i can work? if it takes a file system, and OS to track them properly the so be it.
As for the missing file in the description. most applications include a recent file list as does windows(since 95) and OS X. if you can't remember where you put something, try checking those speed lists first. It is like people only want windows and then refuse to read the dialog box that pops up every time they click on the start button. It is as bad as bill gates with outlook open goes to the task bar to find a calendar.
i thought once I was found, but it was only a dream.
So the user decides not to pay attention to where the file was saved (I mean, you do get to choose where it goes, it does not just happen)
This isn't strictly true, as each program has a default action on saving a file. Some default to desktop, or to "My Documents" or ask for a directory by default. Others may do "smart" checking and try to sort the files depending on what file type gets detected. It's this wide variation that's the problem. Even for someone who is knowledgeable enough to handle the situation without help, it's still a pain in the ass (and waste of time) to dig out the setting and replace it with your preferred setting.
Yes, that is unpleasant, but is additional complexity in the file system really the best solution?
Probably not the best solution. Better would be for the OS developers to set a standard directory scheme and enforce other developers to comply with it. If you want to change the scheme you can dig in and do it yourself. Of course, this may not be practical, as it may prove more complex to enforce compliance (and still keep things customizable) than it would be to bolt on the same functionality in the file system.
that at some point there needs to be a minimum expectation of competence on the part of the user.
But who gets to decide what that expectation is? Don't forget, computers are not "for" hobbyists, developers, experts and geeks, they are for normal people to make their other tasks easier. The more time these people spend training and raising their minimum level of computer knowledge, the less time they spend doing their real work/play, the less value the computer has for them.
Is it really too much to ask of a user that they understand that it is a machine, an inanimate object, and it generally does only what they tell it to do (insert Windows jokes here), and that if they tell it to do something by mistake (like saving a file in an unintended location), the mistake is theirs and not the machine's?
Yes it is too much to ask, because it's not true. Computers as machines do what developers tell them to do. The amount of instructions given by the programmer vis-a-vis object code vastly outnumbers the number of instructions a typical user is going to issue to the machine. This is necessarily true since each instruction given by a user is a blind proxy for at least one instruction (and probably more like hundreds or thousands of instructions) given by a developer.
Users can't be expected to predict a) all the myriad directions that a programmer has given/is giving the computer and b) the effects of the user's instructions when interpreted in the context of the programmer's instructions and assumptions. Most users are bad at using computers effectively because they don't understand how developers think. You wanna try teaching them how you think?
If that is too much to ask, then what is a more reasonable standard? How far should we go to accommodate users who, to put it bluntly, refuse to take responsibility for their actions?
Well, in my opinion, I think we're pretty close to the reasonable standard right now. People can decide for themselves how much they want to learn, how much pain they want to suffer for their ignorance versus how much time they want to spend reducing their ignorance, and vote with their wallet. You're basically saying that you want users to learn more, to make developers' lives easier, but in fact developers get paid to make users' lives easier. Maybe the developers should do their jobs better.
It's like that Unix saying, (paraphrase) "Unix doesn't try to stop you from doing something stupid, because that would also stop you from doing something clever". I like that, not because I think it's witty but because in my opinion, it reveals a design philosophy that assumes that maybe this is new to you and you don't und
Rule of Slashdot #0: You and people like you are not representative of the larger population. - A.C.
Of course the user paid attention to where the file was saved: it was saved in Word, inside the Save As... dialog. But when she tried to recover the file using the Open..., the file was no longer there. That's what Shuttleworth means when he says there are two completely different mental models of content storage: one is tied to functionality in applications, the other is a tree of folders and files.
Users understand perfectly that it is a machine that should do only what they tell it to do. They get upset when the machine *doesn't* do what they told them, because the machine changed their data to a different level of abstraction that they don't know about. To someone without a complete mental model of the inner workings of a computer, those different abstraction levels are a source of utter confusion.
You geeks only see the last one, and typical users only see the first one - and when they are required to jump the gap between the two completely unrelated abstractions, they are lost. At least the "My Documents" kind of folders tries to simplify the model so that users don't have to learn the two models.
So don't blame the users of something that is fault of the software designer because of their insufficient research about the human API. Throwing layers upon layers of abstraction is a good way to tell programmers how the machine works, but it's not good for everybody else. If you designed a machine that only required one abstraction layer to be used efficiently, users would love to learn it to the highest proficiency.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
This is largely the idea behind GoboLinux I think. As a matter of fact, a lot of what's going to be said here has probably already been said here.
By what name do you wish to be mourned?