Closed dae closed 1 year ago
On second thought, if you intend to implement online learning in the future, perhaps this code should be merged into fsrs-optimizer-rs, and then we should rename that to fsrs-rs. What do you think @L-M-Sherlock? I can handle the merging if you want to go down that route.
I'm considering it. The main point bothering me is rs-fsrs has its own short-term schedule, but Anki has learning steps. In fsrs4anki scheduler, it custom scheduling doesn't modify the short-term schedule. Maybe we need develop a independent module for the integration.
And there are two methods to generate the new interval.
Method 1 needs less calculation but it would be inaccurate when users update their weights. This method has been used in the custom scheduling.
Method 2 needs more calculation but it is more accurate. This method is used in the helper add-on
For the second method, my main concern would be whether the processing time is fast enough. For example, if it takes 10ms that's easy to justify; if it starts growing into the 100ms+ range, that may start to impact the perceived speed of review, and start impacting battery drain. I guess we'd need to do some benchmarks to get an idea of how a card with 10 previous reviews, and maybe 50 previous reviews would perform.
The main point bothering me is rs-fsrs has its own short-term schedule Maybe we need develop a independent module for the integration.
Ah, I see. That would work too, and might even be preferable, as I'd like to refactor the current API. I do think it probably makes sense to put the review code in the same crate as the optimizer though, as the two work together and it would be easier to maintain.
Me too. I prefer to continue the development in https://github.com/open-spaced-repetition/fsrs-optimizer-rs
And the method 1 and method 2 are not mutually exclusive. We can develop two methods both.
Just saw your reddit post; congrats on the 1 year anniversary :-)
Again, a very minor suggestion - the "-rs" part is usually trailing. Another option would be fsrs-scheduler or fsrs-scheduler-rs, which would better distinguish it from fsrs-optimizer-rs - WDYT?