Notes on Mnemogogo and Related Topics

  1. Android Market: Responses
  2. Installing Mnemogogo 1.x on a Mac
  3. Disabling security prompts on J2ME phones
  4. Adjusting the font in Mnemojojo
  5. Frequently Asked Questions
  6. Spaced Repetition

Android Market: Responses

The Android Market allows users to make comments (and leave ratings), but no way for developers to respond! If you have a problem, question, or suggestion about Mnemododo, please mail it to me directly. I usually respond within a number of hours. Here are a few responses to comments posted on the Market:

David on Sunday, 22 April 2012 at 20:33: suggestion please add an option to filter questions.

Do you mean by category? This is possible. Press the menu button and then click Categories.

mijette on Wednesday, 25 May 2011 at 06:56: doesn't quite work for linux somehow I can't copy files back from my android on to my linux pc. If I am paying for an app I expect better performance.

Mnemogogo/dodo works perfectly under Linux. Please see the instructions or email me directly if you have a problem.

A Google User on Friday, 30 November 2012 at 18:25: Unexpectedly antiquated I wanted this app so I could quickly review some cards while on the go, but this app in combination with mnemosyne is anything but quick! I've tried multiple ways to synch my files but to no avail! And even if I had it running I would still have to export and import the cards manually each time I switch devices. In this day and age this is unacceptable and way to tedious and sort of defeats the whole purpose I thought his would have. I hope updates will make this usable,until then don't waste your 3 euros.

Setting up the syncing can be tedious at first. Whenever contacted by direct email, I have always been able to help make Mnemododo sync on any Android device with access to the Market from Windows, Mac, or Linux.

It is true that Mnemododo must be synchronized periodically with Mnemosyne, but I expect that it is nearly always more convenient to review cards on a phone or tablet with Mnemododo and to only use Mnemosyne to enter and edit cards. For most users, it will be possible to go for two to four weeks without syncing. Personally, I sync every seven days and it only takes five minutes. Furthermore, I like the separation of reviewing and editing; it helps me to focus on learning facts and not playing with software!

Mnemododo is tuned for efficient learning. The client is minimal and cards load quickly. I have been using it for more than two years to review between 150 and 200 cards per day on an older Android phone.

Finally, if you are not happy with Mnemododo, email me directly and either I will be able to help or I will refund your 3 euros!

Installing Mnemogogo 1.x on a Mac

These instructions are for the previous version of Mnemogogo. The standard installation instructions should now work for Macs too.

  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
    

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 Woźniak 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 Woźniak 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.