Slashdot Mirror


Beyond Dvorak via Genetic Algorithm

ColonelPanic writes: "I switched my computer keyboard to the Dvorak layout about a year ago. But now I've gone and done something really outlandish. I tried to discover the most efficient layout possible with a genetic algorithm. It's weird-looking, but I am typing with it now. I put the gory details up on the Web."

26 of 384 comments (clear)

  1. Call me ignorant if you like... by Ignorant+Cocksucker · · Score: 3, Interesting
    But wouldn't the perfect keyboard layout change dependant on what one was actually typing ? E.g. some languages make more frequent use of certain letters compared to others.

    I can imagine Lisp programmers would want the parentheses '(' and ')' keys to be in a more accessible place than above the 9 and 0 characters.

    What do other think - Should keyboards be dynamically reconfigurable dependant on the programming language in use ?

    1. Re:Call me ignorant if you like... by MadCow42 · · Score: 3, Interesting

      What would be nice is a program on a floppy disk (ok, on a USB storage device keychain these days) that you just plug into the computer you're using, and it remaps the keyboard to your preferred style.

      That is NOT a difficult thing to do, if you want to do it...

      Kevin.

      --
      I used to have a sig, but I set it free and it never came back.
  2. choice of benchmark text by Hollins · · Score: 5, Interesting

    I appreciate that he uses a lot of text for analysis. Ten years of email and C++ code are nice additions. However, the inclusion of the King James Bible and a few other works may have skewed the results somewhat, as shown by the presence of the word "thou" in the most-often used words list.

  3. Re:That's all fine and dandy... by adamjaskie · · Score: 2, Interesting

    Actually, the QWERTY layout was designed so that people when typing would alternate between one side of the keyboard and the other as much as possible, making it more likely that if they hit two keys too fast, they would be as far apart as possible. However, DVORAK acrually does that better (alternating hands) and allows for people to type somewhat faster due to more common letters requiring less movement of the fingers. I, however, am somewhat skeptical about HOW MUCH faster it would allow you to type, and do not belive that the slight gain in speed would be worth re-learning how to type.

    --
    /usr/games/fortune
  4. non qwerty-keyboards and unix by jafuser · · Score: 5, Interesting

    The problem I've had with non-qwerty keyboards is that unix seems to be designed for qwerty, as you'll notice most of the common commands (ls, ps, pwd, cd) seem to be fairly "comfortable" to type, whereas when I was playing around with using dvorak once for a few weeks, it just felt much more awkward to type unix commands.

    --
    Please consider making an automatic monthly recurring donation to the EFF
  5. An improvement on the idea by orangesquid · · Score: 5, Interesting

    You know what I really should do? There are certain words I *always* mistype with QWERTY, and I'm convinced it's partly the fault of the layout... I should use a genetic algorithm that evaluates based on speed *and* on letter arrangement, somehow. Not sure how to do this... but right now I'm running this command to see what words I mispell most often when using instant messenger:

    nice cat ~/.gaim/logs/*.log|fgrep 'me:'|ispell -H -l|sort|uniq -c >~/badwords 2>/dev/null &

    I love UNIX.

    --
    --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    1. Re:An improvement on the idea by Anonymous Coward · · Score: 2, Interesting

      There are certain characteristics that cause common typos with touch typists. If it's a common word, so people type it quickly without thinking, and it alternates hands each letter, particularly with the forefinger or middle finger, then the odds of swapping two letters is greatly increased. For example, "teh" for "the," or "grils" for "girls." Within the same hand, accidental swaps like that almost never occur. I think it's that your brain anticipates but mis-estimates when a keystrike will occur, and launches the next keystrike based on that anticipation...between hands you have a longer datapath in the brain, or perhaps a junction between brain hemispheres, which probably takes longer to process the "push finger, okay finger was pushed" signals than is needed by the next finger command to maintain a fast typing speed.

  6. My keyboard project (international dvorak layout) by snowtigger · · Score: 4, Interesting

    Nice work.

    I am working on a similar project: to create an international (european languages) dvorak-like layout for programmers or multi-lingual people.

    In Europe, there is about one qwerty-type layout for each language or country. Most languages have some special characters (èàéüäö etc). If you want to use characters from another language, it may not be possible or require some special (difficult to remember and different for each layout) sequence.

    What I am looking for is direct access to all special characters used by swedish, french, german, italian, spanish and programming languages (èàéäüö[]{}$# etc). Using dvorak as basic layout to build upon.

    I will post more on this as soon as I have finished (after summer vacations)

  7. We tried the Dvorak at my company years ago by Phoenix-kun · · Score: 3, Interesting

    We had a concerted effort at my company years ago to see if the Dvorak keyboard would improve performance for randomly selected users. It failed. Any difference in performance was offset by the difficulty in switching back to the Qwerty away from the workplace.

    Until a completely new input system comes around, we're stuck with the Qwerty for better or worse.

    --
    Phoenix
  8. Re:Enquiring Onanists.... by phillymjs · · Score: 3, Interesting

    I don't know which is fastest, but here's an interesting tidbit which stuck with me from the 'Self Love' episode of VH-1's 'Pop-Up Video':

    The longest word you can type with one hand [using the proper fingers on the keys of a QWERTY layout] is "stewardesses"

    I don't know where they came up with that, but it was good for a chuckle.

    ~Philly

  9. Re:Problem with switching by rlwhite · · Score: 2, Interesting

    You're right that you can forget how to type on qwerty. How long it takes can vary widely based on usage patterns.

    As a Dvorak user, I like to think that I've come up with an interesting solution (though certainly imperfect). Every keyboard I have to use in public always seems to be the flat, traditional style qwerty keyboard. My home keyboard is a natural keyboard using Dvorak. After a month or two getting used to Dvorak on the natural, I discovered that I could get myself to subconsciously switch between Dvorak and qwerty when i switched between natural and flat keyboards, based on its feel under my hands. At this point, I've been using Dvorak for about 2 1/2 years. I can switch pretty comfortably and accurately between the two styles, and the initial stumbling around when switching has gone away virtually completely.

    This association of keyboard layout with keyboard shape does have its problems. I do have to use qwerty on a natural keyboard occasionally, and it really throws me off. Fortunately, this doesn't happen often for me.

  10. Universal in a very limited universe by Rui+del-Negro · · Score: 5, Interesting

    All these layouts and evaluations are based on a) american keyboard layouts and b) the English language.

    Even the regular QWERTY layout has some differences in other languages (ex, the 'Ç' in portuguese keyboards, the 'Ñ' in spanish keyboards, etc.), and the letter frequency is completely different. Most languages don't use the 'W' at all, and very rarely use the 'K'.

    Most languages also have some specific 2-letter sequences that don't appear in other languages. In English you have 'th' and 'wh', for example. In Italian you have 'gl' and 'gn', in Spanish you have 'll', in Portuguese you have 'lh' and 'nh', etc.. These can make a big difference to the "perfect layout".

    There are also some ridiculous mistakes such as the official french keyboard (which is AZERTY, and not QWERTY, BTW) not having the capital letter 'Ç', meaning you can't type 'Ça va?' (a very common sentence, meaning 'How are you doing?'). In the portuguese layout, the 'Ç' is a separate key, so you can use it to type 'ç' or 'Ç' (with shift). When I was working in Paris a couple of years ago I often wished I had my portuguese keyboard, not only because I'm used to QWERTY and kept making mistakes on their AZERTY keyboards, but also because it's actually easier to type in French with a portuguese keyboard.

    Personally, I'm quite happy with the QWERTY layout; I would only change a couple of letters.

    But I do wish people who write software would realise not everyone in the world uses the same keyboard layout they do, and that in other countries the same signs are often in different keys, making some key combinations impossible (ex., in the portuguese keyboard. the signs '[' and ']' are typed by pressing AltGr+8 and AltGr+9, or Ctrl+Alt+8 and Ctrl+Alt+9. So, when a program assigns some function to the combination Alt+[, it usually won't work on portuguese keyboards). Even worse are the programs (games, especially) that read they key's position instead of the character. So I press '' and get '=', I press '\' and get '~', I try to type 'ã' and get '\a', so on.

    [sarcasm]

    And of course, no keyboard is complete without the Windows "system keys"...

    [/sarcasm]

    RMN
    ~~~

  11. QWERTY Standard by EnsilZah · · Score: 2, Interesting

    QWERTY is a standard, all the schools, businesses and all other public facilities have them, maybe you could bring one to work, that's about limits your possibilities when you're outside your house. If you had a keyboard with E-Ink on the key tops, which every user could map as he/she pleases, you could get this to work, but which School/Business/Public facility would spen extra money on something they're sure no one would use ?

  12. Re:This genetic algorithm doesn't have sex by rgmoore · · Score: 2, Interesting
    The Earth was just a big bacterial soup for two billion years. Then sex was invented and then things started to get more interesting very quickly.

    Just a side note, but bacteria do have sex. It's not necessary for reproduction, of course, and they only exchange a limited amount of genetic information in each exchange, but they do conjugate and exchange plasmids. In fact, they're remarkably promiscuous, exchanging genetic data with very little regard for things like the species of bacterium they're exchanging with.

    It turns out that this is a major problem, because it's a key way for bacteria to develop unpleasant features like antibiotic resistence and infectiousness. They don't necessarily evolve those things from scratch. Instead, a whole package of nasty features that have evolved slowly over time- like multiple characteristics that make a bacterium an effective infectious agent, or a whole suite of proteins that convey resistence to a particular antibiotic- can be transmitted in a single genetic exchange. That lets harmless bacteria rapidly change into nasty ones without having to evolve that way from scratch.

    --

    There's no point in questioning authority if you aren't going to listen to the answers.

  13. Faulty assumptions used for the benchmark by pslam · · Score: 5, Interesting
    Unfortunately this program uses the same faulty assumptions that Dvorak used to design his keyboard layout. Namely the following:
    • Alternating between hands each key is fast
    • Hands are not allowed to move left or right
    • All four fingers on each hand must rest on the same row
    • Moving up or down a row is slow, because of the above
    • You don't use your thumbs except for space

    Where did these assumptions come from? I've got about 15 years of piano playing under my belt, and I find the standard "touch typing" rules very strange choices indeed. I type in a pretty free-form style at about 150wpm, depending on coffee. So, I'll disprove these assumptions one by one:

    • Alternating between hands each key is the absolute hardest action to do quickly. If you have a piano piece which has a segment like this (there's a few famous pieces like this) it'll either be relatively slow or you'll be practising it for months. Runs of keys in the same hand are far faster. I'd say about 5 times faster.
    • Why are hands not allowed to move left or right? If you have 8 keys to press, all of which reside to the right of the 'D' key, I move my left hand right a few keys! What's the point in keeping it where it is and making your right hand do more work and even stretch to reach the central columns?
    • Why must all 4 fingers rest on the same row? For a start, your fingers aren't even the same length! Place your hands naturally on a table, and compare to where the keys would be. You'll find that they would have been on "a,w,e,f" and "j,i,o,;". Somewhat luckily, qwerty keyboards have all of the vowels except "u" under these keys. There's no reason you can't have your fingers over arbitrary rows. With a bit of hand strength building, this is easy.
    • Moving up and down rows is only slow if you "float" above the keyboard (not resting your wrist on the table/rest) and move your entire arms back and forward. This would be an awful technique to use and I'd suspect it would lead to strain problems very quickly. Stretching your fingers forward and backwards is fast. And with the previous point, this is mostly irrelevant anyway.
    • So, why aren't we allowed to use thumbs for typing normal keys? It's perfect for hitting keys on the bottom row when all the others have been tied up. Just then, I typed "up." with right hand "2-4-1" (where 1 is thumb, 5 is little). Why? Because when fingers 2,4 have been tied up on the top row, the most convenient finger to use is my thumb. Try it.

    Not to discourage trying to find new keyboard layouts too much, but it's best to start really from scratch and question the basis of all the original assumptions. The rules need to include:

    • Model the positioning of the hands and fingers in detail. If you remove the restrictions that "touch-typing" enforce, then the key-to-finger mapping also depends on context.
    • Encourage runs of keys in the same hand. About 3-4 keys in the same hand before switching is optimum.
    • Discourage rapid switching between hands (every key, for example).

    My theory about carpal tunnel and other typing related injuries is that "touch typing" is actually to blame. It encourages stiffening of the wrists and hands, discourages stretching, and generally leaves your hands as weak as they were before you started typing.

    My advice to anyone that uses classical "touch typing" is to learn to the point of about 40wpm, and switch to improvisation. My advice to anyone wanting to switch to Dvorak for speed, or to reduce strain: it's ultimately limited by the speed of one-key-per-hand switching which is about 120wpm. From my experience with both, you're better off sticking with qwerty and going free-style.

    1. Re:Faulty assumptions used for the benchmark by The+Pim · · Score: 5, Interesting
      I think you have a combination of unusual motor skills and incorrect reasoning.

      Alternating between hands each key is the absolute hardest action to do quickly. If you have a piano piece which has a segment like this (there's a few famous pieces like this) it'll either be relatively slow or you'll be practising it for months. Runs of keys in the same hand are far faster. I'd say about 5 times faster.

      Runs on the same hand are faster than alternation, sure. But alternation is much faster than arbitrary motions of one hand. Given the variety in English, optimizing for long runs will win on a very few words, and screw up the layout for everything else. I challenge you to refute this.

      Dvorak does follow this principle for some short runs: th, sh, wh, rt, nd, and ng are all nice combinations that move in the pinky-to-index direction on one hand. But gymnastics with one hand will kill most typists, and alternation is about avoiding this.

      Why are hands not allowed to move left or right? If you have 8 keys to press, all of which reside to the right of the 'D' key, I move my left hand right a few keys! What's the point in keeping it where it is and making your right hand do more work and even stretch to reach the central columns?

      This requires incredible foresight and motor skills. For most people, the key to finding a key quickly is knowing its position relative to a fixed reference.

      Why must all 4 fingers rest on the same row? For a start, your fingers aren't even the same length! Place your hands naturally on a table, and compare to where the keys would be. You'll find that they would have been on "a,w,e,f" and "j,i,o,;". Somewhat luckily, qwerty keyboards have all of the vowels except "u" under these keys. There's no reason you can't have your fingers over arbitrary rows. With a bit of hand strength building, this is easy.

      I might agree about the natural position of the fingers (though I suspect the natural position is actually somewhere in-between asdf and awef). But the idea that each finger can be on its own row is just wrong for normal hands. Ask some normal people to try it, and they'll tell you.

      Moving up and down rows is only slow if you "float" above the keyboard (not resting your wrist on the table/rest) and move your entire arms back and forward. This would be an awful technique to use and I'd suspect it would lead to strain problems very quickly. Stretching your fingers forward and backwards is fast. And with the previous point, this is mostly irrelevant anyway.

      Resting wrists on the table, and stretching fingers without moving the hand, are both generally recognized as major contributors to CTS and other typing injuries. When I learned piano, I was definitely taught to keep my wrists up and move my hands with my fingers (eg, when reaching for a black key, the hand should advance).

      So, why aren't we allowed to use thumbs for typing normal keys? It's perfect for hitting keys on the bottom row when all the others have been tied up. Just then, I typed "up." with right hand "2-4-1" (where 1 is thumb, 5 is little). Why? Because when fingers 2,4 have been tied up on the top row, the most convenient finger to use is my thumb. Try it.

      I tried it. It's a disaster for me. Typing up with 2-4 is hard enough, requiring an awkward stretch of the ring finger. Getting to . with the thumb requires me to twist my whole arm in addition to contorting my hand, and hitting a target after such a long travel with such a fat digit is quite unreliable. Plus, this leaves my hand totally out of position for any subsequent typing.

      I would think that given your claim that different fingers can easily go to different rows, you would prefer 2-5-4.

      My theory about carpal tunnel and other typing related injuries is that "touch typing" is actually to blame. It encourages stiffening of the wrists and hands, discourages stretching, and generally leaves your hands as weak as they were before you started typing.

      I'm not a doctor, but this flies in the face of all the medical advice I've read. What you call "stiffening" is what most people would call making gentle, comfortable motions. What you call "stretching" is what most people would call excessive and unnatural motion. What you call "leaving weak" is what most people would call avoiding strain. Maybe your hands can take it, but most people's can't.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    2. Re:Faulty assumptions used for the benchmark by Dixie_Flatline · · Score: 4, Interesting

      The big flaw in your argument is probably the one that you think is the best, namely that we should be encouraging runs of 3 to 4 letters on one hand.

      Alas, the problem with this is that you're going to end up with a dominant hand. If you put 'the' in the middle of the right hand side of the keyboard, the right hand will be typing that a million times a day. Sure, it's faster, but it's not going to be ergonomically better.

      Nobody that's typing for pure speed is going to use a normal keyboard. A chording keyboard will let you break 200wpm if you're good with it.

      Besides, I'm not sure why you'd say that alternating keystrokes by hand is slower. It's clear to my that my left and right hands can type keys nigh simultaneously. It's just a matter of getting your hands to move quickly and precisely enough so that a keystroke from your right hand is instantaneously followed by a keystroke from your left hand. Having multiple keys close together so that they can be hit by the same hand merely makes it a little more convenient to coordinate.

      And surely, as a piano player, you've heard the stories about players 'trilling' on two keys repeatedly, for years, and are now experiencing pains from it?

      Lastly, I think that the best keys for the thumb are 'backspace', 'delete', 'space', and 'enter'. I use these keys far more than most letter keys every day. On average, I use the space key every 5 letters, and I probably use the backspace key once every 10. :)

      Check out the kinesis ergonomic keyboards. If only they could have moved 'shift' so that I didn't have to use my pinky all the time.

    3. Re:Faulty assumptions used for the benchmark by pslam · · Score: 3, Interesting
      Runs on the same hand are faster than alternation, sure. But alternation is much faster than arbitrary motions of one hand. Given the variety in English, optimizing for long runs will win on a very few words, and screw up the layout for everything else. I challenge you to refute this.

      If all English words were made up of random letters, and had uniform occurance, this would be obvious. But because some words are vastly more common than others, and have a lot of similarity, this isn't so obvious. As you say, Dvorak promotes some runs like th, sh, wh - so why not extend to promote runs longer than two? You don't need to restrict to adjacent keys - so long as there's a different finger near the next key it'll be nearly as fast. However, my argument regretably lacks any data to back it up - much like yours does.

      I might agree about the natural position of the fingers (though I suspect the natural position is actually somewhere in-between asdf and awef). But the idea that each finger can be on its own row is just wrong for normal hands. Ask some normal people to try it, and they'll tell you.

      I see what you mean about it being somewhere in between. Perhaps I shouldn't have been quite so wide-sweeping with "one finger per row" statement. Some combinations are obviously ridiculous and would likely cause injury to yourself and the nearest 3 people. Other combinations aren't difficult and probably strain less than moving all of your fingers at once.

      In general, my style tends towards "smoothing out" the stretching of fingers and movement of the wrists by predicting the required positions of each hand and moving progressively towards an optimum position for it. I agree that this is unusual, but I think that most people could learn this given time.

  14. Re:Enquiring Onanists.... by Dun+Malg · · Score: 3, Interesting

    Another interesting observation about QWERTY I've heard is that the word "typewriter" uses keys that live in one row. Speculation is that Sholes included as one of his layout criteria "must be able to type product name quickly in demos".

    --
    If a job's not worth doing, it's not worth doing right.
  15. Re:That's all fine and dandy... by bc3-au · · Score: 4, Interesting
    Actually re-learning to type with a better layout is quite quick.

    I tried dvorak with the earlier versions of NT which allowed keyboard re-mapping and found myself bettering my typing speed, with less errors within 2 weeks.

    Only problem then was the fact that stupid windows had keyboard layout set as a user preference, not a machine preference. It was *VERY* difficult remembering qwerty when trying to log in. (I'd rearranged my keys but login was done in default, not my personal mapping)

    I should go out and buy a keyboard with a dvorak layout, but keyboards these days are so badly contstructed.

  16. Left handed dominant would be best for me. by stuartkahler · · Score: 1, Interesting

    I would benefit greatly from a keyboard that would allow me to type pretty much non-stop with my left hand. I'd much rather be able to keep hold of the mouse in one hand and keyboard in the other, rather than switch my right hand back and forth all the time. This is probably not very feasible, but at least a situation where the least used keys like x,q,w,z are all moved to the right area replacing m,i,o,p. I could probably type a few words out in the time it takes me to get my hand off the mouse (or page up/down, arrow keys) and centered on the home keys.
    Surely, the genetic algorithym came up with one glaring conclusion after 100k lines of C code: SWITCH THE SHIFT POSITION OF BRACES AND BRACKETS.
    And why is the minus key non-shifted, while the plus key is.

  17. Slashdot from '99 by dirkmuon · · Score: 2, Interesting
    The Myth of Qwerty features extensive discussion over the same ground.

    The author's list of rules is predicated upon many assumptions about the act of typing. Has any been verified scientifically? I think not. To discover whether the Dvorak keyboard or any other keyboard provides verifiable benefits beyond QWERTY would require extensive training and testing of a large sample population.

    Of course, if you like Dvorak and any other layout better than QWERTY, then you should use it.

  18. Re:Alternative Text by shlong · · Score: 3, Interesting

    FreeBSD 5.0-CURRENT
    corpus:
    find /usr/src -name "*.[ch]" -type f -print |xargs cat

    201511526:
    g u x , ; m l d f p
    c e i a o h r t s n
    q ' y . j z k b v w

    Notice the de-emphasis of the 'g' key ;-)

    --
    Cat, the other, tastier white meat.
  19. Is Dvorak really better than Qwerty? by Anonymous Coward · · Score: 1, Interesting
    I recently read an article that examined the evidence as to whether the Dvorak keyboard is any better than QWERTY. The answer was probably no, in fact, in some respects it is worse.

    How come? Primarily because the basic idea of minmizing finger movement is largely irrelevant, specifically, the critical path is the amount of time it takes your brain to decide what movement to make rather than the time it takes for your finger to make the move. Further, coincidentally, the QWERTY keyboard was designed to optimize for alternate hand typing (left, right, left, right) whereas quantitatively Dvorak tends to require more single hand typing (left, left, left, right). This is a disadvantage because our brain is capable of multitasking, deciding what to do with the left hand while the right is moving.

    Consequently, although Dvorak is apparently slightly quicker to learn, you are more likely to improve speed by training to get better on QWERTY rather than relearning Dvorak.

    See link here.

  20. I smell updgrade profits by Tablizer · · Score: 3, Interesting

    So everytime somebody comes up with a (allegedly) better keyboard layout using new technologies or new "optimized" assumptions, a new keyboard layout will come on market?

    Sounds like the software development industry in general: learn a new language or paradigm every 5 years. (Just to find out that they keep reinventing LISP without knowing it :-)

    If that kept happening, then perhaps what is needed is a programmable keyboard where the letters (including image of them) change to your personal preference. Then again, if you know it well enough, perhaps you don't need to see the letters.

  21. Another evolution condition.. by hyphz · · Score: 4, Interesting

    Hmm, interesting. I've been using Dvorak for a while now (and yes, I can still type fast on qwerty with the occasional pause). However, one thing I found about Dvorak was that spelling checkers become less useful on it - because of the closeness of common letters to each other, a Dvorak miskey tends to generate a correct spelling of the wrong word, rather than an incorrect spelling. This confounds automated spell checking. Has anyone tried to make a layout which minimises cases in which letters which can be substituted in words being next to each other is a Bad Thing?