kohaku_wind: (Default)
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 Freeform

This is an old idea, so I'm doubtlessly retreading a lot of ground.

A History

Basically, 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 Compromise

The 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 Notebook

Most 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.
kohaku_wind: (Default)
Note: Part 1 can be found here.

As everyone who actually cares about the issue doubtlessly knows, Google Notebook was kicked out of the family about two weeks ago. Service will continue, development will not. Most notably development of the Firefox plugin which needs constant updating along with FF in order to not spiral into unusability. So, a bit of a problem. The plugin is damn useful and a large part of why I picked up gNotebook in the first place, ditching Treepad (more on that later).

This has given me the opportunity to examine what my requirements are as they pertain to these kinds of things, as well as view a great many other opinions on the matter.

It all leads to one conclusion: there is no perfect universal notetaking software, because there is no one universal user. (cue the "duhs" from the audience)

This is in part because of the First Law of Optimization (as related by one of my CS professors), which reads approximately as follows: the more important the task, the faster accomplishing that task should be. You can word it slightly differently depending on whether you're optimizing UIs or computer architectures or toaster settings but it's the same gist each time.

Optimizing note-taking software is mostly a matter of optimizing the UI. Doing so requires close attention to both the organization of the computer and the brain of the user. The FLO then becomes the following, from the user's perspective: The more frequently I need to do something, the faster it needs to be. A clever UI accomplishes this, providing an optimal fit for the user's brain, accomplishing a set list of tasks in a minimum of actions. Good implementation makes this UI possible without major delays (more important than a lot of web-designers realize)

With that in mind, there are several considerations to be made when designing this kind of software, and the issues at hand aren't always obvious. I'm giving a rundown here of the kinds of issues that are important to me.

1. Online vs Offline

There are many, many note-taking programs in both camps here. Foremost among the offline crowd is Microsoft's OneNote, a heavy duty, feature-rich monolith of corporate power and awesome (in the medieval sense of the word). More modest (and numerous) online offerings include the (mostly deceased) Google Notebook, Evernote, Ubernote, Zoho Notebook... and even more that I won't cover unless someone asks me about them.

There are two issues at play here when deciding whether to go with an offline or online service. (if one must choose; we will see that you can combine both if you're willing to spend the money). The first is data accessibility. This is an old debate: is it better to store your data on your computer or online? Storing your data on the computer invites data loss if something happens to it (preventable with backups) Storing your data online invites data loss if the company goes belly-up. Storing your data online lets you access it from anywhere you have a web-browser, whereas an offline service forces you to transfer files every time you switch computers. How important that is depends on how often you want to do that.

But that's obvious. What isn't so obvious is the second issue: User Interface Adaptability. This follows from the idea of user's FLO: common tasks (such as creating a new page or retagging a note) should be accomplished in a single click, with a single button. This isn't a problem if your program has only a few functions. However, the more bells and whistles a program boasts, the more buttons you need. Carefully designed layouts are required to ensure that the user finds the function they need with a minimum of delays and confusion. That won't be enough, eventually. Buttons become menus, which are useful for program functions that a) are needed less often and b) are easily grouped within the user's mind. What determines how functions are grouped, and how often they are needed? Ultimately, the user.

Ideally you want an infinitely customizable interface (with good defaults). However, that's not nearly as easy to do on the web as it is with a vanilla windowed program. In fact, I have not seen a single note-taking program with an customizable interface, and the closest anyone has gotten has been collapsible windows in the sidebar. On the other hand, OneNote is king here. OneNote doesn't *have* to come up with the ultimate interface, it just has to come up with a decent one and show the user how to change it.

Tomorrow (or Wednesday, or next week, or whatever) I'll look at other design choices are involved in making note-taking programs. Sometime after that I plan to give a rundown of the various programs (Evernote, Zoho, One Note, uberNote, tree-based note programs, and anything YOU use yourself), using a crazy dwarf-related task that most people wouldn't think of when they think of note-taking programs.

(Except me. Mother always said I was a "special" child)


kohaku_wind: (Default)

May 2011

12 34567


RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2017 12:40 am
Powered by Dreamwidth Studios