Originally reported on Google Code with ID 2046
Please, consider implementing load balancer addon: https://ankiweb.net/shared/info/1417170896.
Author's description: "Checks amount of cards due and average ease of cards in ±X days
of intended due date and schedules accordingly." It is a tool which has great potential
to reduce daily load and improve learning performance. It takes into account due reviews
and average easiness factors in order to smooth/reduce daily load.
Reported by useranki on 2014-03-28 11:47:04
Issue 2047 has been merged into this issue.
Reported by perceptualchaos2 on 2014-04-02 15:07:26
Issue 2152 has been merged into this issue.
Reported by perceptualchaos2 on 2014-09-25 10:58:53
In the tracker for Bug #2152 Jake Probst mentions that he has already implemented the
feature in an Ankidroid fork:
https://github.com/jakeprobst/Anki-Android
Reported by dotancohen on 2014-09-30 18:44:59
Will the anki droid fork with the load balancer be merged with the main branch? It is
a very useful add on to spread the load intelligently.
Reported by yarinkel on 2014-11-05 16:06:35
Probably not... but if he can reactor it into a hook then it should be compatible in
the plugin architecture we intend to make, where users can can install modules separately.
Reported by perceptualchaos2 on 2014-11-05 18:12:24
Was the plugin architecture implemented ?
No, unfortunately I couldn't get my idea for the plugins architecture to work. In the meantime we implemented an API for 3rd party apps to access the AnkiDroid database, so the urgency of a plugins architecture is much lower (since now you can create your own app that does whatever it wants using the AnkiDroid data).
I hope in the future someone will implement a plugin architecture for us... It would be very useful, but I don't think I'll have time to do it, as I'm busy now with a new job.
Hum, i see.
In this case, wouldn't be possible to implement/merge the load balancer plugin directly in ankidroid ? This plugin is really useful since it reduces the spikes without changing the learning curve for the cards.
I see there is a pull request for it.
If the changes were refactored into a hook like was done in https://github.com/ankidroid/Anki-Android/pull/4070 and the quality of the code was very good then merging directly into the codebase could definitely be a possibility. This would make it easy for us to take make it a separate plugin if / when that becomes a possibility.
Hi. I've improved code quality, but its on my laptop at home (I'm now on holiday). I'm thinking about how to get this working as a plugin.
I'm thinking about something like this:
https://enplug.com/blog/loading-classes-dynamically-on-android-particularly-when-you-have-to-use-them-in-a-third-party-framework-like-libgdx
It seems to be consistent with hssm's suggestion here:
https://github.com/ankidroid/Anki-Android/pull/675
And it seems to be consistent with the ideas here:
https://github.com/ankidroid/Anki-Android/issues/2982
Before I'm going to try this, to prevent me wasting time on something that doesn't work, can you describe shortly your idea for the plugin architecture and why it didn't work?
If it takes me too much time I'll just do like I did in #4070 but if I can do it in the right way without spending too much time, i'd prefer that.
It seems to be consistent with hssm's suggestion here
That thread is imported from the old Google Code issue tracker. All of the imported comments show up as being by @hssm, but you'll see a Reported by xxx on yyy string at the bottom of the comments which shows the original author and comment time stamp. "perceptualchaos2" is me.
Can you describe shortly your idea for the plugin architecture and why it didn't work?
My first idea for the plugin architecture was to use DexClassLoader as you have already read about. Unfortunately I wasn't able to get the split build process working properly with gradle in the end. I added a feature request that would help with this, and kind of found a workaround but realized later that wasn't really working as intended either. At some point I got busy and stopped working on it before understanding exactly what was wrong with my workaround, or coming to a definitive conclusion about whether or not the idea in general is possible / practical.
A different approach that I think would probably be more suitable is briefly described here. I haven't really looked into this at all however.
Hi Tim,
Is this on your radar at all?
Not really, sorry... I ran into some technical troubles with the
implementation for the plugin framework I was trying, and kind of gave up.
The other approach to the framework I have in mind is doable but too much
work for me.
Plus we introduced an api which allows apps to access the AnkiDroid
database directly, which eased some of the urgency for the plugin
framework, as theoretically you can make your own external app to do
whatever you want with the AnkiDroid database and algorithms.
On 2 Jan. 2017 00:37, "Alphalpha007" notifications@github.com wrote:
Hi Tim,
Is this on your radar at all?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/ankidroid/Anki-Android/issues/2943#issuecomment-269907484,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACsA4rMa5GXtHr1_hWnLQhdQQbsvKVVTks5rN8hBgaJpZM4IV1BH
.
So did a "load balancer" get merged with the ankidroid main branch?
If so this issue would be closed. The status here is the status. Not in main anki so it won't be a default feature and no one has implemented a plugin architecture so no plugin. There is an API and I suppose you could use that to fiddle with card scheduling but no one has proposed a PR for anything
Hello 👋, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like _still searching for solutions_ and if you found one, please open a pull request! You have 7 days until this gets closed automatically
_still searching for solutions_
Bad bot
Hello 👋, this issue has been opened for more than 2 months with no activity on it. If the issue is still here, please keep in mind that we need community support and help to fix it! Just comment something like _still searching for solutions_ and if you found one, please open a pull request! You have 7 days until this gets closed automatically
it would be nice if ankidroid could add this functionality.
@xrishox if it is not in the upstream scheduler, it will not happen here I don't think.
Agreed - we'll need this to be implemented upstream before we can work on it.