Parley Practice Rewrite for KDE 4.5
Work on the parley practice happens in a branch here: Browse WebSVN online
Check it out:
svn co svn://anonsvn.kde.org/home/kde/branches/work/parley-practice/
DONE: remove old practice codeF
- TODO: does Paraphrase make any sense at all? no - remove paraphrase - it is not used in any single document we could find
- TODO: remove Antonym completely
- DISCUSS: timeouts during practice ???
- TODO: get rid of current way of handling them in the lib? BIC!!!???!!!
- TODO: use a stringlist instead
- TODO: make it possible to edit them in the table - how to separate two of them? semicolon?
- TODO: change/rewrite dock widget
- DISCUSS: practice options (is this really really needed?):
DONE: Check synonyms as part of written practice(BEN_SCHL) DONE: accept any synonym as correct(BEN_SCHL) DONE: ask to enter all synonyms(BEN_SCHL) DONE: show already entered synonyms in list(BEN_SCHL) DONE: ask until the exact word that is wanted is there, but don't count other synonyms as wrong on the way there(BEN_SCHL) DONE: Check user options if he really wanted synonyms to be counted as correct by now we always accept them as correct (BEN_SCHL)
- Let other modes benefit from synonyms. Maybe similar to the hint button show a synonym if it exist?
DONE: If in written mode a synonym was entered, check if that synonym is in this practice mode and increase its good count ?(BEN_SCHL)
- TODO: integrate LaTeX in written and flash card practice modes
- TODO: poslish and test
- TODO add documentation to manual
- do nothing on empty string
- limit max size of widget
- TODO: implement rendering of scaled and cropped background
DONE dani_l: border-foo-repeat (stuff like fluffy bunny doesn't work that well if scaled...)
- TODO: make it possible for the boxes widget to be scaled (and change the layout so that it can get more space)
- TODO: threshold: word types are broken here?
Notes Advanced page:
- TODO: Time limits: only let the user select if the time limit is active, use show solution after answering
- TODO: enable button xyz: not applicable any more, only the hint button, so remove them from the ui file
- TODO: rearrange the widgets in the advanced page
- IDEA/TODO: maybe it would make sense to put the most common options into the statistics page that is shown before practice is started
- maybe replace the checkboxes again with radio buttons -> it's so easy to change now
- only show one bar of grades - the one that corresponds to the current language selection
Still missing are:
- TODO: Vocabulary test (school like) with good summary and "grade"
- no button for hints
- add buttons to "go back and forth"
- don't show if the answer was right
- DISCUSS: do we want to have some type of "grade" and if yes, how should it be calculated?
You know? Adjectives and adverbs - words that describe other words.
- green/red for right answers make right answers disabled so they can't be screwed up again
- URGENT show solution if wrong
- URGENT do not randomly skip words when answer was wrong
- initial focus on continue button is missing.
- keyboard focus?!?! if I press enter and no choice is selected, it will always be wrong
- hotkeys (maybe in menu? even configurable??) for the choices: 1 for first, 2 for second...
- use kactions
- TODO: continue when a radio button is selected
DONE dani_l don't use entries marked as synonyms or entries with the same text as the solution
- do not allow continuous continue button pressing without selecting anything
- why? dani_l
- only require one click, it takes too much clicking continue after each choice selection
- it would be nice to get rid of the radio buttons in favor of having something else maybe - a list? something that looks nicer
- There is a class like this, "answervalidator.cpp" but it's ugly old and eats kittens. Cleaning it up would be ok. Things like word similarity are in there.
- Moved some of the code to the new WrittePracticeValidator class maybe move more cuntionality there ?
- how far do we want to go when comparing answers? what feedback should the user get?
- you made a spelling mistake (this can be done by running spellcheckers and comparing what they suggest for a word with the solution)
- you wrote nonsense
- TODO: make sure that "I did (not) know it" actually does the right thing
- TODO: I think I just had an empty word shown - make sure they are filtered away
- how do we get this kind of feedback from the class to the ui?
- do not shows solution on wrong answer immediately, let user try again, only if answers are unchanged show solution
- practice all selected tenses
- there is still lots of crashyness when starting practice!!!
All Practice Modes
- TODO: remove statistics that don't make sense any more from the TestEntryManager (like "skip known")
- DISCUSS: define our terminology, e.g. is it grade or box, answer or solution, correct or right, incorrect or wrong etc.
- TODO: implement support for showing pronunciation for every practice frontend
- TODO: implement support for sound for every practice frontend
- TODO: add a "Auto-play sound" option to the practice settings and implement it
- sound: 4.6 rename "enable sound" to "autoplay sound" and implement it
- TODO: I also tried the "gender of nouns" practice, for fun, since I don't enter that info (for now). In that case, however, you kinda get stuck (you can't go back to edit mode, or at least not in an obvious way). Same goes for other modes that require extra info.
Grades are equivalent to boxes (leitner), they are:
- 0 not practiced
- 1 lowest level
- 7 best level
- Words are answered correctly:
- a correct answer gives grade += 1
- a word that has been answered correctly is not asked again
- Words are answered wrong:
- a wrong answer gives grade = 1 (reset to lowest level). Wrong anserws are:
- If a hint message has been used (may change policy here later if it doesn't work out)
- If an accent and/or capitalisation mistake was made (might be accepted as right if the option is chosen in the config)
- If answer stays the same after enter is pressed a second time assume the user doesn't know the answer and continue.
- Just print a different message if the user corrected himself and the answer was right
- words that were incorrectly answered will come up again until they are answered correctly (or the practice is stopped)
- DISCUSS: when a word is answered after being answered wrong before, it ends up on level 2, if the practice is stopped before, it stays in level 1 (Leitner says it stays in 1 ?)
- a wrong answer gives grade = 1 (reset to lowest level). Wrong anserws are:
- TODO: implement grading as described above and make sure it works in all modes
- TODO: Respect Leitner option to ask for the correct answer three times in a row.
- DISCUSS: If you answer an unknown word wrong or right doesn't matter as by definition above wrong words get set to level 1 (from 0) and right words get increased to 1 (from 0). I changed that correct new words end up in level 2 ? (BEN_SCHL)
- DISCUSS: what happens when practicing with multiple modes? does only the last mode affect the grading? make in configurable? (DOES THIS STILL APPLY?)
- DISCUSS: find out if restricting the grading for each mode makes sense (e.g. saying "if i practice in multiple choice, the word can only rise up to grade 3")
- TODO: figure out a sane way to configure this or give different grades for each practice mode ?
- TODO: pass in 3 int from backend to frontend: current, good, bad (so that the selection of right/wrong can be previewed correctly)
- note: basically it is already implemented, but in a quick and in some (most?) cases wrong way. we probably need some TestEntry::gradeIfWrong() etc or something like that
Summary Page (after practice is finished)
- TODO fregl: add a button to print a list with $number words you should practice
- STILL VALID?: New rows are appended when pressing enter in the row above the last one, not in the last one - Qt 4.6 regression?
- TODO: changes in dock widgets are not reflected in table -> model needs to emit dataChanged for the view to update (not working since the editing happens without models knowledge)
- TODO: table: add column for grades (including combo box for changing the grade)
- TODO: summary dock widget: make word type work
- setting works
- instead of the normal model use a flat list model (proxy would work)
- TODO: remove leitner box classes
- TODO: get rid of old kDebug() messages that don't make sense out of context
- TODO: check if the column visibility is saved correctly in all cases
- TODO fregl:
there is a broken version of the 5 language document in the files on edu.kde.org(and there should be a *version with and without* images which you can clearly separate from each other, right?)
- TODO: the languages that will be practiced should be per document, not global
- TODO: other practice options should probably be per document as well
- TODO: implement undo support
- TODO: frederik be ashamed! Danish document -> 4000 words to sublessons a 20 doesn't work
- TODO: creating a new document: title is not carried over for root lesson and window title
- big todo: configurable special chars per language - come with language definition - configurable hotkey ...
- I also found a bug, when deselecting the main lesson, it resets the title to "0". When clicking it again (to select all sublessons), it renames itself to "2".
- TODO: newly created sub word types should inherit their parent's grammar type -> Frederik?
- TODO do not show word types in the table when clicking them (maybe on right click menu?)
Profiles and config and zip
- DISCUSS: Instead of using current kvtml files, use the same with compression
- add images, sound and other media into the zip file
- TODO Icon/image for states:
- User answered correct (✓)
- User answered wrong (✗)
- User has not answered yet (?)
TODO: screenshots that explain the above
Regressions in trunk
- Title is broken (documents show up with 0 as title, chainging root lesson behaves weird, it doesn't get saved)
- TODO fregl: Auto-save in practice mode
(Frederik does all of this unless someone else wants to punish himself)
- Comparison forms: use keduvoctext for forms (make grades possible)
- make grades for articles possible
Stuff to discuss today
- write request with lots of screenshots?
- correct/wrong states, it it ok how they are currently implemented (especially in written mode)
- great, but: longer ? in written (see above)
- what grammar modes do we need and how can they be implemented
- can we reuse/extend our frontend/backend modes?
- grading for grammar training
- create example document(s) making use of all our advanced features for testing
- grammar training
- multiple choice options
- two images per entry, pronunciation, sound
- blockers before merging the branch back to trunk
- timeline for merging, release schedule
- synonym/antonym: what to keep? what about semicolons?
Usability session with Leinir
Dan, Lydia, Daniel and Frederik sat down in Randa and these are some notes on usability.
Comments from Lydia:
- table is big and in your face, but maybe that is ok
- check boxes should be tri-state - parent lessons should be half-checked if only some of their children are selected
- only show the relevant column with grades instead of all of them
- do not offer to start practices that contain 0 words! it's borked!
- flash cards: change continue button to "show backside"
- pic placeholder is ugly in default theme
- progressbar should maybe start counting at 1
- label: "I did not know it" "I know it" -- or "Did you know the answer?": "yes" - "no"
- mixed letters are getting grey on grey -> generally font color is problematic
- Multiple choice needs shortcuts (key 1-5 for example) and continue button should be disabled until a choice is selected.
- conjugation mode: "Enter all conjugation forms" is a silly string and should be removed.
- get email from kuser-something
- categories: test preparation makes no sense as category
- tooltip for checkboxes
- remove flags for languages
Comments from Dan:
- create video tutorials
- hide "last opened" string if list is empty
- title could be "Parley - Vocabulary Trainer" use kqtitlewidget
- subtypes in word types should always get their parent's type by default
- indent tenses below radio buttons
- always show tenses (both Daniel and Frederik are against this)
- remove status bar
- remove tree indicator from tense selection
- enable practice checkbox by default in file dialog (depending on current component)
- remove "Editor" from toolbar, make sure it is in the menu though
- Since May 19th: Soft Message Freeze
- NO NEW STRINGS, NO STRING CHANGES ANY MORE (ask Frederik if you need to change strings and let him take the flames)
- June 2nd: Documentation/Handbook Freeze
- Have an updated documentation, work with Burkhart to get it from userbase to docbook