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

Anša Vernerová ansa211 at gmail.com
Fri Sep 12 11:21:31 UTC 2014


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'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuFunctionError':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:213:
undefined reference to `u_errorName_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuLoadCollation':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:434:
undefined reference to `ucol_open_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:445:
undefined reference to `ucol_close_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuLikeCompare':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:136:
undefined reference to `u_foldCase_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:137:
undefined reference to `u_foldCase_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuLikeFunc':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:187:
undefined reference to `utf8_nextCharSafeBody_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuCaseFunc16':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:356:
undefined reference to `u_strToUpper_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:358:
undefined reference to `u_strToLower_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuRegexpFunc':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:267:
undefined reference to `uregex_open_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:279:
undefined reference to `uregex_setText_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:286:
undefined reference to `uregex_matches_52'
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:297:
undefined reference to `uregex_setText_52'
CMakeFiles/parleydb_sqlite3_icu.dir/icu.o: In function `icuCollationDel':
/home/ansa/bin_sources/parley/src/db/drivers/sqlite/icu/icu.c:375:
undefined reference to `ucol_close_52'
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



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?


> 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


>> 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.

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 correct. How many words do you typically have in a session?  It could
> be a good enhancement to reintroduce words into the session when they "time
> out" so to speak even when the session is not restarted.

When I have enough time, I find 50 to be a pleasant session size.
When I have a lot of time, I go for 100.
Going back to earlier words in the same session would be very helpful
(although it might be a bit discouraging to see the progress bar jump
back).


> 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.


> 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!

Anša


More information about the Parley-devel mailing list