Diff revision: specific benefits (personal examples)

As a follow-up to the post “Diff revision: diff-based revision of text notes, using spaced repetition”, and as suggested by gwern in the comments, I’m adding a list of very specific cases where diff revision has been useful to me. Warning: some of these examples are super-specific, programming-oriented. But they make good examples. Also, in some cases flashcards could have worked too, as of course there’s some overlap between the two memorization methods.

In all cases, keed in mind it’s impossible to say with 100% certainty what I would have remembered without the repetition, but these cases are examples where I’m pretty sure I’d have forgotten.

  • An example dear to my heart: neuroscience was a side subject I wanted to study for a while, at least some basics.
    • In the past (~2003) I tried reading the first few chapters out of Purves’ Neuroscience textbook, but forgot almost all of what I had read after beginning my baccalaureate (2004), for lack of time to read further. This was actually the main frustration that sparked the development for this tool.
    • Thanks to that system (I think), I now remember most of what I wanted to get out of these chapters (which I’ve had to re-read a few years later when I started my masters degree, ~2009), without having spent too much time encoding notes (I started with flashcards, then quickly realized this was way too much work for what I wanted).
  • There are some programming concepts, functions, or bash and vim commands, etc. I remember, or started using, thanks to this.
    • It’s very easy to reinvent the wheel, or do things the wrong way, if you don’t remember some specific things exist. It’s easy to know you need a screwdriver when you see a screw, but it’s not immediately obvious you need a screw anchor if you don’t know about them (yeah why not simply screw into the wall? you’ll know when things fall apart weeks later)
    • Very specific examples:
      • some much less frequently used vi commands/features, e.g. mode lines
      • very specific: remembered to use “nohup” to start background processes because I reviewed it, otherwise I would probably have ended with something more hackish (using a GNU screen)
      • extended attributes for files, notably ACLs, specifically about 4 months ago even though I hadn’t used them in ~3 years I remembered about specific details of them (exact command) and could propose them as a solution quickly
    • Also, it helps getting into the habit of using a command.
      • E.g. if I read that I can use “sudo !!” to redo the last command as super-user, by taking note of it, and reviewing it, I think I’m more likely to start using it, and then remembering comes even more easily, from using it.
      • That’s how I started using the “#”, “*” and “Ctrl+P” shortcuts in vim, as a specific example.
  • Of course there are higher-level notions I rememberin more details thanks to this. This is not as directly useful, but it comes in handy when discussing software design ideas away from the computer. Yes you can do a lookup on Google, but often that’s just not quick enough when brainstorming with others.
    • General example: recently, I learned lots of high-scalability architecture concepts, such as details of Amazon Dynamo or Hadoop
      • to give a very specific example: the way data is stored per version in Google BigTable.
  • I have a much better idea of where to store (take note of) something new, and what older entries to link with completely new entries/files, and where I might find something I’m looking for. It complements wiki search, but it’s better since I have a better mental model of my notes, which also becomes a working mental model of my knowledge (I wrote about that in a previous blog post, see bit on “Mirror of your knowledge”).
    • Prior to using that system, I tended to forget where I had put something, and would create duplicate. I have ~1700 wiki entries, and I often won’t add anything for months at a time in a given entry. It’s hard, then, to think of the right place to put something if
  • I feel much more confident I won’t forget somethingwhen I write it down in my wiki, that I’m not wasting my time.
    • Yes one could try to review things by hand, or rely on re-reading when editing their notes, but this formalizes the review with proper intervals. No need to worry about re-reading.

Leave a comment