Notes on Mnemogogo and Related Topics

  1. Installing Mnemogogo on a Mac
  2. Download and installation of Mnemojojo
  3. Disabling security prompts on J2ME phones
  4. Adjusting the font in Mnemojojo
  5. Frequently Asked Questions
  6. Spaced Repetition

Installing Mnemogogo on a Mac

  1. Mnemogogo will not work with the usual Mac package of Mnemosyne, which is version 1.2.1 rather than 1.2.2, so first download this patched version of Mnemosyne for Mac (alternatively, you can create the patched file yourself).
  2. Run Mnemosyne for a first time, if you haven't already done so, to create a user folder.
  3. Create a new Finder Window and, from your home folder, go to

    1. Library,
    2. then Mnemosyne,
    3. and then plugins
  4. Download the Mnemogogo plugin, and unzip it. Copy the mnemogogo_plugin.py file and the mnemogogo folder into the plugins folder from the previous step.
  5. Restart Mnemosyne and go into the Deck menu, you should see an option Mnemododo, select it to start Mnemogogo.
  6. You can now follow the existing instructions to configure Mnemogogo. On a Mac, the synchronisation path will be something like /Volumes/NameOfYourPhone (you will need to connect your phone first!).

Patching Mnemosyne 1.2.1 on a Mac

You do not need to follow these instructions if you download the patched version from the above link. Otherwise:

  1. Download Mnemosyne 1.2.1 for (Intel) Macs
  2. Command-click on the file and open the application bundle.
  3. Navigate to Contents/Resources/mnemosyne/core, and open mnemosyne_core.py.
  4. Add these lines to the bottom of the file (indentation is important):
    def get_time_of_start():
        global time_of_start
        return time_of_start
    

Download and installation of Mnemojojo

On BlackBerry

There are reports of problems running the Mnemojojo jar file on some BlackBerry phones. So, I have made a special build using the BlackBerry development tools. It can be downloaded from the Mnemosyne site. This version has special support for the BlackBerry command buttons. Please email me if you still have any problems.

Installing Java applications on BlackBerry phones seems to be a bit tricky sometimes. Here are three approaches you might try:

Web-based installation from Getjar
  1. Goto http://m.getjar.com
  2. Select Quick Download
  3. Enter the code: 35319
Installation with BlackBerry desktop software
  1. Download the BlackBerry zip file from the Mnemosyne site.
  2. Unzip it to give two files: Mnemododo.alx and Mnemojojo.cod.
  3. Start the BlackBerry Application Loader Tool and then select the Mnemododo.alx file.
Installation by email
If you are still having trouble, you could try installing the standard mnemojojo.jar file, either directly from the Mnemosyne website, or by first emailing it to your BlackBerry, and then saving it locally, before opening it with Files (thanks to Galal Gough for this tip).

Disabling security prompts on J2ME phones

BlackBerry 9530 (v5.0.0.328)

With thanks to Galal Gough:

  1. Go to options>applications.
  2. Select Mnemojojo.
  3. Select Edit Permissions.
  4. Across the top is listed RIM | MIDP groups | MIDP JSRs.
  5. Select MIDP groups.
  6. Select Data Space to expand some hidden options.
  7. Change both the options .file.read [ONESHOT_NO] and .file.write [ONESHOT_NO] to ALLOWED.
  8. Exit, then select Save to save the new settings.

Esmertec Jbed Java MIDlet Manager (20080912.5.1)

With thanks to Hamidreza Jafari:

  1. Edit the \windows\appdb\selector.utf file.
    Either manually or using a special-purpose script.
  2. Download the policy.utf file and place it in the same directory as selector.utf.

Adjusting the font in Mnemojojo

Mnemojojo cannot always display the characters necessary to study certain subjects—for instance, Chinese or Japanese characters, or the symbols of the IPA—because, as a J2ME application, it is limited in its ability to select a display font, and, furthermore, because the underlying Fire UI library does not currently support custom bitmap fonts (though it may someday). It may be possible, however, on some phones to replace or enhance the font used for Java applications. Some suggestions are provided below but you use them at your own risk! Please feel free to email me any others that you have tested successfully.

