[Parley-devel] Fwd: Features in next version of Parley

Inge Wallin inge at lysator.liu.se
Sun Sep 14 22:27:24 UTC 2014


On Friday, September 12, 2014 01:21:31 PM Anša Vernerová wrote:
> Hello,
> 
> > But there is one thing I would like your opinion of, namely Amarvir's GSoC
> > project.  It's in the lessoncreator branch. I don't consider it merge
> > ready
> > yet, some more work is needed. But this could be a perfect way for you to
> > give some input before things are finalized.
> 
> I compile using the "build" button in KDevelop.
> I had to install libsqlite3-dev and libicu-dev. libicu52 and
> icu-devtools are also installed on my system.
> I get the following errors and the compilation fails.
> 
> [ 15%] Generating parleyadaptor.moc
> Linking C shared library ../../../../../lib/parleydb_sqlite3_icu.so
> CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuCollationColl':
> /home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:391:
> undefined reference to `ucol_strcoll_52'
>
> [much more here...]
>
> CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuRegexpDelete':
> /home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:224:
> undefined reference to `uregex_close_52'
> collect2: error: ld returned 1 exit status

"undefined reference" means that it won't link.  This is probably due to a 
missing add_link_library() somewhere in the CMakeLists.txt file.

> I tried to run the build again, the output is similar, it just
> complains earlier:
> 
> [  1%] Built target plasma_applet_parley_automoc
> CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuCollationColl':
> /home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:391:
> undefined reference to `ucol_strcoll_52'
> 
> and so on, the errors are similar as before.
> Any suggestions what to do next?

You can check that 
 - You have the required libraries installed.
 - They are mentioned in the CMakeLists.txt file.

If a quick check there doesn't help then I guess I'll have to look closer 
myself.

> > What happens when you practice so little time that you don't have time to
> > exhaust all the words is a question of strategy. Right now the strategy is
> > to choose words with higher grades first, protecting your investment in
> > training these words, so to speak. But we have discussed other strategies
> > too.
> I think the words with highest grades are less likely to be forgotten
> if they are delayed a little. If the interval between trainings should
> be four months, you are likely to remember it even after five months;
> while a word that has been scheduled for four minutes since the last
> practice will be fine after five minutes instead. The ratio is the
> same in both cases.
> 
> So my preferred strategy  for choosing words for practice would be to
> prioritize words with high ratio between the following two numbers:
>     let t = time since last training
>          s = the time between the last training and the last but one
> training; or the time interval between the current level and the
> previous level

Yes, the other strategy I was talking about is what I called "most overdue". 
It's much like you describe above except I'm using t/u instead of t/s where u 
= the time between when the word was last practiced and when it became due.

So a word that should be practiced after 5 minutes but is not yet after an 
hour has the value 12 and a word that should be practiced again after 5 months 
but is not yet after 6 month has the value 1.2.  This clearly favours new 
words instead of old ones so I guess it should be combined with some limits on 
the new words.

I guess that in retrospect your suggested strategy above is smarter.

> >> I suppose the new training system proposed by Andreas will
> >> somehow address this, but for the time being, I think that the word
> >> should skip all levels that have shorter intervals than the one for
> >> which the word was actually retained. (This does not apply only to
> >> pregrades.)
> > 
> > I am not sure I understand. Do you mean that if you have a word at for
> > instance grade 4, fail to recognize it and it falls down to grade 0,
> > pregrade 1 then when you recognize it again it should get back up to
> > grade 4?  That is a very interesting idea. I haven't thought about that
> > because I don't mind training some words a little extra.
> 
> What I had on my mind was the situation when I answer a word correctly
> long after it has been scheduled. If the word has been on intial level
> 2, scheduled for a couple of minutes after the last practice, but I
> only see it on the next day and I am still able to recall it
> correctly, I think that is a convincing argument for skipping all the
> remaining "initial" levels and going to level 1. Similarly, if the
> word was on level 1 but for whatever reason I only see it after a
> month, it should skip levels 2 and 3 (or however many) and go directly
> to the level that comes closest after the 1 month interval.

This is another very interesting idea.

> I think Frederick Gladhorn had some reasons for moving forgotten words
> all the way to level 0. Before that, they were only moved one level
> down. (See also this
> post:http://mail.kde.org/pipermail/parley-devel/2010-October/000529.html
> .)

This is standard when using the Leitner box system.  See e.g. 
http://en.wikipedia.org/wiki/Leitner_system and the nice animations on the 
right side.


> > We have discussed to introduce a limit on the total
> > words in the initial stage (grade=0, pregrade>0) so that no new words are
> > introduced once this limit is reached until at least one word graduates to
> > the long-term stage with grade >=1.
> > 
> > But I guess that if you run long sessions then these two ideas (limit and
> > go back to earlier words in the same session) don't exclude each other.
> They definitely don't exclude each other.
> 
> Closer to the ways things are done currently (=requiring less coding)
> would be either to let users set maximum words per session to 0 (I
> think there is no reason not to give the user that choice).
> I see how limiting the total number of initial stage words goes beyond
> that and that it would be nice to have that, too.

I assume you mean new words, not words.  :)  And yes, I think that is 
reasonable too. Honestly I don't know why the lower limit is not 0 now.

> > Another thing I was thinking of is to have a part of parley that explains
> > the concepts and methods behind the implementation so that the user can
> > get it inside Parley and don't have to go read a manual. I'd also like to
> > pepper the UI with lots of 'what's this'-help which KDE has good support
> > for.
> Sounds good to me!

Time to start writing then.  :)  I'll hack up some code to include the texts.

	-Inge



More information about the Parley-devel mailing list