[HN Gopher] Implementing SM-2 in Rust
       ___________________________________________________________________
        
       Implementing SM-2 in Rust
        
       Author : Tomte
       Score  : 94 points
       Date   : 2024-12-27 08:04 UTC (14 hours ago)
        
 (HTM) web link (borretti.me)
 (TXT) w3m dump (borretti.me)
        
       | intellectronica wrote:
       | Cool!
       | 
       | btw in Mochi you can set the multiplier. It doesn't need to
       | halve. I set mine to 0.1, which practically means "tomorrow" for
       | most cards, or "in a few days" for cards with a very long streak
       | of recall success.
        
         | zetalyrae wrote:
         | Ok, I've identified the root of my confusion here. Mochi has
         | two FAQs:
         | 
         | https://mochi.cards/faq.html Mochi uses SM-2 without EF
         | adjustment and without resetting intervals. This is outdated.
         | 
         | https://mochi.cards/docs/faq/ says Mochi multiplies by a number
         | >1 on recall and by a number in [0,1] on forgetting. This FAQ
         | is linked from the front page and seems to be the correct one.
         | 
         | And, indeed, checking the review settings for my deck shows the
         | multiplier settings.
        
           | knubie wrote:
           | Hey sorry about that. I will take down the old FAQ, or at
           | least redirect it to the new one. The other thing not
           | mentioned in that section of the FAQ (that I will add now) is
           | the re-review phase. When you miss a card during review it
           | will go to the re-review queue. Missing it again in that
           | phase will reset its interval to 1.
           | 
           | Since I created Mochi there have been some new algorithis
           | developed. Most notably FSRS [0] looks promising.
           | 
           | [0] https://github.com/open-spaced-repetition/free-spaced-
           | repeti...
        
       | ChadNauseam wrote:
       | Hopping in to say that I've used mochi very regularly for over a
       | year and love it. It's definitely an aesthetic improvement over
       | Anki. I'm kind of confused why it isn't more popular - I remember
       | doing a bunch of research on SR software and not finding any I
       | liked, and then only finding Mochi by chance when the creator
       | left an HN comment
        
         | greenavocado wrote:
         | There is no indication that Mochi is using any modern spaced
         | repetition algorithm like FSRS. Even FSRS has huge problems but
         | its the best one that's fully deployed and well tested and it
         | is way better than SM-2. The future of SRS involves integration
         | of fMRI based findings about memory formation and knowledge
         | tracing but that is at least 5-15 years out.
        
           | adastra22 wrote:
           | This is way down the rabbit hole of unimportant tweaking. One
           | of the most popular SRS websites for language learning,
           | Wanikani, uses essentially the Leitner method, which is one
           | of the oldest and has no dynamic adjustment. It works just
           | fine and their users self-report a preference for the simple
           | algorithm.
           | 
           | Any SRS is better than SRS (if an SRS is appropriate at all--
           | it usually isn't), and the difference between algorithms is
           | either imperceptible, or worse a UI/UX regression to most
           | users.
        
             | Macha wrote:
             | > It works just fine and their users self-report a
             | preference for the simple algorithm.
             | 
             | Have you asked them recently? A lot of the criticism of
             | Wanikani, including on its own forums, is describing it as
             | a burnout machine because of a mix of the primitive SRS
             | system and the level lockouts. Particularly since Anki has
             | switched to FSRS and people are comparing the relative
             | workloads.
        
               | adastra22 wrote:
               | Be ware of availability bias. Wanikani is wildly popular,
               | with a massive number of users. It dominates that
               | particular space. And with a large user base, they will
               | have a vocal minority advocating for changes. On the
               | other hand I have met a fair number of users in the wild
               | and not a single one has complained about this.
        
       | graboid wrote:
       | Nice. I also have an implementation in Rust (no public
       | repository, private note-taking app). One low-hanging fruit (IMO)
       | to improve on the base SM-2 is to more smartly pick the initial
       | ease. I just took the average ease of "similar" mature items.
       | Since for my use-case, spaced repetition items are embedded in
       | notes, "similar" items meant items in the same note, or in notes
       | that were tagged similarly.
       | 
       | These days I often wonder if I should just switch to FSRS [1],
       | which Anki also switched to. It delivers better results. However,
       | I am hesitating, since I understand SM-2, and it is easy to read
       | the code while FSRS is complex and feels kinda black-boxy, which
       | wouldn't feel right to me.
       | 
       | A quick note to the implementation above: I wonder if having that
       | many answer options is worth it. It probably increases the
       | cognitive effort needed for grading and I wonder if the increased
       | precision in some cases is worth that. But who knows?
       | 
       | [1] https://github.com/open-spaced-repetition
        
         | adastra22 wrote:
         | Is there an actual problem that you'd be solving by switching
         | algorithms?
        
           | zetalyrae wrote:
           | FSRS gives you the same retention for less work, or,
           | equivalently, you can remember more things for the same
           | amount of time worked.
        
             | adastra22 wrote:
             | While being more opaque & difficult to self-correct for.
             | How much more work are we talking about? A theoretical
             | couple of minutes in a year? Not worth it.
        
       | dspx_plcr wrote:
       | I did something similar recently in Idris 2, specifically to see
       | how ergonomic using quantitative type theory is. My experience is
       | it's quite a hassle, but I don't think that's beyond reproach.
       | 
       | The repo is here[0], and if you like long form unedited videos
       | about someone failing to program, you can see my struggles with
       | Idris 2 here[1]
       | 
       | [0] https://github.com/dspx-plcr/qtt
       | 
       | [1]
       | https://www.youtube.com/playlist?list=PL5CIEWYHtEXommjLd_zOP...
        
       | IncreasePosts wrote:
       | Is there any spaced repetition system that doesn't require me to
       | tweak a bunch of parameters to get good results? I would love if
       | it could just learn how I learn and adjust accordingly. I want to
       | be able to pop in 4x a day or just once or just skip some days
       | and have it adjust accordingly, instead of just leaving me with a
       | huge back log.
        
         | adastra22 wrote:
         | All of them? Adjusting parameters is more of a power user move.
        
       ___________________________________________________________________
       (page generated 2024-12-27 23:01 UTC)