An alternative work-around for font limitations is to render non-supported characters on your PC during a Mnemogogo export. The Gogorender plugin does just that to produce image files for display in Mnemojojo. On phones with the security prompt curse, however, note that each such image will generate an annoying prompt.

On Sony Ericcson phones

Apparently, the font used by Java applications on some Sony Ericcson phones can be changed (thanks to Mackan Svensson for this link).

Frequently Asked Questions

  1. Do Mnemogogo and Mnemojojo use the same algorithm as Mnemosyne?
  2. How are new (unseen) cards handled?
  3. Are statistics collected and uploaded to the Mnemosyne project?
  4. Could you please add feature X?
  5. Why can't I just copy my Mnemosyne database onto my phone for use with Mnemododo/jojo?

Do Mnemogogo and Mnemojojo use the same algorithm as Mnemosyne?

Yes (well, almost). The routines for scheduling and grading cards are ported directly from Mnemosyne. The scheduling of cards graded 0 and 1, after all other cards have been reviewed, differs slightly.

How are new (unseen) cards handled?

Mnemogogo respects the “Number of grade 0 cards to hold in your hand” setting (found in the Mnemosyne configuration dialog box). If this value is 10, and you export cards for 8 days, then 80 new cards will be included.

Are statistics collected and uploaded to the Mnemosyne project?

Yes, if the “Upload anonymous logs” setting in Mnemosyne is enabled.

Could you please add feature X?

No, sorry. Mnemogogo is intended to be a simple system for reviewing and grading Mnemosyne cards remotely. The source code is, however, freely available, so feel free to add whatever features you want!

Why can't I just copy my Mnemosyne database onto my phone for use with Mnemododo/jojo?

It would be possible to write an app (as suggested here.) that reads mnemosyne databases directly. Such an approach certainly has advantages, but also some complications. The problems can be understood by considering the three main reasons behind the current design of Mnemogogo and its two mobile clients:

  1. The Mnemosyne file format is Python-specific, but Mnemojojo and Mnemododo are both written in Java.
  2. Mobile phone applications must be careful in their use of the memory, processor, and battery. The file format is designed so that the two mobile clients can work reasonably efficiently and on phones with very little memory and slow processors. This efficiency can be measured both in terms of perceivable startup and response times, and in resources consumed.

    It's true though that the original design was for low-end J2ME phones which are much less capable than modern iPhones and Android phones.

  3. Mnemogogo does some preprocessing of card markup and images to ensure optimal results on mobiles (which use different rendering engines than the PC version), and on smaller screens. Some of these things—like rendering characters in special fonts or processing Latex commands—are not easily done on mobile phones. Furthermore, the other transformations are easier to program in Python on a PC, they only have to be written once for all mobile clients, and they do not need any extra phone resources.

All of that said, it seems that the next generation of mobile clients based around Mnemosyne 2.0 will use a more convenient synchronisation protocol. But it is not clear when the new system will be ready for daily use.

Spaced Repetition

Mnemogogo works with Mnemosyne to allow spaced repetition study on mobile phones. Spaced repetition is a very effective technique for memorising material, which is an important component of learning. There are many good articles which explain and/or justify this technique, here are some links to some of them:

  • Want to Remember Everything You'll Ever Learn? Surrender to this Algorithm, Gary Wolf in Wired. Explains the basic concepts of spaced repetition very well, and talks with and about Piotr Wozniak who led the development of SuperMemo, and designed the SM-2 algorithm that has been adapted for Mnemosyne (and thus Mnemojojo and Mnemododo).

  • The SuperMemo website includes a set of great articles and notes by Piotr Wozniak on learning in general, how to structure material for spaced repetition learning, how to write flashcards, and much more.

  • Forget What You Know About Good Study Habits, Benedict Carey in the New York Times (20101106). Overview of research suggesting that:

    • The act of testing, being forced to respond to questions, helps with acquisition.
    • There are benefits to studying the same material in different places.

    The first is another benefit of spaced repetition learning. The second is a particular benefit of mobile learning software! Thanks to Nils von Barth for this link.