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."
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 ?
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.
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
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
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
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)
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
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
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.
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
~~~
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 ?
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.
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:
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:
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.
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.
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.
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.
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.
FreeBSD 5.0-CURRENT /usr/src -name "*.[ch]" -type f -print |xargs cat
;-)
corpus:
find
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.
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.
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.
Table-ized A.I.
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?