Forget about it. Or not.

I forget a lot of things. I forget how I did something, or where I found an answer, or where I put my glasses. I use technology to help with that to some extent, and Notational Velocity/nvALT are excellent at helping me find previous notes, assuming I bothered to take them.
I keep a log in VoodooPad, especially when I’m up late enough at my computer that I might not remember what I was working on in the morning. That’s handy, the search is excellent, and gathering tagged entries together on one page automatically is sweet. After a couple of years of doing it religiously, though, I’ve found that I rarely reference anything beyond the previous day or two. I rarely go back because the things I log aren’t “knowledge”, just activities. My logging system lacks the details I need to remember exactly how I did what I did. That’s my own fault, of course, but I needed a system that would build an environment-agnostic knowledgebase for remembering all the things I tend to forget.
Thus, I’ve been playing with an idea. I’m building a collection of plain-text notes (primarily using nvALT with notes saved to a Dropbox folder) where the title of the note is the question I think I would ask myself long after I’ve forgotten the answer. The content of the note is the answer in its briefest form, including commands, filenames, urls and whatever is necessary to get me back on the right track.
I can query these notes quickly from the command line (qq where glasses or qq best h.264 settings), as well as from LaunchBar and Alfred. Adding new notes can be done just as easily from the same sources. The text files are stored among all of my nvALT notes (with a special prefix to easily separate them), so it automatically benefits from Notational Velocity-style searching and editing.
One of the reasons I prefer to store my nvALT notes as plain text files is that I have access to them from Spotlight and mdfind (man page). Spotlight allows me to query a little more intricately, separating tags from titles and titles from content in a way that nvALT currently can’t. mdfind is the crux of this system. You can store all you want in plain text and feel great about it, but the ease of querying any information system is the measure of its worth.
I like tagging. I’ve found that tagging isn’t the solution for my forgetfulness, though. It’s been extremely helpful in tracking projects across multiple folders, but not so much in dealing with aged notes. I’m as likely to forget a tag I associated as I am anything else. Extra, more verbose text seems to be the trick. Instead of piling on a bunch of tags, I set my scripts up to search–but not output–anything inside of a @(extra text tag). Then I can add extra verbosity and keywords that I think might help the search later… without fouling up my tag database.
While there’s definite GTD-style comfort in knowing I have my discoveries and important notes in a portable, syncable system, the process of thinking through the syntax of the question/filename is actually helping me remember things better to begin with. It’s a conscious effort to connect neurons in a way that keeps the information more readily accessible to my feeble memory. I’ve only been doing it for a month, though, so I’m curious to see how the knowledgebase looks and functions in a year.
I’ve put the whole system and installation/usage/best practices up on GitHub. There’s a command line tool (bash), a pair of LaunchBar Actions and two standalone Alfred extensions for adding and querying the notes. As I use it more, I’ll probably come up with more ways to interface with it. Right now I’m thinking about an AppleScript/Mail Rule-based system for adding and querying notes via a GMail alias. More to come, pending determination that the new method is worth the fiddling time in the end. I do love having universal access to any bucket I use, though…
If you’ve ever forgotten where you put something important or solved a problem and later forgotten the solution, check out the QuickQuestion GitHub page. The Readme and up-to-date files are also available as a direct download below.
QuickQuestion — A set of scripts for building and querying a plain-text knowledgebase on OS X. Includes CLI, LaunchBar actions and Alfred extensions. Works great with Notational Velocity/nvALT, but does just fine without. More Info

