Author Topic: Sneak peek of my easy, real time, interactive keyboard layout analyzer  (Read 7520 times)

0 Members and 1 Guest are viewing this topic.

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft

I've always been interested in trying more optimal keyboard layouts. As several other people did, I wrote a program that tries to algorithmically determine some good layouts based on some heuristics. I had been using http://patorjk.com/keyboard-layout-analyzer as a sort of second opinion to make sure that my program and heuristics weren't nonsense and luckily it turns out that both my program and that website said they were good.

The problem I had with working on layouts is that I could sometimes see some changes which are either obvious to the human eye but not something that the algorithm would catch each time or changes that were actually less good heuristically but which I perceived would be much more human friendly in terms of comfort. This made me want to make a few hand edits, and this was both awkward and slow to do both in my program and in that online keyboard layout analyzer.

So I made this real time, interactive one which lest you edit the layout or add additional text on the fly.

I just want to add a few more things to it and I'll upload it somewhere so that hopefully some people will find it useful.

Any thoughts or suggestions would be welcome!
« Last Edit: Wed, 07 January 2015, 02:22:37 by oneproduct »
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline Sc0tTy

  • Posts: 167
  • Location: Netherlands
  • Ergo enthousiast
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #1 on: Wed, 07 January 2015, 02:48:16 »
My problem with all those layout analyzers is that I never write books.
I'm a programmer writing in Dutch and English and so these tests aren't really representative.

It would be cool if the tool could read WhatPulse data, at this moment I do that manually in a Excel but the only problem that I have is that I cannot detect combinations of letters like 'TH'

Looks nice though!
1x ErgoDox EZ
2x Truly Ergonomic Keyboard 229
2x Kinesis Freestyle V3-VIP
2x Bamboo Pen & Touch (Mouse replacement)
2x Salli Swing
1x Herman Miller Aeron

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #2 on: Wed, 07 January 2015, 06:36:59 »
Neat tool. I’d skip the single-number metric: all the other ones I’ve seen are basically someone’s arbitrary preferences, not grounded in anything empirical (and usually not even grounded in plausible reasoning).

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #3 on: Wed, 07 January 2015, 09:38:49 »
My problem with all those layout analyzers is that I never write books.
I'm a programmer writing in Dutch and English and so these tests aren't really representative.

It would be cool if the tool could read WhatPulse data, at this moment I do that manually in a Excel but the only problem that I have is that I cannot detect combinations of letters like 'TH'

Looks nice though!

You could point to some code files and it could read those as well. At the moment you'd have to change the extension to .txt to do so but I could easily remove that.

Is there a specific format to WhatPulse data? Perhaps I could read that. I guess I might go download that myself to try it out.

I probably have to add some more support for languages that have larger character sets. How many alphabetical keys do you have on a Dutch layout keyboard? In English we just have the 26 but I imagine that getting characters with accents either requires additional keys or a modifier key.

Quote
Neat tool. I’d skip the single-number metric: all the other ones I’ve seen are basically someone’s arbitrary preferences, not grounded in anything empirical (and usually not even grounded in plausible reasoning).

Very true. My idea was to have sliders where you could personally determine the weight of every statistic so that you can use your own heuristics, but even then that would only work for statistics that I bothered to calculate.
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline DrHubblePhD

  • I am star stuff
  • Posts: 828
  • Location: Observable Universe, Virgo Supercluster, Local Group, Milky Way Galaxy, Solar System, Planet Earth
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #4 on: Wed, 07 January 2015, 09:55:50 »
I got Colmak for all the things I entered. Very cool!

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #5 on: Wed, 07 January 2015, 11:30:02 »
If you mean with the patorjk layout analyzer you'll want to try some of the other predefined options in the layout configurator. There's several that outdo it like MTGAP and balance twelve for example.

