Comment by absoluteunit1
6 months ago
This is actually “kind of” what https://www.typequicker.com/practice does in the SmartPracrice mode.
Try one practice session - see the stats we measure for each text. Each character, every mistype, every millisecond for bigram/trigram, speed and accuracy per hand/fingers, etc.
This is aggregated and we identify weak points over time this way. Then using those weak points we create natural practice text
Spent wayyyy too much time diving deep into building out this algorithm lol. But it works fairly well
That's cool. Do you also take the keyboard layout into account?
A couple of years ago I was in my peak keyboard phase and was changing my layout weekly. At that time I really wanted something that would analyze which fingers were faster/slower and which big bigrams were slowing me down, especially SFBs.
My layout has been pretty stable now but I'd still love to do some analytics on it. What I would love is a tool that let's me upload my keyboard layout (including layers) and then gives me stats. For example in suspect my left pinky is a problem but that's QA' for me so you wouldn't know that without the layout.
> That's cool. Do you also take the keyboard layout into account?
Thank you! I do actually - in the persistance layer, we have a column for which keyboard and keyboard layout was used to type a particular text. However, currently in the front-end/UI we only have an option to use QWERTY.
I have it in my todo list to add additional layouts to front-end. The issue is just that we need a different SVG and correct highlihgting for each key on the keyboard SVG for each layout. So it's very tedious work and time consuming and LLMs are no good with this type of tasks - they struggle with SVGs.
I also have plans to add a layout builder. Users will be able to create their own layouts and practice them with the on-screen keybaord and hands as a guide to help them and avoid looking down.
So my data and API layers support various keyboard and keyboard layouts; all that's left is to make the fronend fixes and add as an