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."
Results:
left
right
left
right...
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.
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
According to the description in the article the algorithm has random seeding, mutations, a ranking function and survival of the fittest - but it doesn't have genetic exchange. New layouts are not chosen as combinations of two or more existing layouts.
Genetic exchange is very important for rapid evolution. 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.
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
A friend does PC support (including telecommuter support) for a large retail company. A woman called in, to say that her home PC was acting stangely, and not typing the keys she pressed.
My friend went to her house with a new keyboard. When he looked at the old one, he saw that the keys were arranged alphabetically. with 'a' where the q is supposed to be, 'b' where the w is, etc.
She explained that she was having trouble finding the keys, so she rearranged them so she could find them easier.
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)
His little test is a neat idea. The one potential cause for concenr I could see would be that he was influenced by literature praising dvorak in defining penalties for various tasks. I personally think the penalities are likely accurate, but to a QWERTY advocate, research that show dvorak is bette rby using dvorak based criteria would be begging the question...
That aside, I really agree that dvorak is a better keyboard layout, and his final layout's resemblance to dvorak testifies to the advantage of dvorak. I've never been able to type fast at al in QWERTY, and it always hurts quickly (unless I hunt and peck, which is my general method). With dvorak I can touch type comfortably for a long time, and much faster as well. While his final keyboard layout may be marginally better than dvorak, dvorak remains the better choice for much the same reason qwerty is used, you can set up a dvorak layout on almost any system and os, but with this funky layout, you need to be running X....
XML is like violence. If it doesn't solve the problem, use more.
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
~~~
--
Seeing is believing; You wouldn't have seen it if you didn't believe it.
IBM did this in 2k1 for PalmOS PDA's, and called it ATOMIK (Alphabetically Tuned and Optimized Mobile Interface Keyboard). It's from our Alphaworks, and is designed so that it has:
e yboard.htm and scroll down for a list of very good research papers.
1. Higher movement efficiency than any other existing touch keyboard.
2. Alphabetically-tuned layout: Generally, letters from A to Z run from the upper left corner to the lower right corner of the keyboard. This layout helps novice users find letters that are not yet memorized.
3. Letter connectivity of common words: Many common words or comment fragments of words, such as "the" and "ing" are totally connected.
You might want to take a look at http://www.almaden.ibm.com/u/zhai/topics/virtualk
Michael C. Hollinger
...it was a Ask slashdot submission, and read: "I swtchrd my computre keybord to teh Dvorka layoot bout a yaer ago. But nbw I've gonn nad donn somethng raelly ouhlnadsh. I trid to discovr teh most efffcinet layoot posibel wth a getetic algorthm. It's wetird-lokng, but I m typnig wth ti noow. I ptu teh gorry detials up on the Web. Wht I sak is hw teh ehll do I chnage ti bak?!
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.
when there's a finite number of layouts? Yup, just 265,252,859,812,191,058,636,308,480,000,000 possibilities. I'm sure the guys at distributed.net would love to set up a project to figure this out.
- danboo
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.
It sounds like the interesting possibility almost grasped here is the possibility of producing a self-customized layout on the fly.
hook the keyboard driver and tokenize input into words (corrections included where possible), feed through a spell-checker (to find what word was likely the target), and re-insert as input through the algorithm. Admittedly, this makes it more of a neural-net than a GA, but it is continuously evolving, and eventually, you should even out on the best keyboard layout for what you type on a daily basis
I expect my '_' key to end up somewhere on the home row in a couple of weeks (programming = bad typing habits)
Qwerty wasn't designed to slow people down... that's a myth.
Research on keyboard stuff found here:
http://web.mit.edu/jcb/www/Dvorak/
http://www.independent.org/tii/news/liebowitz_econ omist.html
Liebowitz's article does not debunk anything. It merely gives evidence that some studies were flawed, puts forward its own flawed and ambiguous studies, and entirely ignores the compelling non-empirical arguments for Dvorak's superiority. (Do you not believe anything that has not been established by studies?) Let's not even mention the fact that Liebowitz has a strong prejudice about market efficiency to support (oops, mentioned it!).
Marcus Brooks has a longer rebuttal. I actually do not find it totally satisfactory either, but it should certainly make clear that Liebowitz has little credibility.
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
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?