Native implementation of Load Balance

I live in a German-speaking environment, I take language courses with a teacher, and yet I’m not parting with ANKI because all this information still needs to be remembered. But that’s not relevant to this thread.

I agree with you that I can create many types of cards. But is it advisable to do so? Maybe I have the wrong decks (data ) organization? But since I don’t have the right answer yet, I answered the survey questions based on my user experience. And experience shows that the proposed implementation in my case will not lead to the desired result, because for some cards will be better, and for another part of the cards will be worse. And if this is the case, then why spend time on development and do something at all. (I’m exaggerating) That’s why, based on my case, I showed examples and offered a solution if the task is really to implement load balancing.

If that’s the case, then why bother with the new functionality at all? After all, it works somehow without balancing.
But making something that won’t work is absurd. It’s the same as if the manufacturer of your car asked you which way the power steering should work: when you turn left or right? But as a driver, you need it to work in both directions! What’s the point of it only working one way? Naturally, you will either turn it off completely or adapt to it. But you’re not likely to be happy with it.

For example? Split one record into multiple records? Okay, let’s say I have the records “aufstehen” and “aufgestanden”, and? Even at this stage, don’t you think there’s a risk of memory interference? German already has enough words that differ by one letter or sign, with completely different translations: schon - schön, Liebe - Lebe and so on. And for what? For the sake of load balancing? Are you seriously? :blush:

Ok. What’s this balancing thing for then?

Going back to the automobile example, if Henry Ford now saw a starter instead of a crooked handle, power steering, power windows, air conditioning, radio autopilot and everything else that is now in cars… do you think he would have the same concerns?
That’s what progress is for. Because you and I both want to make life better and more convenient.

To conclude my rant, I want to summarize: no matter how you implement load balancing, I will either use it or not. As part of the survey, I simply gave an example from my experience that shows that the proposed implementation is not good enough. Only at the same time, you need to keep in mind that I really may have an incorrect decks organization, and if I change it according to your recommendations, the proposed balancing functionality will work perfectly.

In the local language of my state, there is a saying. That blind uncle’s still better than no uncle. You’re complaining here because you want the perfect feature even though load balancing is still going to work without what you say get implemented.

Amazing that you were driving a car that couldn’t go either direction all these years!

If you don’t appreciate it you’re welcome not to use it. I simply stated what you might want to do if you’d like to milk this feature to it’s fullest.

Probably no but I don’t care. I want something that is user-friendly. Also I think there are a lot of other important changes I’d like to see first before any of what you say. In any case, dae decides what gets added and what doesn’t. But this project is open-source and you can clearly develop something for yourself if you want.

Please read what Jake P. wrote above. I think you don’t understand what is being done with siblings. Jake is the person developing this load balance feature. He also created the original add-on.

1000%
In no case do I insist on implementation for a single user and agree that all aspects and the majority opinion should be taken into account.
Just as part of your survey (since you asked me) I decided to answer in detail and showed the nuances based on my user experience.

And yes… I’ll take this opportunity to say Thanks for the Anki, guys!! It’s a realy cool product!

I think your idea was “avoid siblings” will make load balance not work properly but that’s not the case at all. Load Balance will still work. It will just be a bit less optimal. (Also I don’t contribute to Anki, but surely the thanks belong to everyone who does!)

We’ll see… I’m even happy with the current state of affairs when using FSRS4Anki Helper, and I’m not uncomfortable with the dips in the graph. But maybe in the long run, due to the cumulative effect, balancing will speed up overall memorization.

Ultimately what dae says will decide how things happen. So I agree we wait for him.
But still about the “disperse siblings” feature, do you think it’s unfeasible if this were to happen on a per note type basis rather than on per preset? Of course I am not suggesting this should happen. It will just make things far more confusing. Just asking.

This, did you not have an option to disable disperse siblings? and for most people load balance was still working pretty fine? I think you did mention how you never received “a sternly written email” but you didn’t say whether this was optional in the add-on.

I’m unsure what you mean by this.

It was always enabled with no option to turn it off. I think it was a feature request from someone else as at that time I was not using anything that had siblings. It not having a toggle was more that I put no thought into the implications of the feature at the time.
That said, I don’t belive any issues arose from it.

1 Like

