Every day, for at least 20 minutes, and often much longer, I work at building my French vocabulary. No need to detail my regrets for not learning French in my youth. The point is that I am committed now. Some of my effort is directed to reading from different sources be they newspapers, magazines or novels. But a fair bit of my effort is devoted to a near mechanical use of flashcards. Flashcards for vocabulary training are a tried and tested method. The more you use your card set, the more you build the reflexes in your mind to instantly recall the meaning of individual words or phrases. Indeed there is even a system that captures the varieties of algorithms that one might deploy in varying the spaced repetition of a card in a card set. It is called the Leitner system and nearly every computer based flashcard program going instantiates it in one form or another.
There are easily more than 250 electronic flashcard programs out there. The one that caught my eye and which I use on a daily basis is jMemorize. How did I select it?
My first step was to stick “‘open source’ flashcard” in Google just to see what would pop up. Go ahead, try that. You will find that there is an article from NewsForge on jMemorize that tops the list. Next step for me was to check out the jMemorize project site on SourceForge. SourceForge is not the home of all free and open source software projects. But it is an awfully large starting point. From a project summary page in SourceForge you can tell at a glance how large a project is (number of developers), what licence the software is released under which in the case of jMemorize is the GNU General Public License, the programming language and the operating system for which the program is intended (java and thus operating system independent), the bugs that have been reported (if the project is using SourceForge’s bug reporting system) and even a quick browser view of the subversion code repository.
Perhaps most important though is the pace of the project. It doesn’t really matter for something as small as this whether there is one developer or 10. What matters is whether the project is moving forward. Is there any momentum? Do new releases appear reasonably frequently? Are bugs being squashed? Are there any users out there sending in feature requests, contributions of code (even if they haven’t joined the project as a developer), or at least questions about how to use the software? It all adds up to a judgement about whether a project is healthy or moribund.
Of course the state of a software project is probably not the criterion you will want to use in selecting your flashcard program. The real test is whether it does what it says on the tin.
I am delighted to report that in over 6 months of using jMemorize, I have never been disappointed with it. That doesn’t mean it will do everything you might want it to do. It only means it does everything I want it to do. So it wins on functionality for me. Plus it wins on not have any superfluous functionality. I confess I (usually) like lean software. It also wins for me on being multi-platform. I’m constantly switching between machines with Windows operating systems and Linux operating systems. I needed a flashcard program that wouldn’t get in the way of my jumbled life/work arrangement. And of course it does make a difference to me that it is open source.
jMemorize is the project of a single dedicated developer, Riad Djemili, of whom I know virtually nothing. Nothing, that is, except that he does good work. Long may that continue.
Update: On 23 January 2007, Riad posted notice on the jMemorize blog that he was setting up a development mailing list for the project. So far it is a very low volume list, so why not consider signing up.