Shocking, ain't it? I'm actually *following up* on a crazy idea I had. Part 1 of this series is
here. Part 3 should come within the next few days.
Anyway, two days ago I talked about FLO, or the rule that given limited computing power, you're best off prioritizing your tasks and speeding the high-priorities as much as you can--and even if every individual task is just as important as every other task (to you), the nature of computers means that it is best to prioritize the ones you'll use the most often.
Today I'm going to
blather discuss other aspects of notebook program design, as well as the philosophies of users who choose them. It's kind of boring, but it'll lead into an actual practical discussion of actual programs at some later date.
Organization: Hierarchical vs FreeformThis is an old idea, so I'm doubtlessly retreading a lot of ground.
A HistoryBasically, when you're organizing crap you'd like to save on your computer, you need to be able to find it again. In the bad old days, searching was computationally expensive and searching for every fucking thing you ever saved was annoying, so your best bet was to create a hierarchical file system with a root directory up at the top and everything else as a subdirectory of that. When the user wanted to save something, he'd think of the best place to put it, put it there, and hope he'd remember it the next time he wanted it. If not... well, there were still search functions.
Even when searching got faster (mostly, caching got more practical), hierarchical organization stuck around (see, Mac operating systems). Why? Because it turns out that grouping things the way you'd see them in a hierarchical system helps people remember them. People have trouble remembering lists of things longer than a certain number (an average of four or five, if I recall the study correctly), but they are able to do so easier if they form little subdivisions in their mind and shunting the objects into those categories, or informally, "chunking."
Enter "tagging," or freeform association. This created groups that aided chunking the way a hierarchy did, but made it possible for cross-references to exist easily, and manually create hierarchies based on the intersections between tags. It also let you make nifty tag clouds.
The Problem, and the CompromiseThe issue with tagging is that it requires as much management as a hierarchical format, in order to prevent "tagsplosion" or the creation of too many tags for you to handle. In addition, creating meaningful tags takes more thought than good folder names. Hierarchy provides context--without that context, it is imperative that you know what the tag means instantly, or else it is no good. Unintentional tag duplication can be a problem too, especially if you have hundreds of them and you haven't used some in months.
This is not really a problem if your categories are broad and, more importantly, your use of the system is limited to one sphere of activity. It works great for email and topical blogs, both of which provide needed context, and their limited use prevents too many categories from being created.
However, a note-taking program is often more than either of these things. There's a reason why I use the term "brain extension" seriously. The collapse of many disparate systems of thought, and spheres of activity (work, culture, play) into one tool, make a good organizational system imperative.
Defense of the Packrat: (One Reason) Why I'll Miss Google NotebookMost of the problems that arise with both tags and hierarchies can be ameliorated with a good spring cleaning every once in a while. Throw out old things as you introduce new ones. That's a good way to reduce clutter, but here's the thing: not only are we losing something every time we do it, but thanks to cheap HD space, we don't really have to do that anymore. If knowledge is power, we are better off using it than throwing it away.
I hold to the motto "Keep Everything, And Use It Wisely." whenever I can. It is a bad habit in many cases, but in a world with virtual storage, it is significantly more practical.
One reason Google Notebook was perfect because it combined the ideas behind hierarchical organization and freeform organization, and ended up being more than the sum of its parts.
Hierarchy-wise, you had notebooks and notes. Notes were just text boxes that gNotebook automatically created for you. If you wanted to go to a specific note within the notebook, you "collapsed" the notes into the first few words of the note. You could use this feature to add titles at the top, and the result was that a fully collapsed notebook functioned like a table of contents.
You also had labels. Functionally, notebooks were just labels that were more important than normal labels. But using them in conjunction each other could be tremendously useful. Once you were in the notebook, gNotebook could show you a list of all tags *just* for that notebook. Not 200 tags for all the notebooks you owned; just 20 or so for the tags in a notebook. It tremendously increased the power of a simple organizational system, while maintaining the flexibility associated with free-form association. In addition, hierarchical notebooks provided for large groupings without having to add the same tag twenty times.
Finally, gNotebook featured nested sorting and filtering. What you could do with a Notebook (list all tags *just* in that notebook), you can do with individual labels themselves.
And there was the ability to search notebooks as well, and filter results *again* by tagging. The end result was that gNotebook made it really damn easy to find things. It also made it easy to change your organization on the fly (why that might or might not be important is a subject for tomorrow)
So that's an overview on the organizational philosophies. Next time I'll start back up on FLO, and how it applies to user-interfaces and the difficulty of developing good interfaces in feature-rich programs.