I'm working on one of my own that says it bests even those though! :D But it's all based on what heuristics you use, so there's no real right answer.
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline juyanith

  • Posts: 21
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #6 on: Sat, 10 January 2015, 09:00:30 »
This looks great but I'm not sure about the 30 key limitation. This just ignores numbers, symbols and modifiers which are critical to analyse code because of case sensitivity and heavy symbol use. It also ignores the thumbs which limits you to traditional keyboard layouts;  the maltron layout puts the E on the left thumb, for example. I guess this is understandable as most people use a more or less standard layout, but there is a lot of interest in layouts for the ergodox. I have to admit bias on the last part because I don't want to give up the use of my left thumb.  :p

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #7 on: Sun, 11 January 2015, 21:39:24 »
I'm a programmer, but in general I find the following two things are generally true:

1. Numbers and symbols aren't a large part of "regular" text.
2. When programming you don't need super fast access to symbols.

So because of that I'm mostly just interested in being able to type regular text quickly for emails, documentation and instant messaging.

I have a kinesis, ergodox and truly ergonomic which all have multiple thumb keys. However I don't find it important to include thumb keys in the layout analyzer as I consider a thumb press to be "free." It neither contributes to penalties such as "same finger" nor bonuses such as "alternation." So long as you don't put two letters on a thumb I guess...

I could expand it to include thumb keys of course, which is why I was asking for suggestions and comments. :)
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline DrHubblePhD

  • I am star stuff
  • Posts: 828
  • Location: Observable Universe, Virgo Supercluster, Local Group, Milky Way Galaxy, Solar System, Planet Earth
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #8 on: Sun, 11 January 2015, 21:47:24 »
Nobody is realistically going to change around the layout of the number keys anyways...

When do you plan on releasing the program Oneproduct.

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #9 on: Sun, 11 January 2015, 22:40:36 »
I'd like to release it right now pretty much, at least a first version. But it turns out it might be tricky trying to package it up to be usable for other people due to some dependencies you need which aren't typically on most people's machines. Looking into it!
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline juyanith

  • Posts: 21
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #10 on: Mon, 12 January 2015, 20:45:02 »
You're probably right about the numbers themselves although I think I have seen the suggestion that numbers should be something like 8642013579. I'm a programmer too and I find that the placement of the symbols makes a big difference. For example I type the left bracket and curly brace an awful lot, but type the right ones rarely because the IDE adds them for me. I debated placement of those keys on my ergogox which is why I thought it would be nice to be able to analyze them. I actually placed the first key on the caps lock location which I wouldn't be able to analyze in the application as it currently stands. So I guess the bottom line is that I want to be able to analyze more than just the letters.  ;D

Offline Snarfangel

  • Posts: 288
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #11 on: Mon, 12 January 2015, 22:07:24 »
I'm a programmer, but in general I find the following two things are generally true:

1. Numbers and symbols aren't a large part of "regular" text.
2. When programming you don't need super fast access to symbols.

So because of that I'm mostly just interested in being able to type regular text quickly for emails, documentation and instant messaging.

I have a kinesis, ergodox and truly ergonomic which all have multiple thumb keys. However I don't find it important to include thumb keys in the layout analyzer as I consider a thumb press to be "free." It neither contributes to penalties such as "same finger" nor bonuses such as "alternation." So long as you don't put two letters on a thumb I guess...

I could expand it to include thumb keys of course, which is why I was asking for suggestions and comments. :)

I'd like to see it with the thumb keys. I played around with thumb keys and mtgap/patorjk optimization last year, and came up with something like:
87065-0

Then I took the above as a guide and threw in the kitchen sink, just because I could.
87067-1

It would be interesting to see how they rate.  :D

Offline juyanith

  • Posts: 21
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #12 on: Sat, 17 January 2015, 07:55:32 »
I have another suggestion for your application; a comparison between two layouts. When making change it would be nice to be able to easily see the deltas in the computed statistics. I suppose you could run two copies of the application but it would be nice to show the actual value changes and maybe a percentage.

Offline tp4tissue

  • * Destiny Supporter
  • Posts: 13565
  • Location: Official Geekhack Public Defender..
  • OmniExpert of: Rice, Top-Ramen, Ergodox, n Females
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #13 on: Sat, 17 January 2015, 10:12:32 »
Um... I don't know if you can do this..

But the most time consuming task is NOT where each key is as long as it's UNDER the hand..

The most time consuming task is any transitions that require LIFTING the hand.. or turning the wrist


So you really shouldn't be analyzing return to base finger position at all.. as most experienced typists don't do that..

