Hacker News new | ask | show | jobs
by celerity 1116 days ago
Hey, this is exactly why I made obsidian-repeat-plugin [1]. The goal was to have most of my notes surface every now and then, which removes the need for me to do any digging at all.

With that said, my non-repeating notes are far from "dead". First, I have a lot of useful self-made references. Second, Obsidian really makes it easy to spontaneously group tags with its backlink system. Every now and then, I go down a rabbit hole and catch up to notes that would otherwise be dead. I only have to maintain a few "entry points" that mostly have other notes linking to them.

[1]: https://github.com/prncc/obsidian-repeat-plugin

1 comments

One idea you could try to make the repeat load less of a burden, and enable more notes or items to be included, is to not just track whether they've been shown before, but to use a spaced repetition algorithm to try to estimate whether an item has been forgotten, and surface the most likely-to-have-been-forgotten items. Those are the ones you would benefit from serendipity, because presumably, if they had become relevant and you already remembered them, you'd've made use of them, and it's the forgotten ones where serendipity strikes.

I call this idea 'anti-spaced-repetition': https://gwern.net/note/statistic#program-for-non-spaced-repe...

The plugin actually does support spaced repetition, but only an "exponential" algorithm. That is, you have to manually choose whether to multiply the current repetition period with 0.5, 1, 1.5 or 2.

This "exponential" repetition it's not as optimized as the kinds of algorithms you're describing, but I find it good enough and it comes with a few distinct advantages:

1) Spaced repetition algorithms are hard to get right with two buttons like remembered/forgot. Anki for example added more buttons (easy/normal/hard/forgot or something like that), but I could never really intuit what would happen if I clicked any of them. Having 4 explicit choices makes it easy to understand what will happen, and also lets you "manually" push back notes on axes like "how much do I still care about this" and not just "how well do I remember this".

2) I really wanted to keep the metadata fields stored in the note and easy for a human to edit and understand. Right now, you only need `repeat: spaced every N days` (and similar) and the plugin adds a `due_at` field that has an easy to read ISO timestamp. You can also add `hidden: true` but don't have to.

I decided, as a first pass, to set up Anki to review notes and articles. I try to get more serendipity by telling Anki to increase the ease and scheduling newly-read articles far in the future (Anki lets you manually schedule a card for n days in the future, and will adjust the spaced repetition schedule accordingly).

I wrote a quick-and-dirty script to sync my Pocket bookmarks with Anki, since I have a large backlog in Pocket: https://github.com/telotortium/pockexport-to-anki. Over time, I'll probably deprecate Pocket, since Anki lets me make notes on articles.