From time to time I find myself looking up or trying to figure out technical stuff that I’ve already done in the past. Sometimes it’s on some personal project and sometimes something work related. I always end up wishing that I had made notes the last time around.
I’ve attempted to keep notes from time to time but I’ve never been great at keeping track of them and actually using them. Sometimes I’m not even sure if I have notes on a specific topic or not.
I think It’s about time I figure out the best way capture technical knowledge and refer back to it when needed.
Considering Setting up a Private Wiki
The first thing that came to mind was building a private wiki! Using a wiki for personal knowledge management is not a novel idea. Here is a Wikipedia entry on it. It seems like quite a few people already do use this option.
I did some research to find what would be the most suitable wiki flavor for my needs. My initial thought went to MediaWiki which is used by Wikipedia. Upon looking into it I found that it would be a little too complex for personal use. The closest second in popularity among open source wikis is DokuWiki. It seems like a better option for individuals and teams. Partly because setting up a ‘what you see is what you get’ editor plugin in it is a lot easier for it compared to MediaWIki. I almost went for it for personal use. I might still end up using it for a team or something in the future.
Wikis are good but they still don’t make note taking a seamless process. It would take a significant effort to keep everything organized and adding notes will take more effort than just jotting down something in notepad.
I came across a significantly better methodology for personal notes. The methodology, which I will elaborate further on shortly, was first introduced by Notational Velocity for Mac which has a cult like following. A number of other software implement the same methodology on different platforms; nvALT for Mac, ResophNotes for Windows, nvPY cross platform (just needs python installed on the system).
The idea is that searching and note taking are not two separate activities but one. When you want to jot down a quick note you just start typing and the software quickly lists all the notes with words matching what you’ve typed so far. If you see a note that matches what you are noting down at the moment, just add details to that specific note. If no matching notes are found then just press enter and you have a new note ready to go. No need to decide which directory to put the note in just so that you can find it later when you need it. You just type what you are looking for and everything relevant just gets displayed to you for use and editing. The great thing is that the search looks for all words appearing anywhere in the notes and reduces the results as you add more and more words. So you don’t even have to remember the exact sequences of words. Just start typing relevant words and you’ll get there. Simple and efficient.
Use SimpleNote (which is free) as the backend for any of the above applications. The notes will be synced across all your systems. And the best part is that there is no vendor lock-in. All your notes are stored as text and can be exported to text files anytime.
I ended up selecting ResophNotes portable version (no installation required, just extract somewhere and start using it). It’s great and I think it would be sufficient for most users. I highly recommend checking it out if you are on Windows.
I also considered using nvPY because of its support for regular expressions. If you don’t know what they are it would likely be better to go with one of the other options because the installation of nvPY is a bit of a process. The installation process is described here if you are interested in taking a look. (At the time of typing this, nvPY is not syncing with SimpleNote due to a recent change in the SimpleNote API. So it’ll be best to go with another option for now till version 1.1.0 becomes available for install here.)
A Little Bit about Markdown
If you like a bit of formatting in your notes then Markdown is great for that. The basics are:
- Use # at the start for a heading, ## for next lower level heading, and ### for the next level, on-wards.
- Use -, *, or + at the start of the sentence to make them into bullets.
- Use tabs to make nested bullets
- Use * or _ around text to make bold or italics. **is bold**, *is italics*.
Most text based systems have support for markdown. So if you take your notes using markdown then they can have good presentation down the line if you need it. (For sharing with others etc.)
I think this method of note taking will help me a lot. Looking forward to actually finding most of the notes I take down when I need them.