Deck and card info sidebar during review [Official thread]

I made this add-on. If you have a problem with the add-on deck and card info sidebar during review post in this thread. This way I get notified. If you make a new thread I will likely miss it.

Fist of all, thanks for this terrific add-on!

Could you explain me what “try_to_show_origvmod_scheduler” in the config stands for?

I have made various scheduler related add-ons for me, some of them are on ankiweb or github, e.g. this. I can quickly see the effect of some scheduler modifications when "try_to_show_origvmod_scheduler” is enabled.

Do you still have this “Reduce Interval growth for very mature cards” for Anki 2.1? I read the documentation and really apreciante the idea! I’m struggling with the problem of long intervals for very mature cards. For now, all I have is Max Ivl, that have the terrible drawback of not allowing me to ignore it for a specific card that I find easy enough to avoid increasing my workload by applying to them the max ivl.

I cleaned it up quickly and uploaded a new version to https://ankiweb.net/shared/info/9512376

These warnings apply: https://raw.githubusercontent.com/ijgnd/anki__scheduler_shorter_ivls_for_very_mature_cards/master/ankiweb.html

let me know about errors you find. You should really have a brief look at the source code. If you know about the relevance of !important for css this shouldn’t be too hard for you.

Thanks a lot adjusting the code and for sharing it!!!

I’ve already tested this new add-on, and think this is a fantastic tool to handle with the problem of dealing with things that you cannot forget anyway. I am myself preparing to get a position, and to get it I’ll have to do a major test, I don’t know when (maybe 2, 3, 5 years from now). I already spent 4 years in the preparation. When I see large intervals of 2, 3, 5 years in the cards with content I cannot forget until this test, I tremble. As I told, I was using Max Ivl (set to 1,5y), but that was a precarious solution. I really liked this add-on, as, by using and aggressive reducing factor (like 50%) for cards beyond sth like 1 year interval, I can have an interval for very mature cards orbiting 1,5y, but yet increasing, and yet being modulated by ease.

Even not knowing how to code, I was looking into your code, as you suggested. It looks to me there is an issue regarding the delay-percentage. In your code for nextRevIvlMod__v2, when declaring prelim_ivl3, there was o change in a previous code (marked with an initial hash), applying full delay instead of half delay, that I think created problems, making intervals for pressing Good longer than they should be.

I changed the code to the previous (marked with the hash), which divides the delay by 2, and as far as I can see, it worked.

Good find! I once changed this when I had a huge backlog and forgot about this (at least this means that usually my delays are not so long).

Anki is mostly made in the programming language python and in python a line where the first character is # is ignored by the program and instead it’s treated as a comment. This allows you to quickly modify a program: You can “comment out” a line. In my case I duplicated it first, commented out the original and then made a small modification.

I reverted my change so that now good is treated as in the default anki and added a new option “delay: don’t modify delay for cards with ivls below”, see https://github.com/ijgnd/anki__scheduler_shorter_ivls_for_very_mature_cards/commit/c9ff23b9462dfb15beb20b40b48266f323b3e1bf

Note:

 prelim_ivl2 = self._constrainedIvl(card.ivl * hardFactor, conf, hardMin, fuzz)

has the same effect as

f = self._constrainedIvl
prelim_ivl2 = f( card.ivl * hardFactor,                        conf, hardMin,     fuzz)

The second alternative means that the line is not too wide on my screen which is useful if i have multiple windows open besides my text editor and contrary to the python styleguides I used some spaces so that I directly see the differences bettwen prelim_ivl2,3,4. That’s it.

Terrific! God idea to be able to apply the delay changes only for very mature cards. I’ll keep testing it.

I figured out that the hash was a comment line; this made easier to me find what was causing the unusual behavior.

I’ll ask you something, but never mind if it does not interest you, or if it sounds not worthwhile to you. As I told, I’ve been using Max Ivl, to avoid too big intervals for important material. But as it is attached to the deck config options, it looks to me it would be very interesting if it was possible, when reviewing, to use a shortcut, function button, or whatever, that would be equivalent to pressing 3 (Good), that would be recorded in the log as pressing 3, but that would bypass the Max Ivl of the deck options, scheduling as it would do if there were not Max Ivl set in the deck options. It would be used for custom treatment of specific cards that, despite being in the same deck of important material that you want to safeguard (using Max Ivl), are already well ingrained in your mind, or are easy enough to spare the additional effort brought by the Max Ivl behavior.

