---------------------------------------- | |
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 |