Keeping that TODO List with the Terminal And Github

As a person with Attention Deficit Disorder, keeping a todo list manages to be a. incredibly difficult and b. vitally important to maintain even a shred of my rapidly waning sanity

I have tried roughly every system out there. Including, but not limited to:

  • Evernote,
  • Workflowy
  • Omnifocus
  • A Notebook
  • Emailing Myself
  •  Creating a Machine Learning Style App that Tries to Remember When I Need to Order Toilet Paper
  • A Stack of Oversized Post-it notes that I Keep on My Desk That I Then Pull The Top Post It From And Put In My Wallet When I Leave The Office For The Day
  • Giving Up
  • etc.

It's a whole thing.

The first biggest problem is cross functionality. I have a personal computer and a work computer and a phone, a purse and a backpack, and I work from two different offices. It's really important that the list of shit you need to do is trustworthy. Your brain will never let things go if it thinks there's a chance you'll lose or miss something.

The second biggest problem is workflow, every new todo list app or style of capture involves learning and perfecting a new workflow. I. Am. Lazy. I am also not very diligent about things that I dislike.

And the last biggest problem is bloat. There are tips and tricks to not making a todo list a giant mess of things you actually need to do piled in with a bunch of stuff you kind of feel obligated to do but will never really get to. (May I suggest a book called Getting Things Done) It's super hard to maintain that strict filter on things when you switch platforms a ton.

So my newest attempt (and no, I'm not saying this will work any better than the rest) is keeping those three things in mind. 

I'm keeping my todos where I hangout all day: Github.

The first thing I did was set up a private repo on Github. I know that private doesn't ever really mean private on the interwebs, but neither was my diary in fourth grade. I know how to use code words that my mom doesn't understand.

Then I set up a `README.md`, a folder called `daily`, and a folder called `backup`

The `README.md` will be my active TODO list. Why? Because Github automatically displays this file when you navigate to the repo. Also it makes me happy in a way I have trouble articulating.

The `backup` folder will be where I `cp README.md backup/too_much_stuff_piling_up.md` when my todo list becomes overwhelming and I need to cut it down to the essentials.

And finally, the `daily` folder is where I will put my morning brainstorming. This is a habit I picked up to collect brilliant ideas, and warm up for the day while I'm having my first cup of coffee. I find that this really helps with bloat in my todo list because it tricks my brain into feeling like I'm capturing all of my 'FACEBOOK FOR DOGS' ideas that seem awesome in the A.M. If they really are brilliant ideas, they'll stick around for a few days and then I look back on those notes and turn them into real TODOs and plans.

I'll keep this repo cloned on my personal computer, and on my work computer, all I have to do is edit files from github.com. I won't be able to edit the todo list from my phone, and to be honest, that may break this system. But the only way to find out is to try it.

Making in Easy!

So the workflow here is 'good' but it isn't great. I need to make it super easy for my morning lizard brain to use.

So I wrote the following aliases for myself in my `.bash_profile` to make things simple. (For some reason I don't use ZSH on my personal computer. I have no idea why. Different blog post I guess)

alias markdown='open -a Markdown\ Pro'
alias writing="cd /Users/rrgayhart/Sites/writing"
alias todo="writing; markdown README.md"
alias diary="writing; cd daily/; mvim $(date +'%m%d%y').md"

So what does this all do?

The first line allows me to open a document from the terminal in a Markdown Editor.

The second line lets me type writing into a terminal to get to my writing directory.

The third line responds to the command `todo` in the terminal by opening /writing and opening my todo list in a markdown editor

And the fourth line goes to my writing folder, opens the daily section, and uses Mac Vim to open a file with today's date. If the file already exists, it'll open that file, otherwise it'll start with a fresh file.

Will it work?

Honestly, I don't know. I suspect there will be more alias-ing and more folders, and I also worry about the fact that this system isn't easily editable from my phone. 

But, if nothing else, I learned how to get a formatted date from Bash. So that's pretty cool.