GOPHERSPACE.DE - P H O X Y
gophering on gopher.black
----------------------------------------
Flashcards
July 14th, 2018
----------------------------------------

User jakob phlogged recently [0] about getting back into flash
cards & spaced repetition. He found a fantastic solution using
emacs as he seems to be slowly adopting the "all things are emacs"
principle. I'm not quite to that extreme with vim, but I do love
me some command line solutions.

[0] jakob - replacing anki with org-drill

Plain text is just simpler. I don't need fancy guis for 99% of my
stuff. Flash cards are definitely in that list. So, what's a man
to do? Obviously the only solution is to roll my own!

I started by searching a bit on the different styles of spaced
repetition (there are many) and quickly settled on the Leitner
System. It's usable by hand, so I should clearly be able to
replicate it with a program, right? It turns out that there's not
really any agreement on the specifics of the system. I watched
several videos on youtube who would almost get there and then say
something that didn't make any sense. The wikipedia page is such
a hot mess I'm not even going to link you there. If you want to
read some train wreck stuff, you'll need to go there on your own.

In the end I settled on the following as my interpretation of
Leitner:

- Flash cards get a front and a back
- Flash cards are sorted into levels based on your proficiency
  with the card
- All cards start at level 1
- Cards move up one level when you successfully identify the back
- Cards return all the way to level 1 if you fail to successfully
  identify the back in time
- Time is important. Sitting there staring at a card and working
  it out is not the same as "getting it right". That is a failure.
- The number of proficiency levels you use isn't important
- The frequency of cards being shown is determined by the level:
  - Cards at level 1 are shown every day
  - Cards at level 2 are shown every other day
  - Cards at level 3 are shown every 3rd day
  - Cards at level 4 are shown every 4th day
  - and so on
- Cards are reviewed only once per session with the exception of
  cards at level 1. They can be reviewed multiple times until they
  move to level 2.

I started putting together these notes yesterday into a README
file intending to build a bourne shell app like I did with burrow.
I was reminded by a coworker that I said I'd build something in
node soon, so I caved and used javascript instead. Yes, I felt
incredibly dirty the whole time. Even worse, it was really, really
fun and easy. Puke.

If you have node installed you can try out my app by running:

  yarn global add flashleit
  or
  npm i -g flashleit

That's right.... Flashleit! Get it? Leitner... Flash Cards...
Huzzah!

When you run the app you can start by adding cards. There's a menu
option for it. Cards creation will launch your $EDITOR. Card
fronts & backs can be multi-line. Ascii art welcome!

You can also mess with some of the settings in the app. Change
some colors, change the maximum proficiency level, or the delay
before the card flip happens. There's more color settings in the
configuration file if you want to go digging. It's usually at:

  ~/.config/config/configstore/flashleit.json

but it may vary on your system. All the data is stored in that one
file, including your cards. If you want to import a list or
generate one, just look at the pattern in there and mess with the
JSON itself. You're big kids.

Source is over on github [1]. If you try it out and have any
recommendations or spot any bugs, leave me an issue there. 

[1] flashleit on github