Feel free to ignore it completely if you want. I’m just asking. Quoting our Lord Jesus,

Ask, and it shall be given you; seek, and ye shall find

Thanks a lot!

I see that this could be useful.

There’s the add-on ReMemorizeButtons but I think it also respects the maxIvl. But you could try it.

I wonder if you couldn’t split up all decks and always have a subdeck named “no MaxIvl”. If you then had a shortcut to quickly move the card from the reviewer to a different deck this might also solve your problem? At least such an add-on is on my todo list.

I’ll have to think about your idea for an extra shortcut to disable the maxIvl for this card.

If you wish to make “shorter intervals for very mature card” available definitely, I would advise you to make a caveat to the users.

I noticed that, when using maximum interval (deck option), the add-on may have an undesired behavior. This is because it simply takes the original interval (that Anki would calculate without the add-on) and then applies the reduction factor. But as Anki already applies the Max Ivl when this interval is surpassed, the add-on will apply the reduction factor over an interval already shortened by Max Ivl, instead of calculating the interval considering the user configs and then, if this surpass Max Ivl, apply the reduction factor.

As an example, using these settings:

{
    "days_lower": 450,
    "days_upper": 900,
    "delay: don't modify delay for cards with ivls below": 365,
    "delay: percentage": 75,
    "ease_max": 400,
    "ease_min": 140,
    "reduce_to": 50
}

And a Max Ivl of 2.5 years, a behavior like this would occur:

That is, if the user desire was to limit the Max Ivl to 2.5y, it wouldn’t work, and the interval would be reduced more than expected.

As a matter of fact, it is not a good idea to use this add-on with a MaxIvl set in the deck options.

I never use the maxIvl setting so I have never thought about interactions. I’m glad you caught this problem early.

I just made this change and uploaded it to ankiweb so that you should get it on your next add-ons update.

This change is not perfect. If you have set reduce_to to 50 and a maxIvl of 1000 days in your deck and
a) you have a card with an interval of 1001 days. This is longer than the maxIvl so you’ll get 1000 days.
b) you have a card with an interval of 999 days. This is shorter than the maxIvl so the reduction to 0.5 will be applied and you get ~500 days.

If you have a better solution let me know. Does my minimal fix at least improve the current situation?

1 Like

I saw that your add-on “Scheduler - Reduce Interval grouth for very mature cards” does not work with v3 scheduler, but still works with v2 scheduler in newer version of Anki (like 2.1.46). Even though, it is not possible anymore to use try_to_show_origvmod_scheduler to compare the original Anki scheduler with the reduced interval of your add-on.

I’m not yet on 2.1.45+ so I haven’t updated all my add-ons. I guess it’ll be some months.

1 Like

Hey there,

I was wondering if it were possible to add a columns that could be shown in either the compact or full browser sidebar stats. Specially, columns from the “Advanced Browser” add-on. I’m particularly interested in seeing the “Previous Duration” column in the sidebar.

@djagger: you need to change the code of the add-on. At the moment I don’t have time fo r this. The previous duration column seems to be made by the add-on advanced browser, the relevant code is here. You could copy over the relevant code into my add-on and add it to my card properties dictionary in this file and then tell my add-on to actually show in this file.

I’lll add this to my todo list.

On 2.1.50 QT6 build on Apple Silicon, there is a new regression.

On the first card displayed, the card info is rendered correctly:

But after answering this card and advancing to the next card, it is no longer rendered correctly:

The change in font is not a deal-breaker, but it’s odd. However, the stats seem to be overlaid over the text “No card to display” which is strange.

[LATER] I notice that when the next card is displayed, the correctly-rendered sidebar info is displayed momentarily, for under a second in duration, but it’s quickly displaced by the incorrect view.

thanks for the report. I saw that damien’s original add-on is broken on .50. So I’ll look into this once .51 is released. In the meantime I’ll limit the compatibility.

Anki 2.5, Linux KDE Plasma, I am having a problem where it does not assume the system’s night mode, and continues to be white, is there an easy solution for this?

@PedroSilva: I assume you refer to anki 2.1.50? I’m not yet on 2.1.50. As far as I know all sidebar add-ons have a problem in 2.1.50 so I wanted to look at this when 2.1.52 is released. maybe damien’s official original add-on now supports the night mode?

IIRC, it does. Card Info During Review - AnkiWeb