My Note Taking System
Perhaps I'm a bear of very little brains, but I extend my
cranial capacity with notes. Always have. New job? New
notebook. Soon, it'd be filled, and I'd grab a new notebook.
Looking things up in a notebook is nearly impossible. I've tried lots
of ideas: clipboards, indexes and multiple colors. Of course, the best
searching is done by a computer. But that introduced its own
complications. Notably, anything stored on the company computer
became unavailable after the doors closed.
With laptops and cloud storage, my note taking system has evolved.
Text Files
While I appreciate fancy applications, like
Evernote††By the way, the Evernote app, its interface, its cloud storage, its ability to store stuff other than notes, is really slick. So if you don't want your data as text files, it is easier to use it. ,
I need my notes in text files (not a proprietary format). Then
I can edit my notes with Emacs or anything else that strikes my
fancy. Also, text files allow me to take advantage of grep
, scripts
and other command line tools.
I'm sure I don't need to mention that text files stored in a Dropbox
or Google Drive directory are easily shared between computers and
devices, but text files are easy to check into a Git
repository. Versioning like this also allows for discreet checkpoints
in case of conflicts or disasters of the stupid variety.
Tagging
At first I organized my notes in folders, but this
means that without effort‡‡Symbolic links are one approach , a note can only be in
one folder. Sometimes a note starts out being useful for work, but
grows. I now tag my notes.
The Mac file system can store meta information with a file,
and a Google Code project, OpenMeta, makes it easy to add
tags for multiple applications (including the Finder and Spotlight).
Sharing
My notes are written with Markdown format, and since those
type of notes are easy to convert to HTML, they can be easily consumed
by friends and collegues.
Once you add jQuery to the list, Outer Space is the limit.
For instance, when I need to do a presentation, I write it up as a
markdown-formatted note with each slide separated by a single !
character. I then use my version of the Markdown Presenter
project.
For another example, I often run little RPG campaigns for my kids, and
I write up ideas as notes while I'm commuting home on the bus. When I
get home, I export it as HTML that includes some JavaScript code, and
this allows me to click on phrases like 3d6+7
and have it randomly
roll dice to display 17
. I have other JavaScript helper functions
for keeping track of lost hit points, initiative, etc. You know, fun
stuff.
Searching
Once you get a few hundred notes, finding the one you want can be a bit of work.
I use applications like nvAlt and my own shell scripts.
Application Support
Clearly, deciding to write a bunch of notes in text files require nothing
special, however, if you wanted to take advantage of both my workflow as
well as my shell scripts, follow along…
- Create a folder in Dropbox (or Google Drive). I stopped using SimpleNote as a bug with their system removed all the '+' characters in my notes
- Download nvAlt (a fork of Notational Velocity) for notes written on my Mac.
- Export to file system as text (see screenshot below)
- Destination to
~/Dropbox/Notes
- Remember to write in Markdown (optional, but helpful)
- The 43 Folders Guy seems to like this app as well
- Download and install OpenMeta, as nvAlt and other apps tag files with this.
Now, you are ready to use my shell scripts that I describe in the next section.
A couple of other helpful applications that I use:
- I like Byword for editing my notes on my iPad
- This QuickLook plugin reads and displays Markdown-formatted text files
- Brett Terpstra (the guy who wrote nvAlt) has some nice Markdown-oriented service scripts
- An Emacs mode kinda works with Markdown-formatted files.
- Tags are easy with nvAlt, but Tagger makes it easy to tags everything from the Finder.
- Ali also makes a TagList for finding notes with particular tags. Nice, but I usually just use my scripts when I'm outside of nvAlt.
Shell Script Support
My command-line script is open source, so if you wann'em, you
can have 'em:
But Howard, why did you write it as a shell script?
Shell scripts are not very fast, but I wanted to make it easy
for anyone to fork, and adapt my script to new environments and
paradigms.‡‡Can I really use that word and look myself in the mirror?
That said, if anyone wants to take the ideas and redo them in
something faster, that'd be pretty cool. I will probably do that
once I finish the test suite.
To use them, either clone the Git repo from Github, or just
download the few files from the web interface, and follow
the online instructions.
Tell others about this article: