| tags: [ notes ]
Reflection on Starting a Daily Log
Inspired by this fantastic article by fellow RC alum Peter Lyons, I’ve started a log to keep small notes about anything work-related. The idea being that it becomes a central repository for all the little tasks/notes that I’d normally write down on a daily basis.
Reducing barrier to entry
When I first started the log, it was a dotfile kept on my root directory
that I would open in a separate buffer using :e ~/.daily_log
. This was not
ideal and I would often forget to open the log to write stuff down as it was
easier to just use a nearby pen and paper. Being a vim
user I figured there
must be some way to programmatically do this, and ultimately I came up with a
quick-and-dirty vimscript function that fulfilled all my requirements:
function! AppendToLog()
let time=strftime('%x %X (%Z)')
sp ~/.daily_log
call append('$', ['', time, ''])
execute "normal! Go* "
startinsert!
endfunc
The function above will open the daily log in a horizontal split, append
newline-timestamp-newline, followed by an asterisk, and
put the user in INSERT
mode. I mapped the function call to a leader key:
" Quick-edit daily log
nnoremap <Leader>l :call AppendToLog()<CR>
A call to AppendToLog()
would effectively open the log like so:
...
01/22/2018 19:52:51 (CST)
* Previous note
01/24/2018 11:25:25 (CST)
* █
Having now greatly reduced the amount of overhead to open the log to a mere 2 buttons, I found myself using it much more often!
Update (2019-03-24): I’ve been using this method for more than a year now,
but sometimes I’ve found myself not in vim
and still wanting to write a log
entry. I’ve added a bash alias that opens vim
and calls the above function
immediately:
alias note="vim '+call AppendToLog()'"
Realized benefits
I’ve now been keeping a daily log for approximately a month and I’ve noticed some tangible benefits (in no particular order):
1. Easier to get into, and maintain, the “flow”
When switching between tasks, it was sometimes difficult for me to maintain a rhythm and continue working – I would have to stop for a bit and recollect my thoughts. Having this easily accessible log “bridged” the gap a bit as I can look through it to see where I last left off in my previous task. This of course means that I was appending my progress on a task as I switch over.
2. A single repository for my notes
This ties back to the first point, but having a “single source of truth” for all my notes/musings/ramblings meant that I did not need to fumble around looking for a piece of paper or post-it note somewhere (which was often left at home). I could go about whatever I needed to more efficiently and with less distraction. I’m also version controlling my log on github so that I can scan through it when necessary even when I’m not on my computer.
3. Tracking progress
At the end of the week, I often write a report for work (also an idea from here) and being able to look back into the log to see what I’ve done has been tremendously helpful. No longer do I have to spend a long time trying to remember what I’ve done the past week.
Fin
Keeping a log – and making sure that access to this log is incredibly simple – has been such a great boon for me that I often now find myself using it to jot down anything programming-related that comes to mind that I’d like to note for later. This is still a relatively new practice for me, and I’m excited to see how it will grow and morph as I spend more time with it. A big thanks to Peter Lyons for this great idea.