This page contains some brief notes on the development of the Mnemogogo plugin and each of the two mobile clients. Please email me if you would like more information.
The Mnemogogo source repository can be checked-out using Bazaar:
bzr branch lp:mnemogogo
Additionally, there is a (rough) Makefile for building the zipped distribution.
The Mnemogogo code has two parts:
- A plugin for Mnemosyne 1.2.2 written in Python.
- A Java library for accessing the files exported by the plugin.
The plugin comprises the
mnemogogo_plugin.py file to interface
with Mnemosyne, and the library routines and other files in the
The main library files are:
- The basic infrastructure and generic routines for import/export plugins.
- gogo_frm.ui, gogo_dlg.py
- The pyqt 3.x user interface and the routines it triggers.
- lock_enabling.py, locked.png
- Tricks for 'locking' QT Widgets (viz. the Mnemosyne question and answer boxes).
- Replace HTML character references and entities with unicode characters.
Mnemogogo has its own notion of an import/export plugin, though there is
only really one:
These routines convert between data within Mnemosyne and the
collection of files that the mobile clients read and update.
util directory contains utility scripts for testing and
dump_database.py script is especially useful for
validating the plugin's operation.
It dumps a Mnemosyne database to stdout.
The library routines are kept in the
The library is used by both the J2ME and Android clients; where the code
differs between the two platforms there is usually a specific class file
for each (with a name ending in either
Android), but some more minor modifications required for
the Android platform (Java 1.6) are marked by comments beginning with
The Makefile described above contains scripts for building separate J2ME
and Android source and jar files.
Three components are required to build Mnemojojo:
- The Mnemojojo source.
- A patched version of Pashalis Padeleris' Fire UI library (now included in contrib subdirectory).
- The J2ME version of the Mnemogogo library
mnemogogo-j2me-x.y.z.jar) distributed with the Mnemogogo plugin package.
Follow these instructions to setup a build tree:
- Check out the
source repository with:
bzr branch lp:mnemojojo
- Open the Mnemojojo
Makefileand adjust the
MNEMOGOGOvariable to point at the the jar file distributed with the Mnemogogo plugin.
maketo build the source. Two files should be added to the
mnemojojo.jar. These are ready to install on a mobile device.
- Alternatively, the Makefile also contains
microemulatortargets to run Mnemojojo on, respectively, the Sun JWTK Emulator and the Open-source Microemulator. In both cases you will need to arrange for the files exported by Mnemogogo to be present on an emulated SD card.
The Mnemododo source repository can be checked-out with:
bzr branch lp:mnemododo
It requires the Mnemogogo client library.