Anki is an open-source electronic flashcard program for self-study. It uses a spaced-repetition algorithm to enhance retention of study materials. It tracks your success and determines when to review specific cards accordingly.
The "flashcards" are "two-sided" (has two cards) and allow embedding multimedia. Each "side" can use multiple fields to describe a "fact," which is the total information a flashcard should represent. Thus, each complete fact is represented by a pair of cards. The software allows you to type in your answer for comparison;
otherwise, you can click a button corresponding to how easily you were
able to recall the answer. You can create custom fields and customize
the fonts for each field and each "side" of the card. You can also edit existing facts from the complete list for that
"deck." You may also "tag" each fact, to make it easy to search, enable,
and disable facts temporarily!
With a plugin called "Japanese Support," the software displays Kanji and
kana, and auto-generates phonetic readins when you enter Kanji. (Use the default "Expression" for the Japanese word/phrase and "Reading" for the pronunciation key fields, if you want Anki to auto-generate readings.)
Decks can be uploaded and synchronized for online study, or you can share them with others. You can also download shared decks. Your performance statistics are accessible by clicking the bar-graph icon. A deck can be exported in various formats (HTML, tab-seperated, etc.), either as a list of facts or pairs of cards.
Anki is available for Linux, Mac, Windows, iPod/iPhone, iPad, Android, and various other platforms. (Windows users must also install "mecab.exe" and "anki-reading.exe," which can be downloaded from the Anki website.)