mkaz.blog

Code

One-line Journaling

Journaling is a practice that always sounds better then actually doing. I want to be a thoughtful and insightful person who self-reflects and grows personally each day, but do I really have to bother with all that writing?

The journaling method I use, that doesn't fade after the first entry, is to write a short one-line about big days and events. This makes a tidy list that you can look back on and remember.

James Clear, Atomic Habits, wrote about one sentence journaling and how it is an easy way to start the habit of journaling. As he says in this tweet

Just start.
Start slow if you have to.
Start small if you have to.
Start privately if you have to.
Just start.

Format

An entry for me is "YYYY-mm-dd | Text entry here" and then keep them all in a single text file. An example entries look like so:

2022-04-28 | Adopted Stark
2022-05-14 | Matilda school play

Now if you keep this going for a few years, you probably could write a fancy script to prompt you with fun facts. "This day 3 years ago, ... "

I haven't gone that far, yet, usually I'll just grep for specific words.

grep concert oneliner-20*
oneliner-2017.md:2017-05-17 | U2: Joshua Tree concert at Levi's
oneliner-2018.md:2018-08-15 | Jack White concert at Bill Graham
oneliner-2022.md:2022-07-27 | Red Hot Chili Pepper concert in San Diego

Getting Started

This is simple task and can be accomplished using just about any tool, a text editor, Google Docs, Apple Notes, or whatever you have.

I always have a terminal open. so here's the basic bash script I used for awhile.

echo $(date +"%y-%m-%d") "| $@" > oneliner.md

The problem with that script is I'm a morning person. So if I'm going to write something down it'll be the next day, so I'd make an entry and then tweak the date. Not a big deal, because another app I always have open is my Obsidian vault and the textfile written to is in there, hence the markdown extension.

Thereotically, I could extend the bash script to take parameters and do all that jazz, but who wants to program in bash. 🤮

So I wrote a Rust program to do it.

You can see the code and download binaries at: https://github.com/mkaz/oneliner

Animated GIF showing oneliner in action

It has all the power of the original bash script, plus the --yesterday flag, to set the date to, you guessed it, yesterday.

Another bonus with the Rust program, you can have multiple journals, I use one specifically to track movies I watch. You can even include an emoji review of the movie.

 oneliner -j movies '😱 Halloween 1978'

You can install via binaries on GitHub releases page or if you are on an Apple Silicon Mac and use Homebrew.

brew tap mkaz/homebrew-oneliner
brew install oneliner

Let me know if you use it and what you think.

Published: