Building a Second Brain in Emacs and Org-Mode
By Michael Fogleman @mwfogleman
Note from Tiago: This is the first in a series of guest posts I hope to eventually publish, showing how knowledge management principles and techniques, from my course Building a Second Brain and elsewhere, can be implemented in a wide variety of software programs. Check out the Part 2 here.
Getting Things Done (GTD) is a best-selling productivity book written by David Allen. If you’re not already familiar with GTD, here’s a recent, fun, and illustrated conceptual overview.
It’s no surprise that managing tasks and information in a systematic way makes things smoother and more effective. Still, GTD has an unanswered question: how do you store and use non-actionable reference material? David Allen, creator of GTD, strongly recommends that you store non-actionable, but useful information as “reference” materials. But he only says that how exactly you do so is a matter of “personal or organizational judgement.”
I haven’t always had a good system for personal knowledge management (PKM). You might have the same problem. Are your physical and digital storage spaces crowded and messy? Do your organizational schemes change often but still somehow always conflict with each other? How do some people do it? What are the rewards of a trustworthy PKM system?
When I heard Tiago Forte on Daniel Thorson’s podcast, Emerge, I thought he might be on to the answer to these questions. If you aren’t familiar with Tiago’s work, you can find a brief overview here. His current focus is an online course about this topic: Building a Second Brain (BASB). It addresses how to capture, organize, and share reference materials, and provides one main strategy for each aspect:
Building A Second Brain extends GTD, and focuses on the reference materials problem. Here’s how.
You can see a good overview of these ideas here at Doug Toft’s Books for Behavior Change.
Why should anyone do all that work? Well, imagine that you had never heard of GTD and you were skeptical of its promise. After you’ve implemented GTD, capturing your actionable information, storing it in the appropriate place, and dealing with it at the right time and in the right context, you experienced a dramatic improvement in your personal productivity. If you implement BASB and deeply dive into your reference materials in a systematic way, you’ll see a similarly dramatic increase in the quantity and quality of your creative output.
When I was considering taking the course, I wondered how it would change my current workflow. I have used Emacs and Org-Mode for years, to manage my tasks, make notes, and more. Together, they form the most powerful software system I’ve ever come across. I didn’t want to have to give that up for a new system.
Tiago uses Evernote for storing his reference materials, and it serves as the reference implementation for the course. One of the most frequently asked questions Tiago gets about the course is “Do I have to use Evernote?” The answer is “No, but…” He strongly suggests that you use Evernote for the duration of the course so that you can learn to use each technique and strategy that he teaches to be sure that they will work for you. The course doesn’t require you to use Evernote. Just like GTD, the concepts in BASB can be implemented with different technologies. At the end of the day, it’s the concepts that really make the difference. I decided to use Evernote for the course, as suggested, but I had an ultimate goal: to implement a combined GTD/BASB workflow using Org-Mode.
What would people who are interested in BASB want to know about Emacs and Org-Mode?
OK, so, what is Emacs?
It’s a text editor, it’s an operating system, it’s a Lisp Environment. It’s free software, and one of the largest, longest running software projects still in use. You can find Emacs here, as well as a tour here.
If there’s a task humans can do with computers, you can probably do it in Emacs, on almost every operating system or computer. The traditional UNIX philosophy is to “do one thing well.” Emacs takes a different, but complementary approach. It encourages its users to do as much as possible in Emacs, and everything gets better and easier.
And what’s Org-Mode?
Org-Mode is an application within Emacs, used for outlining, note-taking, project management, literate programming, and more–all with plain text. You can get a top-level sense of what it is with this summary, or watch a video demonstrating what Emacs and Org-Mode look like and showing why you might want to use them.
What principles emerge from using Emacs and Org-Mode?
I’ve noticed that programmers often do a thought experiment: “What if we thought about X as Y?” For example: software as a service, programs as Lego-style blocks, etc. Emacs treats everything as text — not just text files, but also things that aren’t usually thought of as text, like RSS feeds, emails, files, even games.
Here’s an example. Most people interact with files on their computer or elsewhere through graphical user interfaces: right click to rename, drag and drop, and so on. Those who use the command-line learn “ls” and “cd” and the like to do similar tasks. Programs like Dired in Emacs go even further. What if you work with files and folders through text editing? Then every command you know within the larger program for editing text can also manipulate files: renaming them, moving them, deleting them, changing permissions, and so on. Here’s a very short demonstration video.
Much of what I’ve learned from using Emacs is related to programming. Simply by using Emacs over time, you will be exposed to its internal programming language, Emacs Lisp. If you choose to, you can take that as an opportunity to learn to program for fun and for profit. Here are some of the concepts and tools that I’ve learned through using Emacs:
- Literate programming: Blocks of code alternate with blocks of explanatory text, similar to Jupyter notebooks, Mathematica, and others
- Pandoc: Pandoc converts documents between different formats, including Emacs Org-Mode files
- Post-fix calculators: Emacs has a powerful built-in calculator, Emacs Calc. It is a “post-fix calculator,” which means you express equations like “2 + 2 =” as “2 2 +” and get 4. Accountants use post-fix calculators for efficient calculations
- Regular expressions: a mini-programming language for querying and manipulating text. Most programming languages and software development tools support them. You can actually use them in Google Docs!
- Version control: Version control keeps track of the history of changes to files over time. The most popular form of version control at the moment is Git. Emacs has an excellent Git interface, Magit. Magit users often report that it makes Git easier to use, and that they also learn its more advanced features by exploring the interface
Those are just some of the tools I’ve learned through Emacs. What principles have I learned?
- Keyboard first: As with many other programs, Emacs rewards you for doing everything at the keyboard, with keyboard shortcuts. This is definitely a very efficient way of doing things with computers
- Outlining: Org-Mode takes the view that everything is (or is related to) an outline item. Org-Mode is the best outliner I’ve come across. If you’ve used Workflowy, and loved it, well, that’s just a fraction of the goodness that’s available in Org-Mode
- Self-documenting code: Emacs makes it very easy to get documentation. You kind of have to use this to believe it, but it’s easily the best documentation of any software project I’ve ever used, simply because it’s so discoverable and dynamic
- Environment and configurability: If you don’t like it, you can change it. If you want some functionality that’s not already there, you can roll your own. This is partly because Emacs is free software, and partly because of its use of Lisp. As a downside, this spoils you for software where this isn’t taken for granted
- Software is memetic: Emacs configurations typically have snippets copied and adapted from others. Will Mengarini and others have compared this to evolution and horizontal transfer
- Our tools shape us: In his post “You are your tools,” Daniel Lemire discusses how learning new tools manifests a particular aspect of the growth mindset, and that learning and using new tools makes us smarter. Emacs is a wonderful place to explore this. It can support most programming languages; packages are made for using many tools, paradigms, and workflows; and more are available all the time
- Use the best tool for the job: In Sacha Chua’s interview with Carsten Dominik, Org-mode’s creator, he talks about using a derivative version of Emacs, microEmacs, and how that experience “…taught me… something really basic…. I made the decision that I would never start using an inferior tool. It doesn’t really make sense. For example, I didn’t use Awk, I used Perl, because I knew that if you try to program something with Awk, you will just hit your head against the wall at some point. Perl is just so open-ended that whatever you want to do, you will be able to do in this language… I think it’s the same is true for Emacs. Basically, [it’s] just completely unlimited. Whatever you want to do is there.”
Emacs isn’t the best tool for every job, but you should identify what the best tool is for each job, and use that.
Software is contingent
There’s one final thing I’ve learned from using Emacs and Org-mode. I used to primarily use other people’s software. I’d use the available operating system — Windows or MacOS. I’d use the available programs — Microsoft Office, Internet Explorer, Safari, etc. Those were the options. These situations limited my perspective. I could try a new program if it came along, such as Firefox, or LibreOffice, but I only had so many options. If I didn’t like something, or I found a bug, that was it. Software is just the way it is, and you can’t change it.
But when I started using software that I had to configure, software that I could extend, I saw that there was a far broader range of possibilities. Real people make software, and those people have preferences and priorities, whims, opinions, and needs. If you learn how to make software, or use software that is easy to explore or change, you can align the software with your preferences and priorities. Or not. You are free to choose. Not only do our tools shape us; we shape our tools.
I hope this taste of what Emacs and Org-Mode make possible has you interested in using them yourself. If you already use Emacs, you may be interested in how to actually implement these principles. Check out this follow-up post I wrote that goes into more detail about how Emacs can be used to “build a second brain.”
Send your thoughts and questions to @mwfogleman on Twitter
Sign up here for a free 30-day trial of the new Praxis blog, or subscribe to the newsletter to receive notifications of free articles. You can also follow us on Twitter, Facebook, LinkedIn, or YouTube.