Learning Tower of Babel

Over the past couple months I've started building up a bunch of tools in order to manage all my grad school, work, and personal knowledge. Now as a programmer, of course I would have to come up with something extremely complicated.

The current system I have looks like this:

1. Background

I've had an itch to take notes in the past, either directly in the margins of books, on post-its, or just in a variety of notebooks. The problem was, I could never successfully manage to reference them all, and this information would end up getting lost somewhere.

As a result, I wound up going through a series of applications, from wikis like org-brain, to Devonthink + Tinderbox (this came the closest), to a variety of bad-to-passable software. At the end of it, I had basically settled back to where I started, which is a mess of kindle highlights, instapaper highlights, anki notes, readwise notes, notes in notebooks, twitter bookmarks, pinboard bookmarks, random post-its, etc.

A few weeks back I found org-roam, which basically is everything I wanted rolled into one. There had to be some leg-work before I could get it working, however.

2. Inputs

I ended up classifying the inputs into my notes into four broad categories:

  1. Short form knowledge
    • Mostly stuff from Twitter, Instagram, messages, etc
  2. Medium form knowledge
    • News articles, podcasts, etc
  3. Long form knowledge
    • Feature articles, papers, books, etc
  4. Language knowledge
    • Vocabulary, grammar rules, etc

as well as the three main types of knowledge I typically handle:

  1. Computers related
    • mostly short & medium form knowledge, with some long
  2. Middle East and grad school related
    • mostly medium & long, with some short
  3. Arabic
    • different categorization

From there, I had already been using Instapaper and Zotero with Zotfile, while using Anki for language practice and Readwise for spatial repetition, and Pinboard for long term archival.

Instapaper lets me dump the extra tabs I always seem to accumulate, while Readwise integrates with Instapaper's API and Kindle highlights to automatically pull in text I've highlighted, making it a pretty good staging ground.

3. Processing

Since I was already using Instapaper as a staging ground, turning those notes into org-roam notes was fairly simple. This was also surprisingly easy for my highlights and notes from various papers as well, I've really grown fond of reading with a pen in hand the past couple of books.

I primarily use org-journal for my daily notes, and I make notes with the Zettlekasten method. As a result, each note ends up looking like:

* Note Title

Tags: notes that are related conceptually to this note go here

Summary of the text

Details from the text, often including references and quotes

I end up making a note for every single article/paper/book I read, which then I can find semantic links for.

For example, the full semantic graph for my notes right now looks like: brain-dump.svg

This graph looks is a mess, but is surprisingly useful in identifying stray notes. Plus, finding out how your notes relate to each other is pretty enjoyable.

4. Displaying

Primarly I query stuff within org-roam itself, but after seeing https://braindump.jethro.dev/ built off of org-roam, I decided that I should have something similar.

For the most part, I ended up cribbing most of Jethro's UI with http://wiki.malloc.dog (thanks Jethro!). I've found this really useful to query, share, and read my notes on my phone.

The display engine for this is driven from a forked hugo theme. I use ox-hugo's auto-export-on-save to generate markdown files, which then get translated via Hugo to HTML files, when then get slapped onto my web sever.

5. Too complicated?

This setup is almost certainly too complicated, but part of the fun is overengineering things.

Posted: 2020-04-21
Filed Under: personal