Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

org-mode has an implementation of several spaced repetition algorithms, which is what Anki is using under the hood and what was originally invented for SuperMemo. The module is called org-drill.

I'm in the process of turning many knowledge aspects of my life into a personal knowledge base inside org-mode. For books I'm reading, I find it invaluable to create org-mode items. One per concept. Sometimes I don't even bother filling the content. E.g. I just use a title like "Hadamard transform definition" and nothing else. It'd be to time consuming to write up the definition, and it's pointless as that's in the book anyway.

Then, org-drill brings up some of this cards according to the spaced-repetition algorithm. I answer them with pen and paper. Sometimes I need to prove a theorem, or recall a definition like in the example above. I then open up a book to check my reply is correct and grade myself accordingly. It's a great system to systematize learning.



What I've written also has a connection with productivity systems like GTD (which I don't use personally but serves to illustrate my point).

Many if not most people on HN are knowledge workers. For us especially, many tasks in our inboxes are non-actionable. E.g. a link you stored that teaches a great trick to use your editor, or an elusive shell one-liner you came up with.

What to do with these? A good productivity system should also include a knowledge base, so that those non-actionable bits of information that have future value can be easily stored and later retrieved. Here they explain it better than I do: https://praxis.fortelabs.co/gtd-x-pkm-8ff720ef6939/

A further tweak is to force spaced repetition on those knowledge bits you want to be able to learn by heart. In Emacs, you can achieve this by simply tagging them for later org-drill (spaced-repetition) sessions.

As a student I used to do this with pen & paper. I would patiently deconstruct books into extremely long lists of items that included definitions, theorems, corollaries, demonstrations, and whatever concepts in the right order. Then I recalled them during repetition sessions. Doing this with a spaced-repetition algorithm is a much more efficient way, as you focus your effort on hard stuff and you time sessions appropriately to maximize the chances of learning it.


Since we are talking about Emacs now, there's a package[1] for Anki just like everything else in Emacs. :) This basically connects to a background server of Anki, you create a card and press C-c C-c to send it to Anki. End of the day, just sync it.

I am one of those guys who try moving everything to Emacs, but personally I found Anki to be much better than org-drill just for the simple reason that I can go through the cards quickly using the phone app when I have some time (waiting for someone, something, etc.). With org-drill I have to be in front of my machine.

But yeah, I've pretty much sold to org-mode. I, too, have been creating a knowledge base inside org-mode. This contains the deeper knowledge and explanations, while the tidbits are in Anki. Org mode notes are like fat nodes, and Anki cards are the threads which bind them. I personally have found both to be very useful together.

[1]: https://github.com/louietan/anki-editor


One of the problems with this approach (one-way sync/extract from org-mode files to Anki database) is losing out the context (imagine org file notes from a technical books). I use org-drill in combination with org-sticky-header, which show the path of headings to that particular node. Normally in Anki, this requires to add some extra descriptions or tags for this purpose. In org-mode, we get this for free.

But on the other hand, org-drill will fill your org file with scheduling and metadata drawers (I did some hacks to hide them but not able to make it work without messing the org-ellipsis).

Another drawback with org-drill is it manages schedules for one "card" per heading, hence cloze items are not scheduled individually. So, either you remember entirely "Alfred North Whitehead wrote [Principia Mathematica] in [1910]" or not at all. In Anki, not only the book title "[Principia Mathematica]" and the written year "[1910]" are tested separately (same as org-drill), but also scheduled/scored separately too (where org-drill falls short).

I use both, org-drill mostly for books, Anki for "standalone" facts. But I'm always wishing for some kind of a system that hit the sweet spot between them two.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: