Author Topic: QGMLWB by carpalx  (Read 29540 times)

0 Members and 1 Guest are viewing this topic.

Offline Vibex

  • Posts: 926
  • Location: Cambridge, MA
  • Love y'all
Re: QGMLWB by carpalx
« Reply #50 on: Mon, 27 October 2014, 23:33:09 »
To tired right now, but I'll give this a look tomorrow. Always interested in this kind of stuff. :p

EDIT: Just looked at the dates on this thread, seems I'm a little late. :))

Offline PieterGen

  • Posts: 135
Re: QGMLWB by carpalx
« Reply #51 on: Tue, 28 October 2014, 09:29:45 »
Mmmm... this stuff about Colemak and Dvorak being within 1-2% of each other:
Not according to Carpalx. I recall them showing Colemak at about 13% less effort than Dvorak.

The scores of layouts depend on the underlying scoring model that is used. What is the penalty for same hand strings? Waht are penalties for the top row and bottom row? Are (qwerty) W and E seen as equally bad as Q, R and T? What about neighbouring fingers, especially pinky and ring: is there an extra penalty for (qwerty) AS? Do you see outward rolls (SA) as superior to inward rolls? (AS)?  Do you prefer a layout where 90% of all words are very nice to type, but 10% are really bad; or do you prefer a layout in which 99% of words are reasonably well ? Etc.

Of course, in Carpalx model, the Carpalx layout scores the best. That is the layout that the algorithm has produces, so by definition it will score the best! Just as the ADNW algorithm sees the ADNW layout as the best, and MTGAP sees the MTGAP layout as the best! :-)

Offline Input Nirvana

  • Master of the Calculated Risk
  • Posts: 2316
  • Location: Somewhere in the San Francisco Bay area/Best Coast
  • If I tell ya, I'll hafta kill ya
Re: QGMLWB by carpalx
« Reply #52 on: Tue, 28 October 2014, 10:17:36 »
Mmmm... this stuff about Colemak and Dvorak being within 1-2% of each other:
Not according to Carpalx. I recall them showing Colemak at about 13% less effort than Dvorak.

The scores of layouts depend on the underlying scoring model that is used. What is the penalty for same hand strings? Waht are penalties for the top row and bottom row? Are (qwerty) W and E seen as equally bad as Q, R and T? What about neighbouring fingers, especially pinky and ring: is there an extra penalty for (qwerty) AS? Do you see outward rolls (SA) as superior to inward rolls? (AS)?  Do you prefer a layout where 90% of all words are very nice to type, but 10% are really bad; or do you prefer a layout in which 99% of words are reasonably well ? Etc.

Of course, in Carpalx model, the Carpalx layout scores the best. That is the layout that the algorithm has produces, so by definition it will score the best! Just as the ADNW algorithm sees the ADNW layout as the best, and MTGAP sees the MTGAP layout as the best! :-)


Whaaat???
Data is biased?
Say it ain't so!
Kinesis Advantage cut into 2 halves | RollerMouse Free 2 | Apple Magic Trackpad | Colemak
Evil Screaming Flying Door Monkeys From Hell                     Proudly GeekWhacking since 2009
Things change, things stay the same                                        Thanks much, Smallfry  
I AM THE REAPER . . . BECAUSE I KILL IT
~retired from forum activities 2015~

Offline dusan

  • Posts: 113
  • Location: Saigon, Vietnam
Re: QGMLWB by carpalx
« Reply #53 on: Tue, 28 October 2014, 12:50:10 »
Quote from: Carpalx
The statistics that Carpalx uses attempt to capture the essential human factors of typing. Fundamental considerations like finger travel distance and symmetric hand use can easily be agreed upon. More nuanced ones, like finger rolling and curling vs extending are harder to pin down — but extremely important. It's realtively easy to improve on QWERTY. It's much harder to refine a layout that already achieves all the fundamental improvements. already good layout.

The Workman layout incorporates advanced human factors and discusses their application to Dvorak and Colemak.

In recent conversation with Stephen O'Connor (Sep 2011), who has analyzed the Workman layout, I've been persuaded to seriously reconsider the parameters in my effort model. In particular, I do not consider that the index, middle and ring fingers have different prefered motions, for a given travel distance. For example, most will agree that the ring finger prefers to extend for the W rather than curl to the equidistant X. On the other hand, the index finger has easier access to V than R.


The Carpalx documentation didn't make it explicit on keyboard geometry. But it seems that the model keyboard is ortho-linear, while the physical keyboard that has been used to collect user's experiences (hence, to establish the concrete values of parameters) is staggered.

