On Jan 17 at 13:39 -0800, koepked wrote: > I just ran the mnemododo-0.5.1 apk and everything looks fine. My cards > imported back in and first appearances are that they made it back into > the DB in a proper manner.
Great. Thanks for giving it a first real test run. I'm glad that it
seems to work on an actual phone.
There are two types of problems that I'm interested in at this early
stage:
1. Basic usability issues
Is it easy to accidentally trigger the show answer or grading
buttons?
Are the buttons big enough?
Any other suggestions for improving the existing features?
2. Data corruption faults
i.e. misscheduled or corrupted cards over several sessions/days.
These are the nasty ones and sometimes tricky to identify. Some
detailed tips follow.
As the rest of this email is a bit technical, it may be better to
direct future messages to mnemosyne-proj-devel.
Tim.
Detailed tips for testing
-------------------------
* Backup your Mnemosyne folder before import:
tar czvf `date +mnemosyne-backup-%Y%m%d.tar.gz` ~/.mnemosyne
(or use winzip)
Be prepared for database corruption and the subsequent need to redo
reviews.
* Gradually increase the gap between export and import: a few cards, more
cards, a whole day, two days, etc.
I lost whole days of reviews in the early stages of debugging Mnemojojo.
But, ultimately, it is important to monitor the programs behaviour
over several days since the card scheduling and grading algorithms
work on this scale.
* Pay attention to the future schedules in Mnemododo, i.e. the number
displayed in the top right-hand corner of the screen, and the future
scheduling numbers in the statistics panel. Check them at each new
session, and after reviewing cards. Are the numbers sensible? Are
they consistent across sessions? Do they change in a reasonable way?
Strange changes in these numbers can indicate data corruption or
other algorithmic flaws.
* Similarly, check the future schedules in Mnemosyne before importing and
after importing. Do the numbers change as you would expect?
For instance, a recent timezone bug in the Mnemogogo library caused shifts
in the future schedules, and introduced days with zero reviews.
* Pay attention to a sample of individual cards. Are they appearing at the
kind of intervals you would expect, i.e. more frequently for low grades,
less frequently for higher grades?
The statistics and card data are stored separately in the Mnemogogo export
(the former changes, the latter does not). In early (unreleased) versions
of the library, the two were being combined incorrectly, i.e. the
statistics displayed for a card in Mnemojojo differed from those displayed
for the same card in Mnemosyne.
* Open the STATS.CSV and PRELOG files in a text editor before importing back
into Mnemosyne. These are the only files that Mnemododo should change. Are
there any wierd (non-ASCII) characters? For instance, the 0.5.0 data
corruption bug manifested as weird characters in the first column. Are
there any strange repeated patterns? Do any of the lines look different
from the others? (The first line is the number of exported cards, each
other line contains the statistics for a single card. If there are N
exported cards, the file should have N + 1 lines).
Ideally, copy the STATS.CSV file to STATS-PRE.CSV just after export and
compare it to the version of STATS.CSV just before import. For instance,
the results of running:
diff STATS-PRE.CSV STATS.CSV | grep '^<' | wc -l
diff STATS-PRE.CSV STATS.CSV | grep '^>' | wc -l
should give the number of cards reviewed since the last export.
The Mnemogogo plugins comes with a rudimentary utility for dumping a
Mnemosyne database to the command-line: mnemogogo/util/dump_database.py
It can be used to dump the database to files before and after and
import. These files can then also be compared with diff.
The basic library has been tested and refined for several months, but
I still urge caution until the software has been tested more
thoroughly. Speaking from experience, it's not fun to find out that
several hundred cards have been misscheduled or that their statistics
are nonsense!
signature.asc
Description: Digital signature
