I’ve really enjoyed getting to know Obsidian. It was almost effortless to have it become the tool of choice for my personal knowledge management approach. I have really enjoyed:
- the use of plain text (markdown files) augmented with metadata (the obsidian json files). This makes it possible to:
- not be locked into any proprietary format (you always have access to your plain text files)
- using your existing tools (like AlfredApp) or scripts to continue to manage the files
- importantly, it also lets you use version control to manage your files.
Why is version control important for personal knowledge management?
To tell the truth, I’ve not thought a lot about this before this. I liked this as an idea, and used git to manage this while I still used VimWiki. Initially I used git as a way to sync across my devices, but this was much more effort than just using dropbox or google drive.
I think this is really important so that I can refactor the knowledge I have captured here - freely, and without feeling like i am losing things. As I think about this as a part of my mind, here is the knowledge flow:
- thinking about something requires it to be in short term memory
- links to long term memory can occur
- processing into long term memory occurs during sleep / pruning etc
- using the computer as part of the exocortex I can help with single documents as short term / working memory
- most of the time, it might not matter to leave this as is
- but for important projects, it can really help with recall next time, if you are able to refactor this work in to a helpful summary that synthesizes or links to what is most important.
With effective search and links and backlinks can help to create useful structure for your personal knowledge system, it also remains important (both in your actual mind and this external one) to simplify and synthesize your own knowledge.
An anti-pattern to be aware of, is to avoid the desire to spend too much time managing, and synthesizing knowledge elements that you may never need or access again. Finding the balance of when to do this and when to avoid doing it - is something I continue to explore. For now I plan to use the following heuristic:
- use the stream by default
- use links and search and backlinks as much as possible
- when you access something for a second time and you are frustrated in how long it took you to understand something (or find something you think you had elsewhere), then this is likely an area that would benefit from a synthesis.
- refactor this knowledge if you become frustrated again in the future
- if routinely accessing it, consider extending it to be something public since this (1) seems important to you and likely might be of valuable to others - even if just in your team and (2) this will help give you more importance to maintain it.
Do I even need this if I just use dropbox or google drive? Don’t they keep versions. Yes, they do, but like google version history they can limit the number of revisions they store (for google this is the last 100 revisions or last 30 days), so I prefer to use
- a tool where I have more control over the versions and
- one that I know has a good workflow (i.e. which I use for my code)