Anki 24.10 Beta

Is the short term scheduler already been enabled :question:

No. Dae says he will merge this PR later, so it will be enabled in the next beta release.

Try resetting parameters to default (click the circle-arrow thingy to the bottom right of the parameters field) and run the optimizer again.

1 Like

Dae says he will merge this PR later, so it will be enabled in the next beta release.

Very excited!!!


Try resetting parameters to default (click the circle-arrow thingy to the bottom right of the parameters field) and run the optimizer again.

This only works with a single preset. For different decks with different presets, pressing Optimise all presets causes the parameters to remain at 17 not 19 in total.

Does this have anything to do with this :question:
Properly convert FSRS 4.5 parameters into FSRS 5 parameters · Issue #3463 · ankitects/anki (github.com)

Soooo is there a way to resets parameters of all presets back to default :question:

No, that’s a different issue.

Nope.

Could you start a new issue on GitHub for this.

To reproduce this error:

*Have multiple decks with different presets with old FSRS 4.5 (17 parameters)
*Clicking on Optimise All Presets optimises the FSRS values, but with the same old number of parameters (17 instead of 19 of FSRS 5)

IMO, this is not a bug. If it happens, it means that the older parameters are better than the new ones, which is why Anki is not saving the new parameters.

But when I replace it with default values, pressing optimise shows different values (but with the appropriate number of parameters,19.)

Also, not once have I seen a parameter number of 19 in all my deck presets and I have 200+ deck presets, which is pretty suspect.

Click Evaluate on the old parameters and the new parameters (obtained after optimizing after replacing with default values).

If the new parameters have a higher RMSE, then Anki is doing it right (by not replacing your old parameters with the new ones).

1 Like

In some cases, it turns out higher, and in other cases, it turns out lower. There is no real correlation. So weird…

That’s strange. Are you sure you are doing it properly?

  1. Click “Evaluate” and record the RMSE of your current parameters
  2. Reset them
  3. Click “Optimize”
  4. Click “Evaluate” and record RMSE of the new parameters

Hmm, I am noticing that not all my optimized decks have 17 parameters. Some which I have not touched have 19. And it seems that whenever I force a deck that has 17 parameters after optimizing to have 19, it has a worse-off RMSE value.

Does this mean, can FSRS 5 have both 17 and 19 parameters at the same time :question: If so, then maybe this was a false alarm, and this was no bug after all.

In 24.10 beta two zeros are “silently” appended at the end, so when you see 17 parameters, it’s actually 17+two zeros=19

No, I see no zeros. It is just 17 different discrete numbers.

The zeros are appended “behind the scenes”, you won’t see them.

1 Like

Oh, that clears up things. :sweat_smile:

Fixed in the new beta

I’m having a really strange problem.
I have a notetype where one of the cards asks me for the pronunciation of a Japanese word, and it requires me to type in hiragana.
But for some reason, when I do that, it tells me that my input doesn’t match the required input. I even tried copying the hiragana from it’s field (“Reading”) and pasting it in the input field to make sure I’m not going insane. Nope, check fails even if I literally copy-paste the correct answer.
Never had this problem before, on any Anki version. What’s even weirder is that it seems to be specific to this notetype. What’s even weirder is that some hiragana is fine, but other is not, and I can’t figure out the pattern.

Gif just so you can see what’s wrong:
ezgif-1-3472f0df87

A note so you can reproduce it: Note.apkg - Google Drive

EDIT: idk if this will help, but I think the following hiragana characters cause problems: が, ぎ, ぐ, げ, ご, ざ, じ, ず, ぜ, ぞ, だ, ぢ, づ, で, ど, ば, び, ぶ, べ, ぼ. In other words, everything that has a ゛diacritic. I can’t even begin to imagine why, but that’s the only consistent pattern that I found.

It seems the new type-in-the-answer code automatically converts to が on the back of the card. At first glance, they look identical, but the second one is actually composed of plus a separate diacritic. If you copy and paste が somewhere, you can remove the dakuten by placing the cursor after the character and pressing backspace.

This doesn’t cause any issues when using Anki’s default code for evaluating typed answers, as the conversion occurs for both strings being compared. In your case, though, the issue arises because your note type uses a custom comparison script, which compares the typed answer (with the converted character) to the original content of the field.

4 Likes

It has to do with Unicode normalisation Adding/Editing - Anki Manual

I think that debug console command may help you depending on your input method. Of course, if the issue is some script in your note type it’s better to remove that.

1 Like

Thank you!

1 Like

I’ve adapted your script to accommodate the current type-in-the-answer behavior. Please note that this is a quick fix (I’ve simply added a few replacements), and may not represent a perfect or permanent solution.

<script>
//some addons read the script too early:
if (document.getElementById('typeans')){

    var typedAnswer;
    var correctAnswer = document.getElementById('correctAnswer').innerText;

    var typedAnswer_element = document.getElementById('typeans');
    if (typedAnswer_element.querySelector('.typegiven')){

        // the "typegiven" class exists only on iphone:
        typedAnswer = typedAnswer_element.querySelector('.typegiven').querySelector('.typeBad').innerText;

    } else if (typedAnswer_element.querySelector('.typeBad')){

        //for pc and android:
        typedAnswer = typedAnswer_element.querySelector('.typeBad').innerText;

    } else {

        //if failed to detect answer
        typedAnswer = "";

    }

    // Separate dakuten and handakuten from base characters
    function separateDiacritics(str) {
        return str.normalize('NFD');
    }

    // Apply the conversion to correctAnswer
    correctAnswer = separateDiacritics(correctAnswer);

    //this part of code below is ugly and could be improved
    var means = correctAnswer.split(",");
    var mean = typedAnswer.split(new RegExp(',|、', 'g'));
    var found = true;

    for (var i = 0; i < means.length; i++) {
        means[i] = means[i].trim().toUpperCase();
    }
    for (var i = 0; i < mean.length; i++) {
        mean[i] = mean[i].trim().toUpperCase();
        if (means.indexOf(mean[i]) === -1) {
            found = false;
        }
    }

    // Modify answer output
    if (typedAnswer === "") {
        //if answer is empty on pc or failed to detect answer
        document.getElementById('typeans').style.display = "none";
    } else if (found) {
        var c = "<div id='correct'>" + typedAnswer + "</div>";
        var d = document.getElementById('typeans');
        d.innerHTML = c;
    } else {
        var e = "<div id='incorrect'>" + typedAnswer + "</div>";
        var f = document.getElementById('typeans');
        f.innerHTML = e;
    }
};
</script>

1 Like