The inconsistency is big enough to invalidate the result (i.e. the optimized layout). Validity can be doubted even more, when it is applied back to a physical keyboard that is heavily non-ortholinear, such as the staggered keyboard.

The same problem may apply on other alternative layouts that are designed under similar considerations. The Dvorak layout is an exception, as it is heavily asymmetrical.

That's not to say that I'm trying to underestimate the methodology. I think the Carpalx model is sound. But as a model, it can output anything, depends on what data one puts into it.
« Last Edit: Tue, 28 October 2014, 12:55:37 by dusan »
Topre Type Heaven | Filco Majestouch w/MX blue | CM Storm QF w/MX green | Asus Echelon w/MX black | Razer Tournament 2014 w/Razer green, Keychron K1 w/Gateron LP red | TypeMatrix 2030 | custom 6x16 ortho w/Matias clicky | Atreus w/Kailh box white & Gateron Pro yellow.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #54 on: Tue, 28 October 2014, 14:05:09 »
The Carpalx documentation didn't make it explicit on keyboard geometry. But it seems that the model keyboard is ortho-linear, while the physical keyboard that has been used to collect user's experiences (hence, to establish the concrete values of parameters) is staggered.

The inconsistency is big enough to invalidate the result (i.e. the optimized layout). Validity can be doubted even more, when it is applied back to a physical keyboard that is heavily non-ortholinear, such as the staggered keyboard. [...] That's not to say that I'm trying to underestimate the methodology. I think the Carpalx model is sound. But as a model, it can output anything, depends on what data one puts into it.
I think the Carpalx scoring model seems mostly arbitrary, and I wouldn’t trust any of the results that come out of it. I don’t think it makes any more sense on an ortho-linear keyboard (which one?!) than on a row-staggered standard keyboard.

Very little justification is provided for the scoring Carpalx uses, and what justification there is seems mostly like one guy’s opinion.

Offline batfink

  • Posts: 69
Re: QGMLWB by carpalx
« Reply #55 on: Sat, 06 December 2014, 12:01:12 »
Very little justification is provided for the scoring Carpalx uses, and what justification there is seems mostly like one guy’s opinion.

Carpalx's contribution is interesting, but I think there is a fundamental flaw in the base effort values he uses. For example, the Qwerty G key is deemed equal to Qwerty E and C.  The result of this flaw is that it ends up giving too much priority to the centre column and not enough to the easiest non-home keys. I can't see how having I and R in the centre column can possibly be a good idea.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #56 on: Sat, 06 December 2014, 23:31:19 »
As one simple example, I find I can type the english word “doing” extremely quickly and easily on a QWERTY keyboard, probably among the easiest 5-letter words to type on QWERTY: every letter uses a different finger, the three letters 'oin' happen in one fluid motion rolling the right hand from outside-in, there’s a gap the 'd' and 'g' giving my left index finger time to reach over to the 'g', and since the hands are naturally rotated a bit, hitting the top row is very easy with my middle and ring fingers, while hitting the bottom row 'n' is very easy with my index finger.

In the “carpalx” scoring model, however, o, i, n, and g fall on keys with "2.0" base difficulty scores, and then there are additional penalties for the lack of hand alternation in the 'oin' triplet, and for the row changes (for 'oin' there is a 'path effort' by type of 3.2, I’m still not exactly clear on how to calculate the full effort score, as the complete model is very complex and the spec is very confusing).

In this example, the scoring model doesn’t correspond even in a loose way to real-world effort.

The problem is that the scoring was developed based on one guy’s untested personal ideas/preferences, rather than being based on any kind of evidence.
« Last Edit: Sat, 06 December 2014, 23:55:07 by jacobolus »

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Re: QGMLWB by carpalx
« Reply #57 on: Sun, 07 December 2014, 03:03:48 »
easily ~ with a two-row jump in adjacent columns in one digram
confusing ~ documented in English (!) on about seven A4 pages with several very simple formulas, and writen in a few dozens of surprisingly clean lines of Perl code

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #58 on: Sun, 07 December 2014, 04:44:37 »
easily ~ with a two-row jump in adjacent columns in one digram
confusing ~ documented in English (!) on about seven A4 pages with several very simple formulas, and writen in a few dozens of surprisingly clean lines of Perl code
I don’t understand your comment. Can you rephrase that?

Edit: I think I understand, you’re disagreeing with my characterizations of the "in" digram as "easy to type", and the carpalx scoring model as "confusing". I stand by both.

Just looking at rows is a really bad analysis for a standard keyboard, because the fingers don’t sit in a line when the hand is in a relaxed position. Here’s a diagram I made showing approximately how the fingers reach:

[This is by no means a perfect picture, but it illustrates the concept here.]

