It is very easy to forget all the specific details you deal with during your work day, especially if you need recall them in several weeks. I certainly tend to forget specifics or tasks I’m supposed to do. And when writing weekly status reports for work, I end up second guessing myself as to where my time was sunk into over the week.

Recently I wrote a small note taking script and ended up making an effort to take notes throughout the day about what I’m doing, what is being discussed with others. Here it is:

#!/bin/sh

if [ $# -eq 0 ]
then
  FILENAME=`date +%Y-%m-%d`
else
  FILENAME=$1
fi

FILE=~/notes/$FILENAME

vim $FILE

The file notes is stored in /usr/bin and is assigned an executable flag.

Usage:

  • notes opens up notes file for the current day. Files are named using YYYY-MM-DD format. If a file already exists, it appends to it, if it doesn’t - it creates a new file.
  • notes <filename> opens up a specific notes file in ~/notes/<filename>.

The basic idea is simple. On each day running notes command will open up a new file in notes/ folder for that day, e.g. ~/notes/2016-08-28. Notes can be written in free form, though I usually end up using Markdown style lists. If you need to browse older notes files, a file system explorer suits well. For content search tools like grep or ack work fine. Sharing notes across multiple machines is easy with a tool like DropBox.

Guake is just a top-down terminal application. It is useful, because with a single hotkey it opens up a terminal above all other apps. So you can do work in your normal terminal or browser, hit F12 to open up Guake terminal (with note file already opened up in vim), take notes, hit F12 to hide Guake and continue working.

It ended up working really well. Looking up details of a particular day or week is as simple as opening several files. Good integration with the environment I already use minimizes friction, and I’ve been using it for the past month almost every day. Certainly a positive change.