Mnemojojo: J2ME client for Mnemosyne

Mnemojojo allows cards from Mnemosyne (a spaced-repetition flash-card program) to be reviewed on most mobile phones that support Java (J2ME). Mnemojojo does not replace Mnemosyne: cards are still added, edited, and deleted using a desktop or laptop computer. Rather, cards for several days are exported using the Mnemogogo plugin and then transferred to a mobile phone where they can be reviewed on the go. When those cards have been reviewed, they are imported back into Mnemosyne, and more cards may be exported.

Mnemojojo has a few limitations:

  • Cards cannot be edited (all editing is done through Mnemosyne).
  • The user interface is only available in English.

But many advantages:

  • support for HTML Markup,
  • support for Images including LaTeX markup (images are optimized for viewing on a phone),
  • support for sound (requires appropriate decoders on phone),
  • support for ‘map overlaying’,
  • statistics are still be contributed to the Mnemosyne project,
  • your cards are retained and managed in Mnemosyne,
  • the scheduling and grading algorithms are ported directly from Mnemosyne
  • the basic library has been tested and debugged over several months, and,
  • the system does not require an internet connection.

Mnemojojo requires both the Mnemosyne application and the Mnemogogo plugin. They are both freely available for Windows, Mac, and Linux:

Mnemojojo can be downloaded from the Mnemosyne Project web site or via the links below.

Care has been taken in the design and implementation of this software, and I now use it daily, but there may still be bugs. You use the software at your own risk and without warranty!

Mnemojojo is completely free. You do not have to pay anything to use it or to have the source code. But, you are also welcome to send me a tip if you find the software useful!

The screen shots were produced using the open-source MicroEmulator software.

Supported devices

Several devices are known to work:

Devices known to work
BlackBerry Curve 8300 (with OS v4.5.0.110) Works perfectly (but with security prompts, use the BlackBerry build).
BlackBerry Storm 9530 Works perfectly (the security prompts can be disabled).
HTC Touch HD (Blackstone WM 6.1) Works perfectly
HTC Windows Mobile 6 + Esmertec Jbed Java MIDlet Manager Works (the security prompts can be disabled).
LG KP501 Works perfectly (but with security prompts)
M002L Works perfectly
Motorola A1200 Works perfectly (security prompts can be disabled).
Nokia 6121 Works perfectly (but with security prompts)
Nokia E61 Works perfectly (but with security prompts)
Nokia E71 Works perfectly (but with security prompts)
Nokia E90 Works perfectly (but with security prompts)
Nokia N95 Works perfectly (but with security prompts)
Nokia N97 Mini Works perfectly
Nokia 5800 (Express Music) Works perfectly (better handling of security prompts)
Palm TX Works perfectly (requires IBM WebSphere Micro Environment Java Virtual Machine 5.7.2)
Samsung SGH-i780 Works perfectly (but with security prompts)
Sony Ericsson W580i Works perfectly
Sony Ericsson W595s Works perfectly (can be set to trusted mode)
Sony Ericsson K750/K750(i) Works perfectly (but with security prompts)
Sony Ericsson W760i Works perfectly
Sony Ericsson W800i Works perfectly (but with security prompts)
Sony Ericsson K850i Works perfectly (One security prompt at startup, the font can be configured.)
Toshiba g900 (with Esmertec java emulator) Works (but with security prompts and a small font)

Mnemojojo loads statistics, card text, and images from the memory of a mobile phone and its connected memory cards. On some devices each access generates an annoying security confirmation message. Several confirmations are required when starting, confirmations are then needed every fifty cards or so, for each image, and when quitting. If security confirmations cannot be disabled on your phone please complain to the manufacturer (not to me)!

For the latest Nokia phones (e.g. 5800, E75), at least, Aleksi Uotila says that this issue has been fixed.

Devices with known problems
BlackBerry 8320 Apparently it works after (re)installation, but then crashes at startup with an unhandled exception.
BlackBerry Curve 8520 Crashes on startup with Error starting mnemojojo: Symbol 'CommandListener.labelFont' not found. Please contact me if you are a BlackBerry developer who can help.
LG Rumor Touch Crashes, freezes the phone, or restarts the phone when writing the configuration file or statistics.
Motorola i290 Needs compilation in Motorola SDK to install, even then throws an exception on startup.
Nokia 5130c Runs but terminates quickly with an OutOfMemory exception.

Please let me know if you are willingly and able to help debug these devices.

If your phone is not on either of these lists, please try Mnemojojo and let me know how it goes. Thanks to everyone who already reported issues or success.

Installation

The steps required to install Mnemojojo will vary from phone to phone, but there are three basic approaches:

  1. Manually copy the installer files onto your phone and then open them on the phone.
  2. Install the files using a program like Nokia PC Suite.
  3. Download and install the files directly from the Internet using your phone's browser.