You should be analyzing  transitions like   h to p,  n to . ,  q to t , a to g

Things like like..  and of course b to 3, c to 4, c to 5..


The typical keyboard analysis from base position is fundamentally flawed and completely useless...

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #14 on: Sat, 17 January 2015, 20:05:39 »
I have another suggestion for your application; a comparison between two layouts. When making change it would be nice to be able to easily see the deltas in the computed statistics. I suppose you could run two copies of the application but it would be nice to show the actual value changes and maybe a percentage.

I've actually wanted the same! I'll do this as my next thing. I've been taking screenshots of one layout then switching to another and comparing them. :D

Um... I don't know if you can do this..

But the most time consuming task is NOT where each key is as long as it's UNDER the hand..

The most time consuming task is any transitions that require LIFTING the hand.. or turning the wrist


So you really shouldn't be analyzing return to base finger position at all.. as most experienced typists don't do that..

You should be analyzing  transitions like   h to p,  n to . ,  q to t , a to g

Things like like..  and of course b to 3, c to 4, c to 5..


The typical keyboard analysis from base position is fundamentally flawed and completely useless...

I'll actually don't measure distances at all at the moment, as like you said, they're often kind of flawed. I do agree with you on twisting and lifting though. I'll see if I can find some intelligent way to measure that.
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline Halverson

  • Traitor Supreme
  • Posts: 6806
  • GIRLSHARK WIZBRO
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #15 on: Sat, 17 January 2015, 21:02:56 »
Little off topic but last night I was just asking if you were still around here :D You still have those NIQMODS on that Realforce?

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #16 on: Sat, 17 January 2015, 22:36:03 »
I do indeed.
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline juyanith

  • Posts: 21
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #17 on: Tue, 20 January 2015, 15:14:37 »
I'm curious to know what language you used and if you plan on releasing anytime soon?  :p You've made me interested in playing with layouts and I've been using MTGAP. I want to tweak it but I've been far too spoiled by writing code in Java/C# to do much. (It uses c++ in C style.)

Offline oneproduct

  • Thread Starter
  • Posts: 859
  • Location: Montreal, Canada
  • @Ubisoft
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #18 on: Tue, 20 January 2015, 18:03:12 »
It's in C++ as well actually, so maybe you wouldn't be any better off. ;)

Though it's really not a ton of code or anything and there aren't a ton of really specific C++ things going on.

I've been meaning to release it, but every time I go look up the documentation about how you're supposed to actually distribute it (written with Qt framework) it turns out it's a huge hassle, especially if you use the MSVC compiler which I am using. Soooo... some part laziness hah. Someday... lol.
Layout: Colemak
Fastest typing speed: 131 WPM on typeracer, 136 WPM on 10fastfingers.
Daily driver: Filco Tenkeyless MX Brown with ergonomically weighted, lubed springs.
Ergo keyboards: Truly Ergonomic, Kinesis Advantage, Ergodox

Offline islisis

  • Posts: 120
  • Location: Tokyo, Japan
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #19 on: Wed, 21 January 2015, 11:06:08 »
Unrelated to the main goal of your program, but since some of the functionality is there I wonder if you would consider adding an onscreen keyboard practice feature sometime in the future. This is not something which I have managed to find in any typing tutor software out there, and might be fun to check your typing habits etc.

I don't think it would be essential to have many features, the main idea would be an onscreen keyboard in the user's layout that reacts to pressed inputs, whilst allowing the input to flow to a text area or another focused application. Of course, if it did parse sample typing texts the keyboard could then offer quick feedback on hit key vs target. A real-life testing feature to go with all those interesting numbers =)
« Last Edit: Wed, 21 January 2015, 11:24:33 by islisis »

Offline juyanith

  • Posts: 21
Re: Sneak peek of my easy, real time, interactive keyboard layout analyzer
« Reply #20 on: Wed, 21 January 2015, 14:54:12 »
C++ isn't really a problem, but the way MTGAP is written as plain C without classes but using C++ and Posix libraries in places is not so great for me. Mainly it's no written so that you can easily use it as a library. Still it's all good, I just started playing around with a project on my own. I'll probably learn more that way.