A nice post from Karl Voit has been languishing in my blog queue since January and I realized that it was time to write about it. In the post, Voit argues that complex file hierarchies are the wrong answer. If you’ve ever used one, you know that that’s true. The problem is that you always encounter edge cases where it’s not clear where to store or search for a given file. Voit recommends a fairly flat hierarchy. That makes storage easier but what about retrieval?
One solution is searching. Almost no one does this but it’s a very useful strategy. Searching can involve looking for a particular file name, perhaps fuzzily, or a content search using a grep-like facility. That’s a powerful method but it brings its own set of problems as Voit describes.
If you follow Voit, you won’t be surprised at his preferred solution: he likes to use a tag-based system. You can read his post and follow the links in it to see exactly how his scheme works but any Emacs user can use a lightweight version of the idea with Org-mode. That’s what I use and it works well. Most of my data is spread across five Org files all of which are tagged. When I want to locate a particular piece of data, I do an Agenda TAGS search to narrow the candidates to a very few possibilities, which I can easy scan to choose the proper one. I could, and sometimes do, use a grep for this but then I have to remember key words from the item I want. With tags, I just need to remember a general concept.
As Voit says, assigning tags is not easy and takes some practice but once you get reasonably good at it, it’s an excellent way for classifying your data. Voit’s system is much richer but may be too heavy weight for some users. If you’re looking for an easier way, Org tags is a good solution or it’s a way of easing into a more complex system such as the one Voit uses.