What does qq stand for? Does it mean action item or question? I remember reading how some other people use qq to label action items. What specifically does qq stand for in your case?
Quick question, IRC parlance.
I started modifying qq, and ended up with: qq0.rb (capture and search single line notes) — Gist.
No idea what it’s supposed to do yet. But I guess I’ll use it as an imaginary version of twitter.com/#!/lranta/status/118112920432422913:
Using amatch/regex for search is a really good idea. I used amatch for fuzzy project name matching in an OmniFocus script and was really pleased with the results.
None of Amatch algorithms are that suited for this purpose though… Most are variations of edit distance, or “the number of primitive operations necessary to convert the string into an exact match”. Going down the rabbit hole of
wiki Approximate string matchingnow. :)Another one: q — a Ruby script for capturing and searching “key: value”-style notes in a shell — Gist
q @somenote somethingsearches forsomethinginqsomenote.txtI use a different approach to solve the same problem, though it sounds like you’re doing most of it already. I just keep a dated text file for each days random notes, ideas and activities. Each item has a single general tag — readingnote, journal, JavaScript, etc from a slow changing set of about 100 tags, based on areas of interest, technologies, machines and projects. A small script can give me the last x entries from any tag, referencing it’s file/date. Makes it easy to find most things, as well as to browse by topic and date. And because everything is in the one place, it’s easy to grep when the tags aren’t working for me.
It started out as a way of logging things that I’d later pull out and put into a wiki for reference– but I find I don’t need to do that; although it would be nice to have done, it would be a pita to maintain. When a project needs it’s own notes, the daybook just makes a reference to the file, so I can work out what I was thinking much later.
How do you deal with questions where the answer is more conveniently provided by a picture?
I find that plain text works for me for almost everything BUT the knowledge base. Your needs and mine are quite similar but I find myself lacking the discipline to input everything in plain text.
Let’s take the example you used on the project page at GitHub, the favorite cleaner : wouldn’t it be easier to just take a picture of the product label? Many things I need to remember are like that: settings for a GUI tool, a son’s favorite cereal, the model of printer ink, the refrigerator water filter, a cover of a book that drew my eye, hours of operation for a store etc. Sometimes the product name is not sufficient and I need to remember the size, model.
Do you transcribe them? Another example you provided: “best h.264 settings”. What if the settings are from Handbrake preferences? Do you transcribe the settings in plain text?
It’s a genuine question as I’ve been struggling with this riddle for quite some time: How does one handle these situations and achieve a trusted system where everything is in plain text?
I use a picture. That’s why Evernote continues to be relevant for me.
I should be clear: the “knowledgebase” I’m talking about is specifically for things that are text based. It’s for quick notes about things I found on the command line, written answers to basic questions I’ll ask in the future. I still use Evernote for things like grabbing a picture of the parking column at the airport, PDF copies of receipts, PDFs of websites that I was more interested in for their design than their content, etc.
It’s not about discipline, really, it’s just–to me–this stuff is just easiest in words. There are obvious occasions where it would be time-consuming and pointless to transcribe things. That’s why I use a Spotlight-based tagging and relationship system: I can search my Evernotes, PDF files and my plain text at the same time.
In this example all I really needed to know was the brand. If my wife asks me to find a certain product at the store, I’m almost certainly going to take a picture of the empty product for reference.
I do my h.264 conversions on the command line, so it makes perfect sense to store the settings as plain text. In the case of Handbrake, I just keep backups of my settings files. If ever I lost my hard drive, my SuperDuper! drive, my Time Machine, my Dropbox files and my Arq (offsite) backups, I’d have lost all of my text notes, too. Neither note would do me much good in that case.
Don’t try to fit everything into a single app. Consider a metadata system that allows you to use the appropriate app and be able to think of the collection of apps as the “bucket”. For me, that’s nvALT, a folder of PDF files tagged with OpenMeta (nvALT tags can be automatically saved as OpenMeta tags on the text files as well), and Evernote.
Aside from basic Spotlight queries, I have HoudahSpot queries set up that will specifically search my input text as tag: (OpenMeta) and keyword: (Spotlight keywords AND Evernote tags) at the same time, as well as location specific searches that allow me to create contexts from my shallow folder hierarchy.
This is really turning into another post, so I’ll leave it at that for now. In short, just go with what works most intuitively and build a system around that.
Thank you for your thoughtful and thorough reply.
I think what you said, “Don’t try to fit everything into a single app. Consider a metadata system that allows you to use the appropriate app and be able to think of the collection of apps as the “bucket”.” is key and will take your advice, re-read your other posts on the topic and build the “bucket”.
Please write the follow-up post you alluded to if you find the time. Can’t wait to read it and find out even more details perhaps.
Do you just use your system to track day to day minutiae? It is similar to a system I developed for rote memorization (except mine was on paper, back when all computers still had hand-wound cores). I learned to take notes as q-a pairs directly, and I still take notes that way. It fosters breaking a detail down into unambiguous components.
When I went back to school to become a tech writer, I wrote a simple computer learning program, in C for one of my assignments. The program took a collection of q-a pairs and randomly presented them, tracked hits and misses, re-presented missed items, etc. If you wanted to extend your system to help to memorize stuff, you’re more than halfway there.
No, I don’t track day to day minutiae with this system. This is for bigger picture answers. I still log my late nights in VoodooPad.
I’m also good at memorization but have decided that my limited brain capacity is about as full as it can handle. A system like this keeps me from having to memorize things. If it’s not a daily-use type of answer, I just relegate it to the info bucket and let my search tools find it when it comes up again. That’s why the q/a system is necessary, too often I forget the question; it’s hard to find the answer without the question :).