In a Tweet I can’t find anymore, Lance Gravlee and someone else (I forget who, sorry) were discussing how good Twitter rants often become the outline for an essay. Gravlee mentioned how this process reminded him of a book about taking smart notes, aptly called Taking Smart Notes (Ahrens 2017) (TSN). I looked it up and realized how desperately I needed to read that very book, which describes the slipbox (“zettelkasten” in the original German) method pioneered by, among others, someone named Niklas Luhman, who I’ve never heard of but is apparently one of the most important social theorists and prolific academic writers of all time.
The slipbox advocated by TSN is a method of note-taking that facilitates writing by putting the process of writing at center of research long before you write the first draft of a manuscript (or piece of software). It consists of five basic components:
- Fleeting notes that are thrown away after a day or two once used to create permanent notes.
- An annotated bibliography of references.
- A treasure trove of permanent notes (this is the slipbox) that link to one another in dynamic ways, and that reference items in the bibliography.
- Project notes, which are specific to a project and discarded or archived once the project is complete.
- An index of some sort to make it easy to both find and relate notes and references together.
Permanent notes are written as if for an external audience, with complete sentences and logical arguments. They aren’t meant to be perfect, but they’re the starting point, outline, or inspiration of larger pieces. If they’re good enough, they are the piece itself, and you’re done; pat yourself on the back.
In adopting the slipbox, I need it to fit into my overall workflow, which often involves applying statistics in silico, usually with R. In addition, I want to be able to make applied statistics, including the execution of code, be a part of my notes whenever possible, in a way that preserves the portability of the plain text as much as possible. Finally, I want my notes to be open, insofar as they can be given that I often work on proprietary stuff at work. Given these requirements, I came up with the following solution.
- For fleeting notes, I just use a pen and paper, or a napkin, or whatever the fuck I have lying around because who gives a shit, I’m throwing it out as soon as I make sense of it in a permanent note.
- For the annotated bibliography, I’m using Zotero as recommended in TSN, but I include the Better BibTex (BBT) Zotero plugin (following advice here) to facilitate exporting to BibTex format and the creation of unique keys for citations (you’ll see why in a second).
- For the slipbox, I’ve created this blog using the
blogdownR package (Xie 2020a), which allows to me create a static website using a simple markdown syntax (Allaire et al. 2020) that can execute R code in the back end. Then I’ll export a
scholar.bibfile with the slipbox’s updated literature references into the
content/postsubdirectory of my slipbox blog, following the advice here. For some more fleeting references, it’s easier just to add a hyperlink in the slipbox note, although I’ll still add those to my Zotero bibliography. I’ll also include a separate
packages.bib, which will include R package references, initialized and updated with help from the
knitr(Xie 2020b) package’s
write_bibfunction. Eventually, I might need a solution for Python library references.
- For the indexing, I’ll use blog post tags and (for direct references) backlinks, along with similar tags for Zotero references (to aid in reference search).
Let’s see how this goes.
Note: This post’s title is inspired by a quote from Luhman: “One cannot think without writing.” Clearly, this isn’t true, since there are many people who existed before writing, or who have never learned to write, but who can think quite well. That said, writing is a useful tool, and so is posting to a blog if you do it right. Let’s hope I do it right.
Ahrens, Sönke. 2017. How to Take Smart Notes: One Simple Technique to Boost Writing, Learning and Thinking. CreateSpace Independent Publishing Platform.
Allaire, JJ, Yihui Xie, Jonathan McPherson, Javier Luraschi, Kevin Ushey, Aron Atkins, Hadley Wickham, Joe Cheng, Winston Chang, and Richard Iannone. 2020. Rmarkdown: Dynamic Documents for R. https://CRAN.R-project.org/package=rmarkdown.
Xie, Yihui. 2020a. Blogdown: Create Blogs and Websites with R Markdown. https://CRAN.R-project.org/package=blogdown.
———. 2020b. Knitr: A General-Purpose Package for Dynamic Report Generation in R. https://CRAN.R-project.org/package=knitr.