← Back to home

My bullet journal

There’s a system called The Bullet Journal. It’s very cool because it lets you combine notes, events and todos all in one place. Among all of the systems I’ve tried using, this one has proven to be the most versatile and flexible.

The only other one that matches the flexibility is called “Passion Planner”. But to use it you’ll have to either buy a special notebook, or spend too much time drawing the calendars and all of the columns, or perhaps print it yourself (which I did once, and it came out meh). I fancy once in a while using a complex system like this to organize stuff, but in my case the system itself starts to get more attention than the stuff I’m trying to organize.

Ok, so back to the bullet journal. I’ve tried doing it on paper. It works well as it has a good set of abstractions. I eventually got tired of carrying my notebook everywhere, and of retyping all of my scribbles into a computer when I needed to share them. So I thought of using an app for that. There must be an app for that. There are probably several apps for that, and I already anticipated spending an evening to compare all of them and to choose the best. So I almost opened the search engine…

But then stopped.

You see, I’ve started journaling many times in my life. In fact, I started so many times that I decided these were not disconnected beginnings but continuations of my life’s journaling efforts with gaps in between. The best piece of wisdom I got from all of the attempts is that never, never ever use a system which locks you in any other format rather than plain text files. Even if it’s openly accessible (like JSON or an SQL table), don’t do it. Use plain text files. I’ve started journaling with Wordpress, Evernote, OneNote, Apple Notes, Day One, Bear and perhaps a few more. What does the current fashion say which journaling app is the best? The problem with fashion is that things go out of it sooner than you want it to happen. All of these apps grow weary after awhile. You change computers, change systems, and your notes and journals always have to travel with you. These are the pieces of information that are irreplaceable. Plain text files on a disk (or perhaps Dropbox if you trust them) will survive any transitions between tools and apps. You just need a text editor and you can continue journaling. Don’t forget to do a backup, as well as flossing your teeth.

For my bullet journal I’ve decided to use plain text files. I’ve opened my text editor and jotted some of the tasks:

. Write a blog post
. Buy groceries
. Be nice

Good. Then I completed some of the things, and postoned others:

x Write a blog post
x Buy groceries
> Be nice

Good. On the next day I continued. I figured out that I wanted to have a separate file for each day, so I created a new one:

# 02 Jan 2019

. Write another blog post
. Cook dinner

And then I thought that I might have forgotten something that was on my list yesterday. So I had to look it up in the previous day. And then it continued, day after day, a process that I soon figured out can be automated.

There was a trick that I’ve seen working very well. We’ve done it at Microsoft To-Do. The idea was that a user has to start every day with an empty list of todos, and the system will suggest what the user might do today. Some of the todos came from reminders that user set awhile ago. Some came even from a fancy machine learning backend looking at one’s inbox. The most useful suggestions came in a group called “From yesterday.”

It’s amazing how well it works. You try to achieve some things today. You don’t have time for the rest. Next morning you plan your day from scratch, and decide if the things that you wanted to do yesterday are still relevant today. This cycle filters out unimportant things naturally.

So I wanted to have the same. I had 10 minutes to somehow bring it to life. The tool I had at hand at that moment was the best piece of software ever invented — unix pipes and filters. Why is it the best? Natural selection, I tell you. So I went on a mission to make my bullet journaling script work, and here’s what came out:

#!/usr/bin/env bash
cd "~/bullet" || exit 1
TODAY="$(date +'%F').md"
if [ ! -f "$TODAY" ]; then
    PREVIOUS="$(ls | tail -n1)"
    TITLE="$(date +'# %a, %b %d %Y')"
    sed "1s/.*/$TITLE/" "$PREVIOUS" > "$TODAY"
fi
"$EDITOR" "$TODAY"

It’s a bit cumbersome to read. The gist is that for every new day it will create a new file, copy everything from the previous day, and set today’s date as a header. That’s about it. Tasks and notes travel automatically from day to day, and I have to simply clean the completed ones out. While the last step seems tedious, it’s actually very satisfying because I remind myself of the things I achieved on the previous day.

It works fantastically. I eventually started tracking my work-related tasks, as well as my personal ones. It’s a text document, so I can use all of the creativity I have, except when it involves drawing. I can divide these documents into sections, track my fitness progress and my projects.

For example, we’ve just moved to an apartment which has old wooden window frames, and they leak cold air in winter. Each window consists of two parts: a big one and a small one, and they open separately. I wanted to seal the gaps of each of these parts. I bought some sealing tape, and it turned out I bought not enough. So I had to get more the next day. Not to forget which windows are already sealed, I came up with a silly system in my journal:

..xx xxXX

Means nothing to you, but for me it works amazing. There are 8 windows, and the space means there’s a wall between them. . means I haven’t sealed the window at all. Small x means I’ve sealed only the bottom part. Big X means I’ve sealed it completely.

Here you go. It’s nothing to be proud of, except that I had another chance to exercise my creativity muscle. A bit of “Low Tech, High Concept”, as they put it.