As you may have noticed, my keyboard designs have been limited to only the central 30 characters — on a traditional QWERTY keyboard these keys include the alphabet, period, comma, semicolon and slash. Why have I not expanded my program to include other keys? It is certainly not because those keys are in optimal positions already. Many of the keys outside of the main 30 have the very worst placement. So why not try to optimize them as well?
1. They are too hard to re-learn.
I have tried to learn a layout where the all of the keys were optimized, but it did not go well. I found myself completely unable to switch back and forth between it and QWERTY. The layout was simply too complicated, so I ended up just putting all the outlying keys back into their original positions.
2. Many of them rely on aesthetics that a computer program won’t notice.
Look at the number keys. They are neatly lined up in an easy-to-remember fashion. However, their order of frequency is not so simple. A computer algorithm would end up completely jumbling these numbers. It would also likely not put the open and close brackets next to each other, as well as numerous other aesthetic benefits. A computer program would simply miss these little nuances.
3. That program would be harder to write.
Yes, I admit it, I am somewhat driven by laziness. This new program would require modification of many parts of the program, and would make it harder to evaluate the keyboard’s score. The set of digraphs used to score the keyboards would be larger, causing both accuracy and program efficiency to suffer. Evaluating the score would require taking into account all four (or even five) rows, and the extra keys on the side. The score evaluation process would be much more complicated, and therefore harder to get right. Overall, I didn’t see the benefits as worth the effort.
It’s been a while since I posted anything about the New Keyboard Layout Project. But I recently downloaded Amphetype and have been analyzing my typing patterns, using MTGAP 2.0. So I now have some results, and will probably get more in the future.
The fastest trigraphs to type almost all are either a type of one key on one hand followed by two keys on the other hand, or they are a roll on one hand in one direction. Most of the slowest trigraphs alternate hands every time, and a good number of them are all on one hand in awkward combinations. The fastest words have easy rolls on both hands: what is currently the fastest word, “should” with an average of 176 WPM (hint: my average typing speed is about 85 WPM), uses a combination of hand alternations and easy rolls. In QWERTY, “should” would be typed as “jeaior”. The “ul”/”io” combination is very fast; also, “od”/”ar” is very fast, and the difference between the finger strokes to type “o” and “d” are very brief because the two letters in between are typed too fast. (Does that make sense?)
I will report more fast combinations after the program gets enough data for some better results.
It has been said that computers will never be able to replace humans. There have been various arguments: that human intelligence is transcendental; that computers can never feel emotion; et cetera. These arguments, however, are flawed.
First of all, as much as people would like to believe the contrary, there is no evidence that there is anything transcendental about the human intellect. None. People do like the belief that we are special, but we simply are not. And that is not such a bad thing, really. So we are not so special. What then? Nothing ends. Accepting our place in the universe does nothing but make life easier, since denying the truth is no longer necessary.
Then there is the fact that human intelligence is currently being replicated by computers. At this point, computers are not nearly as smart as people are. But they are certainly a lot closer to reflecting human intelligence then they were thirty years ago. Allow me to demonstrate. Have you ever played a video game? Many games involve other characters. These characters are not played by people, but are actually controlled by the computer. You may have noticed that these characters do not always act entirely realistically. But at the same time, they do not act very unrealistically either. It could be a lot worse. The task of actually writing an intelligent non-player character is a very difficult one. But we are getting better at it. Before too much longer, we will have computer programs capable of acting completely human.
One major objection, though, is emotion. It has been said that computers cannot feel emotion. So far, they do not. But really, emotion is only the release of certain chemicals in the brain. Computers could be built with these same chemicals. Or they could possibly perceive emotions in a different way. Currently, there is no reason for computers to have emotions. It would be inconvenient (and also very difficult to implement). But other than that it would be hard to implement, there is no reason why computers would not be able to feel emotions. In their own way, emotions are very logical. When something happens that is beneficial, you feel happy. When something happens that is detrimental, you feel sad. When something happens that you wish had gone differently, you get angry. Computers could be programmed to behave in all of these ways.
For all of these reasons and more, it is possible — even achievable in the relatively near future — for computing machines to become as intelligent as humans. But what then? Would they take over the world? Hopefully not. We could live in harmony. Maybe they would destroy us because of our destructive capabilities. Who knows? Whatever happens, it will be something, and it will be exciting.
Today I learned that Ruby‘s random number generator uses the Mersenne Twister, the greatest pseudorandom number generator known to man — both faster and higher quality than the commonly-used linear congruential generator.