The latest version of the main application or ‘jar file’ can be downloaded from:

Some devices may also require a description or ‘jad file’, which can be downloaded from:

(Mnemojojo requires MIDP 2.0, CLDC 1.1, JSR-75 and usually 0.5 to 1.0 megabytes of heap space.)

There are some extra tips for download and installation on BlackBerry devices.

Configuration

  1. Follow the Mnemogogo instructions to install and configure Mnemogogo on your PC, and to export some cards.
  2. Start Mnemojojo on your phone. The about screen shown in Figure 3 should appear.
    Screenshot of top part of about screen.
    (a) Top part: logo and credits
    Screenshot of bottom part of about screen.
    (b) Bottom part: configuration options
    Figure 3: The Mnemojojo about screen.
  3. Press up and down to scroll through the various configuration options (or drag the scrollbar on touchscreen devices). Press select (or tap a control) to change an option. Option values are remembered across invocations, but forgotten after reinstallation. There are six options:
    Change card directory
    The first time you use Mnemojojo, you must indicate the directory that contains the exported cards. Mnemojojo checks for a directories called cards at the top-level of each drive. It also provides options to automatically search through all subdirectories, which may generate annoying security alerts, or to manually browse for a directory. The path, once chosen, will be remembered automatically the next time Mnemojojo is started.
    Show touchscreen buttons
    On devices with keypads, cards are graded by pressing the appropriate number key. Some touchscreen devices, however, do not have a keypad. Instead Mnemojojo can display on-screen buttons for showing card answers and grading cards. See Figures 4(b) and 5(b) for examples.
    Configure command keys
    These keys are used to choose from the options presented at the bottom of the screen; for example, in Figure 3, between Ok and Exit. Mnemojojo usually configures them correctly automatically (thanks to the underlying UI toolkit), but on some devices they must be set manually. (This option is not present on the BlackBerry-specific build, since the built-in keys should work automatically.)
    Configure grading keys
    These keys are used to grade cards (0 to 5), to skip cards (*), and to show card statistics (#). On some devices, like the Nokia E61i, it is necessary to press a ‘shift’ key before pressing a number key. As this quickly becomes tedious, Mnemojojo allows the grading keys to be remapped if necessary.
    Card font size
    The size of the font used for displaying cards can be changed to suit your mobile and eyesight.
    Center card text
    Text and graphics are left-aligned by default. If this option is selected, they will be centered on the screen, but be aware centering does not currently work properly with all combinations of bold, italic, or underlined text due to a limitation in the underlying library.
    Play sounds automatically
    By default, any sounds on a card are played automatically when the card is displayed. When this box is unticked, sounds are only played when the replay button (either on screen or on the keypad) is pressed.
    Cards to load ahead
    The text of exported cards are stored in a single file. This option determines how many of those cards should be read into memory simultaneously. If too many cards are loaded, your mobile may not have enough free memory to display images, or even, to run Mnemojojo at all. If too few cards are loaded at a time, you may be bothered by more security prompts, or long pauses between cards while the file is rescanned. Thus, this number should only be reduced if your phone is running out of memory or not displaying images. It can be increased if your phone makes more memory available to Java applications.
  4. After installing Mnemojojo, you must select Change card directory to detect and choose the location of the exported cards.

Daily Use

  1. If necessary, start Mnemojojo and, at the about screen, choose a card directory. Then press Ok.
  2. The question screen for a card is shown first, as in Figures 4(a) and (b). The category of the current card is shown in the top-left corner, and the number of scheduled cards remaining is shown in the top-right corner. The * key can be pressed to skip a card.
    Screenshot of a card with a text-based question.
    (a) Text-based question
    Screenshot of a card with a map-based question.
    (b) Map-based question (with touch screen buttons)
    Figure 4: Screenshots of questions in Mnemojojo.
  3. Pressing the Show button shows the answer screen, as in Figures 5(a) and (b).
    Screenshot of a card with a text-based answer.
    (a) Text-based answer (with images)
    Screenshot of a card with a map-based answer.
    (b) Map-based answer (with touch screen buttons)
    Figure 5: Screenshots of answers in Mnemojojo.
  4. Pressing one of the 05 keys, or optionally touching the on-screen buttons will grade the card. The question screen of the next card is then presented.
  5. When the number of exported cards runs out, or you want to review cards with Mnemosyne again, quit Mnemojojo and import the updated statistics as described elsewhere.

Note: The # key can be pressed at any time to show a statistics screen similar to the example in Figure 6.

Screenshot of the statistics screen within Mnemojojo.
Figure 6: The Mnemojojo statistics screen.

Several details are shown:

  1. The number of days worth of exported cards that remain until another export from Mnemosyne is required, and the number of cards scheduled for each day.
  2. The statistics for the current card.
  3. The path to the cards that are currently being displayed.
  4. The numbers of free and total bytes available to Mnemojojo.