Anki is a flashcard program written in PyQT. I found it about two weeks (?) ago mentioned on PlanetKDE, and it’s helped a lot with my Japanese. Apparently, Anki (which, by the way, means “memorization” in Japanese) is a “spaced repetition system,” and it schedules my cards intelligently. For example, if it shows me a flashcard for 「赤い」, meaning “red,” it would, after a few minutes, show me the reverse card “red.” (to which I would recall 「赤い」.) Of course, harder cards show up more often, and they’re marked for review the next day. Anki even graphs my progress (I haven’t yet figured out how to read the graphs, though). Other features include [flashcard] deck synchronization with the Anki server for backup and easy sharing with friends.
Oh yeah, and this is available on Linux, Mac, and Windows. :)