Difficulties with "Limit new cards > Prioritize by"

bosi

Member
A friend and I have recently decided to learn how to handwrite Chinese characters, and are planning to do so by studying 10 of the top 3000 most common characters everyday over the course of the year.

As a huge fan of Pleco's flashcard system I was hoping to make use of it's SRS features to assist in this endeavor, but ran into an issue that has me a bit stumped.

Ideally, every day I want the flashcard system to first show me the 10 new cards/characters I need to learn for that day, followed by any remaining cards for me to review from previous days based on their spaced repetition intervals. Crucially, I want my friend's phone to also show them the same 10 new cards/characters as me for that day, but their remaining cards can of course differ from mine based on how their spaced repetition is going and what cards they need to review.

To enable this my friend and I imported an identical flashcard set of the 3000 most common characters and then, amongst other settings, on both of our devices (my iPad and their iPhone) have Card Selection set to Study new cards first, where we then Limit new cards > By "new per day > Count "10" > Prioritize by "oldest". The issue that then arises is twofold:
1. The 10 new cards/characters it shows us on a given day not are not quite in the same order as the flashcards themselves. It's very close, but usually a few are out of order.
2. My friend and I do not see the same 10 new cards as each other on a given day. Most of the the 10 new cards are the same for both of us, but one or two are usually different.
Note that Sort cards randomly and Sort not-due randomly are both off, so I do not believe that this is happening because I have accidentally enabled a setting which is sorting the cards randomly -- especially because the 10 new cards we seen on a given day are almost identical to each other, just one or two being different.

We are using the exact same flashcard set, and even tried importing together at the exact same time (after freshly erasing our flashcard databases), but we still couldn't quite get them to line up. I imagine this has to do with the Created date for all of the cards being practically identical, since they were imported all at once, causing Prioritize by "oldest" to act a bit inconsistently.

One workaround that seems effective is to increase the priority of the 10 cards we want to review on a particular day to very high, decreasing the priority after we initially review them and then repeating for the next 10 cards the next day. This is a bit tedious, so I'm not sure if it's a feasible solution for us in the longterm.

Ideally, I would love to be able to edit the creation time of flashcards, or prioritize new cards by a different value (such as their order in our flashcard databases) such that there is a guaranteed order of new cards regardless of device. I have a background in Computer Science so I would gladly cook up a script to order the cards automatically if there's a way for me to actually edit their creation times perhaps by directly editing a Pleco database file and reimporting it -- though I'm not sure if that's actually feasible? I've also been experimenting with Pleco 4.0, but am not yet familiar enough with it's expert test settings to know how to achieve this there.

Any hints for what I could do to guarantee the order in which new cards appear in a spaced-repitition flashcard test would would be greatly appreciated!

Cheers,
博思
 

Shun

状元
Hi 博思,

congratulations on this fine project. I would assume that Pleco 3.2 assigns a timestamp with a precision of one second to each imported card, so that all cards that have been imported in that second will have the same timestamp and can later get mixed up by the database engine. You may be able to change their timestamps to fictitious times, each card one second after the other, using a Python script and Python's sqlite package. The Pleco 3.2 flashcards database is an SQLite database, as you probably know. Then the ordering should come out the same on both devices.

The only other option I see to ensure that you both study the same cards would be to split the 3,000 cards into 300 subcategories of 10 cards and select those manually. (in Pleco 3.2)

Best of luck,

Shun
 

mikelove

皇帝
Staff member
The category split Shun mentions is what I'd recommend, honestly - there's enough randomness in various parts of the system that you're unlikely to get it to follow the same order perfectly just by configuring it the same way on each device. (I'm afraid that's not really something that we would have ever designed / optimized around, though "tandem study" is an intriguing idea for a future feature addition)
 

bosi

Member
Thank you both for the immediate responses!

The SQLite database hint was just what I needed to get up and running, and I was able to cobble together a Python script which modifies flashcard creation timestamps to ensure they're a bit more spaced out. (I've attached the script to this post as a text file, along with the resulting modified database for anyone who's curious)

After importing the modified database I can confirm that the flashcard creation times have been successfully altered, and Pleco seems to be feeding me flashcards in a more consistent order -- yay! I have yet to test it on my friend's device to see if we are now truly synced up, but I'll update as soon as I try that.

If this approach doesn't end up working then the category split you suggested seems like a great solution as well.

Best,
博思
 

Attachments

  • 3000Characters.pqb
    488 KB · Views: 73
  • ReorderFlashcards.py.txt
    1 KB · Views: 61

daal

探花
I am also in the process of learning to handwrite characters (so far up to 1450) using pleco to review, and maybe some of my experience might be of use.

For my flashcard list, I am using a deck built on the Heisig books, which has 3000 characters sorted based on the book's chapters. Every day I learn x amount of characters and add them to the cards to be reviewed. You and your partner could do something similar. Just choose how many of the characters on the list to learn and each of you can then add them to your respective pleco SRS.

So far this is working well for me. I add on the average 7 new cards a day and the SRS with standard settings makes me review about 100 cards a day, which is manageable for me. I don't know if that seems like a lot or a little, but I am using a modified mnemonic system that allows me to also memorize the pronunciation and so far I feel confident that after about 6 months of learning, I know the writing and pronunciation of about 1000 characters.
 

bosi

Member
To give a quick update on the card timestamp modification approach using the script above, it appears to be working well to keep me and my study partner in sync!

That being said, we're actually also going to take everyone's suggestion here to split the cards up and add them day by day, as that gives us the freedom to take days off from studying new cards if we've got a backlog to review, for example.

Thanks everyone for all the help!
博思
 
Top