Some parts of the model would seem to make more sense in context of a column-staggered keyboard (in practice I think the scoring is still bad on basically any keyboard, but it would at least have a certain logic), but the Carpalx model purports to be about a standard keyboard.

As for confusing, I didn’t try reading or running the code, I’m just going off the webpage. It’s not that any particular formula or step is especially tricky, but rather that the model itself is very complex with many steps that to my mind don’t make logical sense, and figuring out exactly how the parts fit together is not trivial. I’m sure if I spent 30–60 minutes I could figure out all the implications. The way the model will score any particular text is not transparent at a glance. You need to work through all the steps in detail, and the resulting numbers aren’t intuitively obvious.
« Last Edit: Sun, 07 December 2014, 05:01:38 by jacobolus »

Offline davkol

  •  Post Editing Timeout
  • Posts: 4994
Re: QGMLWB by carpalx
« Reply #59 on: Sun, 07 December 2014, 05:32:06 »
I certainly wouldn't call such stretch (or moving the whole hand that distance) "easy".


Commenting on the model is pointless at this point.

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #60 on: Sun, 07 December 2014, 05:47:51 »
Tomorrow, I’ll try to figure out how to make a video of myself typing the word 'doing' to demonstrate. Not sure if I have any cameras that are great for it, but we’ll see. At the very least I can take some pictures. In your picture, your hand is not in a remotely natural typing position.

* * *

Generally, I’d love to see someone set up keyboard firmware to precisely record the timing of every keypress (accurate to within 5-10 milliseconds if possible) and then try to compare relative typing fluency (speed, accuracy) against the predictions of models like this. There is obviously going to be some distortion from more common combinations getting memorized as units, so there likely won’t be a precise correlation between typing speed/fluency and difficulty of making the hand gestures in the abstract, but it would still be a good check on  models. If the models are sound, then it should be possible to corroborate them with real typing data.
« Last Edit: Sun, 07 December 2014, 06:13:31 by jacobolus »

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #61 on: Sun, 07 December 2014, 20:28:16 »
Okay, I read the model page again, here’s my summary:

For any particular triad of three characters in a row:

triad effort e = kbkb₁(1 + kb₂(1 + kb₃)) + kpkp₁(1 + kp₂(1 + kp₃)) + ks ⋅ s

Where the bs are "base effort" (roughly, distance from the "home" position), ps are "penalty" (each penalty value is made up of four subparts: base penalty, hand penalty, row penalty, and finger penalty), and s is the "stroke path" which is a basically arbitrary value that you look up in a table of 100+ entries, and the ks represent arbitrary weights that can be adjusted to a user’s preferences.

Default parameter values:

   • kb = 0.3555, kp = 0.6423, ks = 0.4268

   • k₁ = 1, k₂ = 0.367, k₃ = 0.235

   • base penalty and hand penalty default to zero, so the default penalty p for each key is the sum of: {1.9632 for the number row or 0.6544 for the top row or 0 for the home row or 1.3088 for the bottom row} + {0 for the index finger or 0 for the middle finger or 1.2974 for the ring finger or 2.5948 for the pinky}.

Here are the base values b:


And here’s the table of "stroke path" values s:



Now, I dunno about you, but I think this model is very complex without sufficient evidence (or really any evidence) for taking the form it has. It seems totally arbitrary to me.

I also find this model very difficult to reason about. Like, if I think up a particular triad of characters, it takes a few minutes to calculate out the score for it, if I try to do it manually. I should try to figure out how to get the code running to actually compute some example triad/word/sentence scores. I can’t intuitively guess which triads are going to be more or less expensive, because the model has so many moving parts.

As one example oddity: any triad which begins on 'f', 'd', 'j', or 'k' ends up with both the "base effort" and "penalty" portions of the score as 0, so the full difficulty of any such triad is left entirely up to the "stroke path" component.
« Last Edit: Mon, 08 December 2014, 00:40:08 by jacobolus »

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA
Re: QGMLWB by carpalx
« Reply #62 on: Sun, 07 December 2014, 21:09:47 »
So as an example, let’s work through the score for the triad "oin":

