The SM2 algorithm, created for SuperMemo in the late 1980s, forms the basis of the spaced repetition methods employed in the program.
Anki's implementation of the algorithm has been modified to allow priorities on cards, and to show cards in order of their urgency.
The cards are presented using HTML, and may include text, images, sounds and LaTeX equations. The decks of cards, along with the user's statistics, are stored in the open SQLite format.
Anki stores data differently compared to other flashcard programs. Within Anki, data is held in two forms: "facts" and "cards". Facts are like database entries and can have an arbitrary number of fields. For example, for learning a language, a fact may have the following fields and example entries:
Field 1: Expression in target language – "gâteau"
Field 2: Pronunciation – [sound file with the word "gâteau" pronounced]
Field 3: Meaning in your own language – "cake"
This example illustrates a three-sided flashcard, but Anki's model is more general, allowing any number of fields, combined in various cards.
The user can then design cards that test the information contained in each fact. One card may have a question (expression) and an answer (pronunciation, meaning).
By keeping the separate cards linked to the same fact, spelling mistakes can be adjusted against all cards at the same time, and Anki can make sure related cards are not shown in too short a spacing.
Anki supports synchronization with a free online server. This allows the user to keep their decks synchronized across multiple computers, and to study online or on a cell phone.
 Japanese and Chinese reading generation
Anki will automatically fill in the reading of Japanese and Chinese text. Since version 0.9.9.8.2 these features are in separate plug-ins.
Anki's scheduling algorithm is based on an older version of the SuperMemo algorithm (SM2). The Anki author claims that newer versions of the Supermemo algorithm are more susceptible to incorrect scheduling.
Installing & Upgrading.
The previous stable series was 1.0.1.
After downloading, please follow the instructions in the README file.
The version of Anki in Ubuntu and Debian tends to lag behind the official releases, so it's recommended you install the deb from here instead.
If you are upgrading, please read the change list, as a lot has changed.
Download Latest Release (1.2.8)
After downloading the file, open a terminal and type "sudo dpkg -i <filename.deb>" to install it. Ubuntu have made their graphical package manager stricter in the coming 11.4 release, so you may not be able to install the deb using the normal package manager. This will be fixed in a future release.
The previous stable series was 1.0.1.
Debian and Ubuntu had very broken GUI libraries for a while, so if you encounter crashing problems, please make sure your system is up to date.
If you are still using Debian Lenny, Tore Ferner has provided a backported version of 1.2.7 here.
The version of Anki in Fedora is usually pretty up to date. If you want to roll your own package, see this page on the wiki.
Cell phonesAnkiOnline can be used with almost any mobile with net access. It is optimized for low bandwidth so you won't have high data bills. You can learn more by signing up for an account and clicking on 'Review (other)'.
ZaurusesAn offline client is available, though no new features are planned.
Nintendo DSIt is possible to sync cards to your DS for review and sync the results back to Anki, provided you have a memory cart. There are three programs that can do this for you. The latest one costs a few euro but sports extra features. The second most recent can be downloaded with File>Download>Shared Plugin from within the desktop client, then searching for Nintendo. The original program is available here.
Sony PSPNo offline client is available, but you can review with AnkiOnline.
BlackberriesNo offline client is available, but you can review with AnkiOnline.
Windows Mobile/Windows CE devicesA port to Windows Mobile is available here.
You can also use AnkiOnline.
Palm devicesThere is an old Palm program called "Anki" that has no relation to this project. No offline client for Anki is available, but you can review with AnkiOnline.
DevelopmentTo install the development version, either grab a tarball from github, or install Git and then run the following commands:
$ mkdir anki $ cd anki $ git clone git://github.com/dae/libanki.git $ git clone git://github.com/dae/ankiqt.git
Then read README.development in the ankiqt directory.
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: