Plaintext Productivity

A followup to my 2015 post on desires to replace Evernote as my primary information store.

What I need

Task tracking. I am currently doing a doctorate, so there are lots of little jobs that I need to keep track of, such as processing of different data sources and management of research trials.

Project management. As mentioned above, these tasks are actually part of larger projects (which we can, in this case, loosely consider a collection of tasks).

Notetaking. I’m fairly comfortable saying that my main goal in life is to gain knowledge. I love reading, on all sorts of topics. I’m actively reading about 4 or 5 topics at a time, as well as learning languages, and trying to add skills (if we consider skills such as guitar or chess to be reasonably distinct from knowledge). For this, notetaking is vital to formulate the knowledge, and effectively extend my brain into the digital realm.

What I want

Ubiquitous capture. I want to get any thoughts, tasks, ideas questions outside of my head and archived safely. If you don’t record all this, you may lose information. Tragedy!. However, some of your thoughts will be shit, so this capture needs to be heavily filtered at some point in the future.

Mobile access. I read a lot on my phone, so it would be useful to go straight from reading to capturing information from these books. I can carry paper of some form, such as a moleskine or index cards, but these can get lost (I would hope that I don’t lose my phone as easily).

Simplicity. The more complex a system is to use, the higher the friction in using it. That will lead to less information getting stored, and less information getting received. I want to try and use as few different technologies as necessary, but not fewer.

What I tried

Notetaking

I’ve went through a bunch of different technologies. One of the bases of my information gathering is a good text editor. As a programmer, the main choices for a language-agnostic text editor would be:

  • Atom
  • VSCode
  • Sublime Text
  • Vim
  • Emacs

I’ve tried all of these. My initial editor was Sublime Text. From this, I heard rumour of Vim, and then basically ping-ponged between all the editors. I liked the voracious community of vim and emacs, and the ability to get much distinct functionality. The more modern editors, such as VSCode, Atom, and Sublime Text have nicer, more modern APIs and syntaxes for me to customise myself. However, with these editors came bloat, and generally significantly lower quality plugins due to the lower barrier of entry. Of these modern editors, VSCode was probably my favourite, as it seems to be cohesively put together, with plugins generally performing well, however the selection is more limited.

Furthermore, I also experimented with Dropbox Paper, Dropbox’s new web-pased Markdown editor. This seems like a really good idea, with cross-linking of documents and rich-text display, but with an effectively plain-text background syntax. However, I found the performance somewhat slow, and had issues importing existing notes (which I was not keen on abandoning) into Paper.

Additionally, for ubiquitous quick capture, I used Google Keep. This was basically serving as an inbox, to let me grab bookmarks, book note shares, thoughts, quotes, and anything else I wanted to dump somewhere.

Eventually I’ve settled again on Vim (and more recently, Neovim), which will be covered below.

Todo management

Many todo methods have been tried since the original Evernote, however the two longest lasting methods were probably Wunderlist and Trello.

Wunderlist felt really nice to use, however I noticed over time that todos would just add up without every really getting cleared out, and then the UI became cluttered. I also decided to switch away from Wunderlist after Microsoft decided to close them down in favour of their own in-house todo manager.

Trello suffered from a similar fate. I thought the more kanban-esque approach would help me process tasks, and also hoped that being able to add context within the trello cards would enable me to document my project and task’s needs as they came up. However, the main pain point with this was that again, cards would build up, and I also couldn’t easily reference tasks within my logbook or any project documentation that was written locally.

What I have

Todo management

Todo tracking is now done with todo.txt. I love command-line applications, as by their nature it’s easy to modify them to fit my exact needs. It just so happens that there is also a great Android app, simplenote, which lets me easily filter my notes if my list gets complex.

I’ve installed several addons for todo.txt on the command line, particularly schedule, which lets me effectively hide tasks till a certain date, but still have them recorded. Primarily, my workflow is just simply adding, viewing, and doing tasks.

Project management

Project management is now handled as part of my logbook (private) git repo. Each project has a directory, and within these directories i have a tasks folder, with a list of markdown files.

Each markdown file provides context for a specific task, such as process data from the 2017 evaluation trial, with a list of jobs that need to be done.

The main README for the project, in the project’s directory, has markdown links to these taskfiles locally. If the list gets large, I prepend important tasks with !, which lets me sort them to the top of the list.

I then go through these project READMEs and add specific tasks to todo.txt for me to process soon.

By keeping this plaintext, like todo.txt, I can easily apply my own filters. When viewing github, I can see a nice rendered view of the markdown, with links to the sub-tasks for context.

Notetaking

Vim. I came back. And nowadays, I’m investing much more time in getting really comfortable with vim (including writing some of my own plugins), whilst getting rid of external dependencies.

I have one primary notes folder, stored in Dropbox and intermittently backed up to github, with notes all cross linked to each other. Each note, as much as possible, contains a singular idea. This lets me link multiple ideas together to create a narrative, as well as giving me multiple hooks that I can attach new knowledge to.

A big advantage of this is that with apps like iA writer, I get the mobile access that I want, and when at a computer I can easily switch between my main tasks of programming, notetaking, and managing todos (using command line todo.sh). Plus, as these files are all plaintext, they can be opened on any device, anywhere. I don’t need to worry about stuff like vendor lockin (like struggling to import to Dropbox Paper), or about having to deal with other people’s decisions on software…I can write the tools th handle the plaintext data the way I want.

Additionally, I can find any information I want through either cross-file links, top-of-file YAML metadata (tags), or searching files (grep|ag|ripgrep). The only difficulty is searching for information on mobile, but I’m reasonably happy with services thus far.

Capture

My primary capture methods were Google Keep and a single __inbox.md markdown file. The markdown file was getting very messy, and basically had it’s own structure that I never got around to organising and archiving away in my notes, so I decided to transition to having a designated dumping ground, which was Google Keep.

I eventually found a dislike for this, due to its limited editing and filtering/searching (which is quite shocking for a Google product).

I’ve since transitioned to using email for transient thoughts; specifically Gmail, or Google Inbox. If I’m on the PC, I can either directly create a note, email myself a link or set of links, add a todo using todo.sh, or add a single line thought to capture.txt. With the email-based system, I can easily archive or delete emails that have been processed, effectively filtering my inbox to get the value from it.

The beauty is that on Android, I can easily share sections from books or other links directly to email, and with email filters set up, I can capture email in different ways (whether it be a book share or a collection of links, for example).

Future thoughts

The only real pain point I’ve seen thus far is that I can’t easily search my knowledgebase on mobile.

I can easily capture links, quotes, book sections, pictures from my phone via Gmail or Dropbox. I can add new information to notes while mobile with iA Writer. I can easily search my notes on a PC. I can easily manage todos.

One of the most important points is probably that the constraints of plaintext actually increase my productivity. Without focusing on formatting or managing an app’s idiosyncracies, I get to just get work done. The more concise plaintext tasks from todo.txt lets me focus on the work, rather than having to add context.

This is not the technologies I thought I’d have tried, and until recently even the email option seemed strange, but it’s working really well so far.

Contents