triad effort e =
         kbkb₁(1 + kb₂(1 + kb₃)) +
         kpkp₁(1 + kp₂(1 + kp₃)) +
         ks ⋅ s
      = 0.3555 ⋅ b₁(1 + 0.367 ⋅ b₂(1 + 0.235 ⋅ b₃)) +
         0.6423 ⋅ p₁(1 + 0.367 ⋅ p₂(1 + 0.235 ⋅ p₃)) +
         0.4268 ⋅ s
      = 0.3555 ⋅ 2.0 ⋅ (1 + 0.367 ⋅ 2.0 ⋅ (1 + 0.235 ⋅ 2.0)) +
         0.6423 ⋅ (1.2974 + 0.6544) ⋅ (1 + 0.367 ⋅ (0 + 0.6544)(1 + 0.235 ⋅ (0 + 1.3088)) +
         0.4268 ⋅ 2.9
      = 0.3555 ⋅ 4.15796 +
         0.6423 ⋅ 2.5647272813054514 +
         0.4268 ⋅ 2.9
      = 1.47815478 + 1.6473243327824914 + 1.23772
      = 4.363199112782491


As another example, let’s work through the triad "fad":

triad effort e =
         kbkb₁(1 + kb₂(1 + kb₃)) +
         kpkp₁(1 + kp₂(1 + kp₃)) +
         ks ⋅ s
      = 0.3555 ⋅ b₁(1 + 0.367 ⋅ b₂(1 + 0.235 ⋅ b₃)) +
         0.6423 ⋅ p₁(1 + 0.367 ⋅ p₂(1 + 0.235 ⋅ p₃)) +
         0.4268 ⋅ s
      = 0.3555 ⋅ 0 ⋅ (1 + 0.367 ⋅ 0 ⋅ (1 + 0.235 ⋅ 0)) +
         0.6423 ⋅ (0 + 0)(1 + 0.367 ⋅ (0 + 2.5948) ⋅ (1 + 0.235 ⋅ (0 + 0))) +
         0.4268 ⋅ 2.6
      = 0.3555 ⋅ 0 ⋅ (1 + 0.367 ⋅ 0 ⋅ (1 + 0.235 ⋅ 0)) +
         0.6423 ⋅ (0 + 0)(1 + 0.367 ⋅ (0 + 2.5948) ⋅ (1 + 0.235 ⋅ (0 + 0))) +
         0.4268 ⋅ 2.6
      = 0 + 0 + 1.10968
      = 1.10968

Personally, I find "oin" easier to type than "fad". For example, if I repeatedly type "foinfoinfoinfoinfoin" I can type that dramatically faster and more fluently than typing "jfadjfadjfadjfad".

Now for one third example, let’s work through the triad "d.-":

triad effort e =
         kbkb₁(1 + kb₂(1 + kb₃)) +
         kpkp₁(1 + kp₂(1 + kp₃)) +
         ks ⋅ s
      = 0.3555 ⋅ b₁(1 + 0.367 ⋅ b₂(1 + 0.235 ⋅ b₃)) +
         0.6423 ⋅ p₁(1 + 0.367 ⋅ p₂(1 + 0.235 ⋅ p₃)) +
         0.4268 ⋅ s
      = 0.3555 ⋅ 0 ⋅ (1 + 0.367 ⋅ 2.0 ⋅ (1 + 0.235 ⋅ 4.0)) +
         0.6423 ⋅ (0 + 0)(1 + 0.367 ⋅ (1.3088 + 1.2974) ⋅ (1 + 0.235 ⋅ (1.9632 + 2.5948))) +
         0.4268 ⋅ 2.1
      = 0 + 0 + 0.89628
      = 0.89628

Even if you disagree with me and think "fad" is four times easier to type than "oin", I hope you’ll at least agree that both are much easier to type than "d.-".

(Note: I’m not 100% sure I’m interpreting the model right or that my arithmetic is correct here; feel free to correct any mistakes.)
« Last Edit: Sun, 07 December 2014, 22:20:43 by jacobolus »

Offline dorkvader

  • Posts: 6288
  • Location: Boston area
  • all about the "hack" in "geekhack"
Re: QGMLWB by carpalx
« Reply #63 on: Mon, 08 December 2014, 13:39:48 »
Now, I dunno about you, but I think this model is very complex without sufficient evidence (or really any evidence) for taking the form it has. It seems totally arbitrary to me.

This is the main issue I have had with the various keyboard layout. I initially learned Dvorak because it's the only "good" one that's ubiquitous (other than qwerty). I started looking into other ones. Capewell, artensio, colemak, etc.

And I found that in general, it was totally arbitrary. Even the more modern ones like workman and carpalx are somewhat arbitrary. I think this is because there's really no "hard" evidence on what is "easy" vs. "hard" for keyboards. This is partially because the keyboard layout is probably not too conducive to such study, and partially because everyone is different, so we all have different preferences.

Dvorak favors alternation, colemak is on a "roll", capewell only has basic changes, but are well intended like colemak. carpalx and workman have their formulae. When I was reading through them as a young GH'er, I thought that everyone had their "idea" about how things should be, but they spend way more time on comparing their "model" to others and crunching a bunch of numbers though it than coming up with a really good model.

bytheway in dvorak, "oin" is really easy to type and "fad" is somewhat difficult.