descriptionA program for SImple SPAced REpetition.
homepage URLhttp://math.umd.edu/~sgilles/
ownersgilles@umd.edu
last changeSun, 6 Sep 2020 16:52:25 +0000 (6 12:52 -0400)
content tags
add:
README
This is sispare: SImple SPAced REpetition. I wrote it because I don't
think Anki should be 100MB+ of code. It depends on specific, silly
dependencies like

 - termdraw [ https://git.eigenstate.org/npnth/libtermdraw.git ]

I use it to learn Japanese vocabulary. You can probably use it for other
things, too.

To use it, run

   /path/to/sispare [ -d <dir> ]

The <dir> argument defaults to ${XDG_DATA_HOME}/sispare or
${HOME}/.sispare.

Sispare is mostly controlled by the data directory. It expects the
following layout:

   /path/to/sispare/dir/
    + cards/
    | + card_000/
    | | + side_A
    | | + side_B
    | | + level
    | + card_001/
    | | + side_A
    | | + side_B
    | | + level
    | + whatever name you like/
    |   + side_A
    |   + side_B
    |   + level
    + schedule/
      + 2031-08-12
      + 2031-08-13
      + 2031-08-16

When sispare starts a session, it reads all the files in schedule/ whose
names correspond to the current date or earlier. Each line in those
files will be something like "card_000" or "whatever name you like".

All of those lines are collected and shuffled. For each line, the sides
will be displayed in a dumb TUI interface. If the user marks the card as
successfully learned, the value stored in that card's level file will be
increased, which influences how much time passes before the card is next
reviewed. If the level reaches 8, the card is not scheduled for another
review. If the user marks the card as failed, that card's level is reset
to 1.

To add things, you can run

 - sispare-add-card
        [ -d <dir> ]
        -n <name>                           # For uniqueness
        [ -a <A-file> | -A <A-string> ]     # One is required
        [ -b <B-file> | -B <B-string> ]     # One is required

 - sispare-from-jisho [ word to look up on jisho.org ]
shortlog
2020-09-06 S. GillesReduce time windows a bitmaster
2020-08-19 S. GillesInclude a bit of random jitter in review times.
2020-08-09 S. Gillesswitch from sha3 to md5 for hash computation
2020-08-06 S. Gillesget around to actually implementing shuffling algorithmv0.1
2020-08-06 S. Gillesallow early quitting
2020-08-06 S. Gillesslurp level correctly
2020-08-02 S. Gillesdisplay slightly more useful information at session end
2020-07-27 S. Gillestypo in README
2020-07-27 S. Gillesallow sispare-from-jisho to handle words with only...
2020-07-27 S. Gilleshandle empty lines in non-wrapping
2020-07-27 S. Gillesimplement sispare-from-jisho
2020-07-26 S. Gillesimplement sispare-add-card
2020-07-26 S. Gillesinitial
tags
4 years ago v0.1
heads
4 years ago master