Discover more from hrbrmstr's Daily Drop
Drop #363 (2023-10-30): I Have No Memory Of This Place
Anki; Other Flashcard Systems; General Flashcard Tips
Perhaps Gandalf would have done better in Moria if he had used flashcards to memorize which way to go at any given junction.
Fundamentally, flashcards are…cards. Each card in a deck has a question on one side and the answer on the flip side. They're a classic tool for memorizing all kinds of information, from vocabulary, to historical dates, to formulas, or anything else that fits the Q&A format.
Physical flashcards have that tactile feel, and there's something about the act of writing and organizing them that really cements the information in your brain. But, they can be a bit of a hassle if you've got a ton of them. On the other hand, digital flashcards are super convenient and easy to manage, especially when you're dealing with a large volume of information. Plus, many digital flashcard systems have built-in algorithms for spaced repetition, which is a proven technique for efficient learning.
So today we feature one major player in the FOSS flashcard ecosystem, present a few alternatives, and close with some tips on making the most of flashcards.
No “AI summary” today, as the way this edition came together did not lend itself to the “three resources link summary” format.
hrbrmstr's Daily Drop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.
Anki (GH) is a pretty spiffy Rust-based FOSS flashcard program designed to make remembering things easy. It uses active recall testing and spaced repetition, techniques from cognitive science for memorization. This program is more efficient than traditional study methods, enabling us humans to either greatly decrease our time spent studying or greatly increase the amount we learn.
Anki uses a file format with the .apkg extension for its flashcard decks. They contain HTML text to be loaded and displayed in the app and can additionally have images and sounds for visual and audible learning. The card styling is done using CSS. These files are super hackable. They're essentially ZIP archives with media, a JSON index for the media and a SQLite database:
$ sqlite3 collection.anki2 SQLite version 3.39.5 2022-10-14 20:58:05 Enter ".help" for usage hints. sqlite> .tables cards col graves notes revlog sqlite> .schema cards CREATE TABLE cards ( id integer primary key, /* 0 */ nid integer not null, /* 1 */ did integer not null, /* 2 */ ord integer not null, /* 3 */ mod integer not null, /* 4 */ usn integer not null, /* 5 */ type integer not null, /* 6 */ queue integer not null, /* 7 */ due integer not null, /* 8 */ ivl integer not null, /* 9 */ factor integer not null, /* 10 */ reps integer not null, /* 11 */ lapses integer not null, /* 12 */ left integer not null, /* 13 */ odue integer not null, /* 14 */ odid integer not null, /* 15 */ flags integer not null, /* 16 */ data text not null /* 17 */ ); CREATE INDEX ix_cards_usn on cards (usn); CREATE INDEX ix_cards_nid on cards (nid); CREATE INDEX ix_cards_sched on cards (did, queue, due);
This means you can create flashcard decks in pretty much every programming language.
If you just want to use the tool, it works everywhere: Windows, macOS, Linux, mobile, and web.
Of course there's a fun awesome list for it, where you can find all sorts of tools, utilities, and places to find apkg files, like this one for Stanford's CS324 course on LLMs and security/privacy from Mark Nagelberg.
Other Flashcard Systems
It's difficult to further wax poetic on other flashcard tools, since they're all very similar to each other. Rather than blather for blather's sake, I'll drop some neat Anki alternatives, some of which are very purpose-built.
Create Flashcards of Terms and Definitions • flashr: this is a neat package by Jeffrey Stevens. It provides functions for creating flashcard decks of terms and definitions. This package creates HTML slides using RevealJS that can be viewed in a browser. You can create flashcards from either existing built-in decks or create their own from CSV files or vectors of function names. It has some pre-built R-centric decks.
Vocage is a minimal terminal-based flashcard program for learning vocabulary and other topics. It, too, uses a spaced repetition algorithm to present cards, showing well-known words less frequently and struggling words more. Users can quickly move cards between decks with different intervals. Comments start with # to disable cards without deleting them. It focuses on simplicity, with options to show cards individually or in minimal mode for scripting. And, it can import data files and features keyboard shortcuts for navigation, saving, and toggling presentation settings.
Mnemosyne is yet-another flashcard program with a pretty simple interface. It is customizable through plugins, and has a scripting API. The program supports various media types, including pictures, sounds, and movies, and can integrate with Latex for rendering formulas. It has full support for Unicode, Google Translate, and Google Text-to-Speech. Cards can be organized with tags, and Mnemosyne offers a few different learning modes. It also provides statistics to track learning progress and enables focusing on specific subsets of cards.
General Flashcard Tips
Study The Source Material First: Flashcards are reinforcement tools, not a primary source of learning things. You'll get the best results if you research first, then reinforce.
Be Consistent: The single most important thing when designing a flashcard deck is to be consistent. Regularly reviewing your flashcards will help reinforce the information in your memory.
Cards Should Be Challenging, But Not Impossible: Don't make cards too easy or difficult. The goal is to challenge yourself, but not to the point of frustration.
Combine Flashcard Tools With Other Resources: While your fav tool may be powerful, it should be used in conjunction with other study resources. This can help you connect concepts from separate cards and avoid memorizing cards without understanding them.
Create Redundant Cards for Difficult Facts: For difficult facts, try to create redundant cards that prompt you on the information from multiple different angles. This can help reinforce the information in your memory.
Use Flashcards During Commutes/Mindless Tasks: This can help you make the most of your time and get through a lot of cards. (It should go without saying that I'm assuming “commute” == "public transport”, but noting that just in case y'all thought I was trying to get you to wreck your vehicles.)
Keep Cards Short and Simple: Short and simple cards are easier to remember. Try to keep the information on each card concise and to the point.
Add Sources to Cards: This can help you remember where the information came from and provide a reference for further study.
Tag/Mark All Duplicates and Revise Them as Soon as Possible: This can help you avoid studying the same information multiple times.
Then again, you could just drop $2.99 on a pack of 3x5s and call it a day ☮️