You disable “disperse siblings” for a note type instead of a preset/deck. In the same deck, thus, you can have, sibling cards that gets dispersed and sibling cards that doesn’t. The idea is you set this feature for a note type that creates reverse cards, let’s say, and you disable it for your IO note type, because you want IO cards to be normally load balanced. If you don’t understand this explanation, can you be specific which part? I will explain that to you.

1 Like

I get it now. Conceptually thats a clean solution I think.
I’ll need to look into how exactly the implementation would work and where in the UI to put such an option.

UI: I don’t know where to put it but I think it should look something like this, (you put note types for disperse siblings/disable disperse siblings)

I found where in the UI it would live.
There is a “manage note types” (Ctrl-Shift-N) dialog where you can change options for notes.
Currently all it has is some LaTeX config stuff but no reason more couldn’t be added.


(actual text would be more informative, this is just for demonstration purposes)

Mobile versions? That wouldn’t work right?

Edit: I think makes more sense to have it’s own settings in preferences.

Ankidroid appears to have a menu that is similar to this one. I do not have an apple device to check the ios version. In either case, app UI is not my department.

In this options use case, you create a new note type, check (or uncheck) this box, and then never think about it again. The frequency this menu would need to be accessed is the same as the times you invent a new note type (which I would assume is very infrequently?)

This is the simplest place to put it.

1 Like

Let’s not do this. This is the kind of fine-tuning that very few users would care about, and making new UI elements for it is not worth it.

1 Like

Let’s not do this. This is the kind of fine-tuning that very few users would care about, and making new UI elements for it is not worth it.

I agree with the suggestion of not creating this new option. Creating a different deck (or even a subdeck) would be good option to achieve the same outcome.

Creating this option will set a bad precedent. It will lead to a flood of requests asking to add settings for things like sibling burying, learning steps, daily limits, FSRS parameters, etc. to the notetypes.

1 Like

Here’s what another user on github said about siblings:

How about instead of making a new “Avoid siblings” option, just use the state (off/on) of “Bury review siblings”? If it’s on, Load Balance will ensure that siblings don’t end up on the same day.

After reading the explanations about how the “avoid siblings” feature works, I have changed my opinion on this suggestion.

Firstly, because the “avoid siblings” feature doesn’t try to maximize the gap between the siblings (unlike the FSRS helper add-on), it won’t cause much variation in the workload.

Secondly, if the “bury review siblings” option is turned on, the user can’t review siblings on the same day. So, if Anki is trying to balance the load by scheduling siblings on the same day, the user won’t review all the cards scheduled for that day and will have a backlog the next day.

In short, not avoiding the siblings when “Bury review siblings” is turned ON will paradoxically make the review load more uneven.

So, I think the load balancer should use the state of the “Bury review siblings” setting to decide whether it should try to avoid siblings.

PS:
If you still want to keep this as a configurable option (which I don’t recommend now), I suggest using a name like “Prevent sibling overlap” because this option doesn’t maximize the gap between siblings (unlike the disperse siblings feature of the FSRS helper add-on).

1 Like

I wish I could. But see the number of decks I use only for school.

It’s 11th+12th Science, mostly Biology. Tags are not that usable for my purpose.

I think this is a slippery slope argument. Having disperse siblings here vs FSRS parameters are not completly different things.

My thoughts are, if load balancing works just fine with disperse siblings then we wouldn’t need such complexity. From what Jake says that seems to be the case so I am not in fervent support of this.

I also intially thought this might be to complex to use (for users) and not too worthwhile to work upon (for devs). But as Jake said, people would configure it only once while creating a note type so the former wouldn’t be true if a short explanation is provided in a tool tip. The latter, whether it is worthwhile to develop this, is something that depends on 1) how crucial this feature is 2) how time-consuming development would be. It might not be a too crucial feature as I already hinted and might also just waste a lot of dev power, but I will leave these concerns to you guys.

For whatever its worth I’ve already got it totally working (commit forthcoming?). It wasn’t that big a change.

And after seeing how it turned out, I do maintain that if there is to be an option to toggle the dispersing of siblings, this one makes the most sense.

Re: “too many options”:
This particular widget had a tab view, it just happened to only have one tab (it looked structured so addons could add their own and I’m sure they do but I have none of those installed).
In a more general sense, I’d argue that load balancing is a pretty big feature, and it coming with a handful of options isn’t that extreme I would think.

I think that it should be based on “Bury review siblings” than a separate toggle, as I suggested on github.

If anyone haven’t noticed, “Bury review siblings” becomes obsolete with this (Not suggesting any change here).