Most people don't understand hierarchical filesystems. I understand that and that's fine. As designers and programmers, we should be enabling those people to have control over and access to their stuff in a way that they can use.
But I do understand hierarchical filesystems, so why would I want to do things the same way as people that don't? I don't use notepad.exe just because vim is too confusing for most people, either.
I installed iTunes once and it took me a couple of confused minutes to figure out that I couldn't play a file in it. First you have to teach the app about all of the music that I might someday want to play, then you can finally choose one of those and play it. But I know where my music files are on the disk and I just want to play them. To use Gruber's analogy, I wanted to type 'print "Hello World"' and it wanted me to start defining includes.
In the same way, I store my information in text files on the disk. They're arranged in a way that makes sense to me. They're searchable, portable, and small. And it works great for me.
Hierarchical filesystems are primitive ops. How you use your filesystem, that's a layer above - and a lot of it is convention not necessity, defined in the age of the Apple beige toaster and preserved by generations of don't-make-me-think. File, save, save-as: those are older than the commodity hard drive.
Lets imagine different conventions. As soon as you start typing it puts a file in $HOME/Documents (or a configurable alternative). If the application is amenable to guessing a title (like the first entry in Heading 1), then it uses that, otherwise it goes with the usual "untitled". The menu ops are File -> Open, File -> Save, File -> Save a copy, File -> Set name and File -> Move. The last file opens if you stop and restart. Every single operation gets lazy-queued for flush to disk on an activity log (more than just auto-save: preserve every undo-able op). Save means "commit my changes to the canonical copy and clear the activity log".
All of those still use the hierarchical file system. They just use it in a way that makes modern sense.
A box with a name would be good, but you miss one important function of saving I took pains to preserve: it is the action which turns tentative changes to the file into permanent ones. You want to preserve those tentative changes, but you don't want to put them in the actual file until the user commands it.
True, with current software you don't want to save tentative changes but the only reason for that is that your "undo" history is lost the instant you close a program. If you could undo changes through the entire history of the document explicitly saving becomes pointless.
That works for a Word document, but what if you were editing a PHP file? You neither want your changes to be immediately applied while they aren't finished, nor can the PHP interpreter handle a special format with embedded undo.
Or, lets suppose you just log the undo in a hidden file alongside the original. Imagine you've edited a lot of files. All that eternal undo would pile up, and you'd end up with gigabytes wasted on useless undo logs. Plus plenty of stranded logs from moved files.
No, the ability to save, to not save yet, and to abandon the undo - those are useful features.
Amen. And iTunes is a total nightmare if you don't want it to store the files where it wants to. I'm all for abstracting away the file system, but the fact remains that there are files under there, so don't make it difficult for me to deal at that level when I have to.
If you're not expecting that, and have mostly empty or invalid ID3 information, because you have habitually kept metadata in the filename and directory hierarchy, iTunes will destroy your library. Everything becomes Unknown Title 243 by Unknown Artist 14, and by the time you notice (because who's expecting an MP3 player to rearrange all the files on disk!?), the only way to fix this is by listening to each track and trying to figure out via Google what song it is.
This happened to me in 2003 when I switched from Linux to Mac. I still get a little worked up over that, even though nowadays I just let iTunes manage everything and throw away the original files after I rip something.
However, Mr. Figs, and this is speaking from personal experience, if you happen to store your files on an external USB drive, and you happen to launch itunes at a moment when the drive is disconnected from your laptop, Itunes will revert to its default folder--forcing me to think about things I shouldn't be polluting my brain with.
I actually find that handy for use with my laptop--unplug the HD, import my "core library" (about 30GB), then plug it in and import the rest (over 200GB at this point.) Thus, when I'm out and want to listen to something, I still have all my favorite songs; just not everything (which wouldn't fit on my laptop's HD, anyway.) Basically, it turns the internal HD into a not-too-smart cache of the external one. (On that note, if there's a program that provides this internal/external storage caching mechanism more intelligently and on a larger scale, I'dclove to hear about it.)
As in the cases people already described, and some others I won't go into, it is NOT as simple as unchecking a preference.
Also, try plugging your USB hard disk into a different USB port in a different order from your iPod. Now it comes up with a different drive letter and iTunes can't find any of your music.
Most people don't understand hierarchical filesystems.
It might not be the best way to organize most files, but people do understand hierarchical systems. There are too many examples of hierarchies in everyday life.
I do understand hierarchical filesystems, so why would I want to do things the same way as people that don't?
The filesystem isn't relevant to what either of you want to do - namely, start taking notes, and, not lose them if you forget to save them.
Sure, save them wherever you like however you like - but I bet you start with "I need to make a note of this phonenumber" and not "I need to create ~/data/contacts/business/suppliers/joans.computers" so I can put this phonenumber in it".
Interesting. I think your point is generally good but that phone numbers is an example against it. I tend to document stuff using the second approach, because I'm documenting for lookup. Phone numbers are a case in point - I always have it in front of me on a scrap of paper, but want to enter it into the appropriate page and place of our wiki where I or a colleague will be able to quickly recall it later. I'm creating it with the lookup in mind.
Whereas if I'm opening a document just to play around with ideas I won't be doing that, and most documents start that way. I think this is why Word has so far won the field in mainstream document production. Word is a superb tool for prototyping and terrible in almost every aspect of structuring data for its long-term use.
> I bet you start with "I need to make a note of this phonenumber" and not "I need to create ~/data/contacts/business/suppliers/joans.computers" so I can put this phonenumber in it".
I only save things that think that I'll want to find some time in the future.
As a result, I don't think "I need to make a note of this phone number". Instead, I ask something like "How do I make a note of this phone number so I can find it again?" and then I think "I should put it {some place}".
Yes, hierarchical file systems are merely one of the many ways to implement "{some place}", but that doesn't make "{some place}" unimportant, irrelevant, or unnecessary.
Before Etherpad, I solved the problems it solves by various expedients like publishing drafts on my private web server, putting stuff on wikis, and exchanging drafts by email.
Etherpad is a bigger deal than people realize yet. It's one of those things you don't understand till you try it. I myself didn't. I put off trying their first beta for weeks, and then within about 2 minutes of trying it I got it.
One thing I've never understood is the confirmation dialogue you get when closing an application. Of course I want to save the document! The only time wouldn't want to save my changes is when I want to revert all the changes I made this session. I already have a perfectly good button for that the, undo button. (at least in a perfect world).
You don't ever run into that accidental situation where you opened a doc/makefile/source/etc that you just wanted to view but not change? That dialog is handy when you accidentally made a change but weren't aware of it. It doesn't happen a lot, but I know I'd have a number of more random characters in documents than I have now.
I think unlimited undo would solve this situation. If you're autosaving revisions, it's not a huge step to imagine allowing undo across application invocations.
+1. You could make the default "X" button mean "save and close", and have a separate button (perhaps in the drop-down menus, since this action is rare) mean "save and close".
Exactly. The dialog is based on the assumption that both options are equally likely to be used. That's simply not true. A user might click no but will almost always click yes. A dialog that almost always receives the same answer should be eliminated.
> I just want my filesystem to be categorical instead of hierarchical. Maybe some use of metadata types would make it easier to avoid collisions too?
What's weird is that the very first file system the Mac used was very close to this. MFS didn't support true directories; folders were an illusion provided by the Finder. Be OS, I believe, was the closest to your ideal that was ever developed, but it was considered too alien and "late" for it to have ever gotten traction. Just like the automobile got saddled with the internal combustion engine and manual wheel-based control, personal computers got stuck with x86 and hierarchical file systems.
What I would like is something like that: a hierarchial file system that also have metadata like you describe. So you'd be able to access files in the traditional way, but there would also be an API (and gui and command line tools) that would return all files matching criteria in the metadata.
MacOS's spotlight feature is somewhat close to what you're describing - and it can be extended to index/search metadata from file formats not in its default list.
That being said, it would be nice if such abilities can be extended to 3rd party developers, so that I can query the OS with a string and have relevant files come back.
i see this as a flaw in modern operating systems. the LifeStream OS concept dealt with this rather nicely, providing a document-centric, time-oriented file system, but also allowing for versatile meta-data to aid in classifying objects and navigating around.
I'm surprised he didn't mention the iPhone Notes application as a great example of the principles he's talking about: besides autosave and getting rid of the filing friction it also eliminates the friction of naming.
For me a huge part of the hassle with saving documents is naming them. When I'm in note-jotting mode it's usually low level, so to have to step back and try to quickly come up with a title that covers everything I've not yet written is frustrating because I'm not in an overview mindset and there's nothing yet to summarize. Add on to that the administrative work of filing, and saving text documents becomes something I put off for as long as possible.
I've tried Notational Velocity, but it has the same problem of forcing you to create a title separate from the content. (It also lacks creation dates, which are I find valuable for putting notes into context.)
Abstracting away the filesystem works great if all the software you use does provide you a way to get to it anyway (like iTunes does) if you really want it. However a lot of software doesn't provide that.
For example, on my S60 phone, the file system is pretty much hidden from the user. You just save your notes\contacts\pdfs\mp3s and the programs know where to put them and how to retrieve them. But try saving a python script as a note and then trying to get Python to execute it on your phone. Oops, no way to find out where that damn file is saved.
I would love to solve this problem. I've commented before about the limitations of current file system management (e.g. top comment on http://www.woobius.com/scribbles/posts/0007-document-control...), and I've worked out most of the UI and algorithmic structure for a replacement system.
Soon. Real soon now, I'll get sick enough of dealing with file "management" systems, and this will start to roll out.
That's not the main thrust of the article, it's about a class of apps like Yojimbo, iTunes and iPhoto that abstract away the underlying file system so that even the concept of saving data goes away.
The point of the article was not that applications should have auto-save.
As I read it, the point is that our hierarchical filesystems are not an especially good abstraction for organizing many types of data, and that applications should provide users with better abstractions in more cases. It appears to be a response to The Case Against Everything Buckets (http://news.ycombinator.com/item?id=460274).
Is there anything like Yojimbo but simpler? Some program for me to jot notes and clip things that doesn't reformat text or give me tons of filters? Yojimbo and Evernote are both too bulky for my tastes. Anybody have any recommendations?
My personal favorite is the woefully outdated (but free) xPad. http://getxpad.com/ It's no longer developed, and has a few annoying bugs and interface quirks, but it comes the closest to my ideal. It's basically just a notebook of RTF (with images) pages.
The simple magic for me is that you can just Cmd-N and start typing, and then when you're done, Cmd-R to rename/title it. No saving, obviously, but also no shift-tab or clicking in a title field. There's also a services menu shortcut for clippings: Cmd-Shift-X.
Contrast with Yojimbo (and many others), where a new note defaults to the title field. You have to either press enter twice or tab three times just to get the cursor to the note field. Even the "Quick Input" panel asks you for a title and tags first.
And that's a list from what I've been using for note taking: emacs org-mode. Though lately I've been a bit torn between using org-mode and something like Evernote, particularly due to its device synchronization. I would really like to hear other people's thoughts about this.
Oh, and if you don't like Yojimbo and Evernote, you might want to check out Voodoo Pad.
I also use org-mode for this. All in all I am pretty much happy with it. What would be a plus with one of those Cocoa-base boxes is inline images an rich text. On the other hand I have now a nice file-folder structure which is nicer for scripting.
Look at shovebox. It's too simple for me to use exclusively -- it lacks many of the archive/organization/retrieval features that my app of choice, EagleFiler, boasts - but it's got the quickest input I know.
But I do understand hierarchical filesystems, so why would I want to do things the same way as people that don't? I don't use notepad.exe just because vim is too confusing for most people, either.
I installed iTunes once and it took me a couple of confused minutes to figure out that I couldn't play a file in it. First you have to teach the app about all of the music that I might someday want to play, then you can finally choose one of those and play it. But I know where my music files are on the disk and I just want to play them. To use Gruber's analogy, I wanted to type 'print "Hello World"' and it wanted me to start defining includes.
In the same way, I store my information in text files on the disk. They're arranged in a way that makes sense to me. They're searchable, portable, and small. And it works great for me.