Open cashpw opened 1 year ago
Thanks for all this work!
I'll go over what I think are the main components of this and review each.
I like the idea and implementation of the classes.
Instead of using one file for each class, we could e.g. card and position to org-fc-core.el
and the review related ones to org-fc-review.el
. As org-fc is already split into many larger files I'm fine with either way.
In case different spacing algorithms (with different parameters to track) are supported at some time, we might need to either add a "spacing parameters" field to each position or subclass them for each algorithm, but that can wait.
Because I can't see how I would use this in my learning workflow, I don't have an opinion on this. Using IDs to identify blocking cards seems like a good choice and restricting blocking cards to the same file is a reasonable restriction based on the current cache implementation.
What if instead of adding a new -1 box, we used box 0 only for new cards?
Currently when a review fails, the card back to box 0 (with an interval of 0), but I'm not sure that's reasonable.
Here is a nice explanation of the algorithm / scheduling used by Anki: https://www.juliensobczak.com/inspect/2022/05/30/anki-srs.html There are a number of differences to the org-fc algorithm but one thing stands out to me is that failing a review moves a card to the org-fc equivalent of box 1 instead of box 0.
Doing the same in org-fc seems like a very small change that would solve a few problems at once.
I think I'd like to get started integrating the classes for cards and positions but I'm not sure how to best do so,
maybe combining the relevant commit with the changes currently on the develop
branch.
As these are significant changes, do you want an "Author:" line in the affected files?
This pull request contains changes addressing:
org-fc-card
,org-fc-position
,org-fc-review-session
, andorg-fc-review-session-rating
I've included everything in one pull request as it's become a hassle to maintain separate pull requests here and a merged branch for my own local config. I'm happy to split it up when the time comes to merge things in. This pull request can serve as a center for review in the meantime.
Regarding https://github.com/l3kn/org-fc/issues/106#issuecomment-1336137517: I think my changes to how cards/positions are shuffled should resolve this concern.
TODO:
context
objects