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