Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There seems to be an unaddressed need for a well-maintained library implementing spaced repetition algorithms. I have seen implementations for SM15[0] and SM2[1][2] around but nothing that provides multiple implementations and a consistent API on top.

If there was a library like that, a tool like SpacedTime could use it easily (currently it uses fibonacci sequences when determining how soon to recall).

[0] https://github.com/slaypni/SM-15, https://news.ycombinator.com/item?id=9844613

[1] https://github.com/walterscarborough/LibSpacey

[2] https://gist.github.com/doctorpangloss/13ab29abd087dc1927475...



Given that I’ve wanted to make apps for learning languages but always get lost in the weeds of various spaced repetition algorithms - would love this kind of open source resource. If anyones interested in making this kind of thing, I’d love to chip in.

For example I notice it’s really common for spaced repetition algorithms to really easily allow me to shoot myself in the face by learning too much up front and then drowning in reviews; or to destroy myself by missing a few days. Not sure what is out there, but some extensions I’d like as a user is to be “I don’t want to spend more than x time per day doing this, so pace me please”, things like:

- the ability to specify a max “learning load” taking into account projected reviews + new cards

- the ability to “recover” from missed days not by seeing 1000 pending reviews and panicking, but by saying “do an extra 10 cards a day and in two weeks you’ll be caught up”

I’m sure I’m not the first one to think of these things but I don’t know how to research what people have done - and if these kinds of usability things, good documentation with clear comparisons of strategies, flexibility of use in different environments/languages were encapsulated in a library it would be a game changer for me.


What I would like, but cannot set Anki to do is the following:

Max 100 cards per day (I can set the number of reviews, but seeing a card twice counts as 2 reviews)

Max 10 new cards per day (restricted by the above limit)

I’ve found this to be a good pace when manually juggling this, but the thing is, I don’t want to manually do it, especially not on a piece of software like anki.


I can tell you've put some thought into this :)

I'd love to contribute towards a repo to work on this.


If I get started on one I’ll let you know!


FYI I started an empty repo on Github and made some RFC issues to collect ideas for what this can be - would love if you guys have any thoughts!

https://github.com/osdiab/libremember/issues


I recently built a spaced-repetition module in learnawesome.org to help users practice and remember not just from whatever they're reading, but also by taking notes from meetings, conferences, videos etc. Wrote an article about it: https://medium.com/learn-awesome/practice-what-you-learn-usi...

Since learnawesome.org is open-source, if anyone needs a Ruby/Rails implementation of spaced-repetition algorithm, feel free to take code from here: https://github.com/learn-awesome/learn/blob/master/app/model...

Feedback and pull requests are of course welcome :)


Very cool!

Do folks feel like there would be value in a hosted service that provides a backend for spaced-repetition apps? It's a bit niche, but feels like there would be demand for a service that would let folks build memorization apps without having to manage their own spaced repetition implementation.


I think it would be valuable, I've actually had this idea (but not the competence/bandwidth to actually build it, alas).

It could become a platform for courses built around SRS, or learning materials like Michael Nielsen's mnemonic media: https://numinous.productions/ttft/ .


Wow, thanks for that link, that's an amazing essay.


I would consider this greatly valuable


> if anyone needs a Ruby/Rails implementation of spaced-repetition algorithm

I noticed that at the root of the repository the license is specified as Creative Commons, requiring attribution and disallowing commercial use or derivatives, so not really anyone anyone ;)

Doesn’t prevent somebody writing a SRS library in another language from taking your implementation as a good reference point, though. Thank you for sharing!


Great share! Gotta check these out and see if I can take advantage of them :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: