As far as I can see there are two issues which have no solution at present:
* There's no way to generate keyboard layout files for Windows RT (MSKLC doesn't support it).
* Because the OS is locked down, someone would need to publish it to the Windows Store before it would be installable. So much for "Life without walls".
Colemak is not in a "semi-beta" version. Colemak was released in 2006, and was stable ever since. No further updates are planned, because the layout has been finalized. Colemak has been tried and tested by many thousands of users, and it won't change everytime someone tunes the algorithm that generates the layout. Throughout the years, I've addressed hundreds of criticisms that have been raised in the forum regarding its design. Looking back, I still believe that Colemak has made all the optimal choices in its design. Colemak today is still the most popular and most compelling QWERTY/Dvorak alternative. If you'd like to learn more about the design decisions of Colemak, a good place to start would be reading through all the posts I've written in the forum.
The Caps Lock issue has been decided. I have reached the conclusion that having an extra Backspace is much better than having a Caps Lock key. The Caps Lock key means that you have to keep in mind everytime you type that state of the Caps Lock key. It also avoids many issues where the Caps Lock is pressed accidentally (incorrect passwords, tYPING lIKE tHIS, accidentally SHOUTING on forums, etc.). The Caps Lock isn't necessary for any programmer whatsoever. Even Fortran programmers can type everything in lowercase. If you need to type A_LONG_CONSTANT_NAME you can either:
1. Hold the Shift key.
2. Type it in lower case, and then use your editor to convert it to uppercase.
3. Type the first few letters, and then use the autocomplete function of your editor.
If you think Colemak is not good for programming, you're doing a lot of manual typing that could be automated at the editor level. If you use snippets, macros, autocomplete, auto-closing tags/brackets, etc. the amount of capitalized or non-alphabetic text you have to type is negligable. I highly recommend Sublime Text.
If you analyze the total amount of typing that you do (of which writing code is probably only a small percent), you'll see that you're pressing the backspace key several orders of magnitude more often than you need to use the Caps Lock key. Combine in it with the fact is that the Backspace key is #1 key that causes RSI, and moving it to the left hand improves the hand balance, and helps you to maintain the typing flow by reducing the amount of interruption.
The reasons why I decided to add a second Caps Lock instead of exchanging it with the Backspace key are explained here.
If you don't agree with this you are free to customize Colemak as you see fit, and redistribute your changes.
The international layout was modeled after the US-International layout, while trying to fix some of its flaws. It is explained in the Multilingual page, but it might make more sense if you see it visually, i.e. compare the US-International layout diagram and the Colemak international diagram.
The Colemak international layout is:
* Designed not to penalize people who are typing in English (in US-International, typing ' and " requires two keypresses).
* Designed for easy typing of common words in English with diacritics, e.g. café, über, fiancé, façade, jalapeño, etc.
* Designed to allow typing of typographics (e.g. ndash, non-breaking spaces, “smart quotes”, and special characters, e.g. ®, ™.
* Supports a much wider range of languages. The relative number of speakers of the language, the total number of languages containing the diactric, the frequency of diactrics in each language, and the total frequency of the diactric in all the languages, similarity to the US-International layout, ease of learning, and the key position have all been taken into account.
The tilde that is occuring by so many keyboard shortcuts, it's just a visual indicator to the typist that they typed an invalid combination, which was deemed in my eyes to be better than the alternative (beeping or doing nothing), and allows for a more consistent implementation across platforms.
As far as I know, Colemak is now included on Mac OS X Lion 10.7 ; A downloadable implementation is available for earlier versions. If you're using an earlier version, you can download the layout file to ~/Library/Keyboard Layouts/ on your home directory , and you don't need to install anything, so that's a "portable version" in my opinion.
64x64 is average, even quite large, IMO. For comparison, Facebook avatars are 50x50 and Twitter are 48x48 outside the profile page. Avatars that are too big add a lot of vertical space scrolling when there are short posts, specially if there's other info already. I'll see if there's a way to increase the size on the profile page and on hover while keeping it the same on the discussions.
The standard Colemak will always have Capslock mapped as backspace. People can always customize the keyboard to their needs. Creating different variants for each customization is confusing and unmaintainable (unless there is some elegant implementation like PKL with configurable options). Capslock mapped as backspace is already offered as option for people who want it.
The Maltron keyboard layout is excellent ergonomically, and having an extra thumb in use is great. However, it isn't a practical alternative for most people due to the keyboard price (which needs to be multiplied if using several computers, e.g. at home and at work), and because it's only available for desktop computers which are now a shrinking minority of computers.
I've upgraded the forum software to the latest version of FluxBB.
As you've probably noticed, there's a new default theme. If you prefer the old one, you can change it by going to:
Profile > Display > Style > Oxygen
There is now a captcha in place for new user registration to prevent spam bots. New users also can't set a URL/signature. Hopefully this will help cut down on the spam.
There was actually a predecessor of Colemak called ASERTH which was designed with keeping keys on the same finger. However this turned out to suboptimal in many ways (actually more confusing when switching back and forth to QWERTY, higher finger distance, higher same finger, no consideration of finger strength/dexterity, hand balance, etc.)
Here's how it looked for the curious:
qwfdg ymklp asetr huion' zxcvb j;,./
spermino, Klausler's research is fundamentally flawed, especially the third experiment. See previous discussion. If you'd look into the details on his experiment, you'll see that he basically discovered that for a single proficient Dvorak typist typing on a Dvorak keyboard layout, the Dvorak keyboard layout is optimal.
I would highly recommend the Ruby for people starting out with programming. It would also be my language of choice as a general purpose language and for web development.
Unfortunately Ruby is not well suited for CPU crunching tasks, that's why I suggested D for that task.
spermino, I personally find Ruby to be the least quirky language I've worked with.
I think Python made some usability and elegance sacrifices in order to achieve better performance. Because Ruby didn't make these sacrifices I think it's a more elegant, consistent, and easy to learn language.
e.g. immutable objects in Python to be very unintuitive. I don't think that a high level language should make things more complicated than C, e.g. changing "Hello world" to "Hello World"
Python: x = "Hello world"; x = x[:6] + x.upper() + x[7:] Ruby: x = "Hello world"; x.upcase!
Python has some unexpected syntax surprises, e.g.:
x = (2,2) # => x is a tuple x = (2) # => x is a integer (you need a trailing comma)
In Python, you have to think whether things are mutable or immutable, whether they are a proper object or a built-in type, etc.
In Ruby everything is an object, it makes everything easier, a lot more consistent and logical, and explorable and chainable. e.g.:
e.g. you can type:
And it will give you all the methods available on the number 5 (which is an object), alphabetically sorted backwards, that contain "to_" in them, joined by commas.
In Python, built-in types aren't proper objects for performance reasons.
Both languages have ample documentation, and a thriving community and ecosystem.
Python is a fine language and has better performance, and would be my second choice I'd recommend for a beginner.
nawfal, overall your layout is very good in most aspects, but it's not very good in the same-finger. I have explained many times why that is a critical element in designing a keyboard layout. However since it's the most difficult aspect of keyboard layout design, it is the aspect that is the easiest to compromise on.
Other aspects such as similarity to QWERTY, maintaining shortcuts, and ease of learning are also not taken into consideration.
For doing keyboard layout design, I would highly recommend the D programming language. It is a relatively obscure language, but it achieves performance on par with C/C++ with a much saner language design, and it's very easy to pick up if you already know C/C++/Java/C#.
The Workman layout is a layout that tries to gain a few extra percents of optimizing one factor, while completely neglecting other factors.
1. The layout doesn't maintain ZXCV in the same location. e.g. if you're working with different windows that have different keyboard layouts, it means you can't reliably copy and paste between windows. This also ignores the strong motor memory of these shortcuts. It makes it harder to learn, and more difficult if you're switching back and forth between layouts.
2. The layout moves more keys around, more keys move hands, they move further away. Many of the ease of learning elements in Colemak have been ignored.
3. Same finger is mostly ignored. It's quite bad on the ring fingers which aren't dexterous. You'll see people who complained in the forum about the same-finger of the WR/RW same-finger digraph on the ring finger in Colemak. Compare it to the PO/OP digraph on Workman which is an order of magnitude more common. Same-finger aren't a big deal in the beginning, but they become very problematic with high speed typing as they break the flow of typing.
4. Shift-Capslock is escape, which means that if you're typing words in uppercase by holding the shift, you can't make corrections without releasing and repressing the shift key, which is very annoying.
5. By optimizing for combos, it allows for quite long sequences of the same hand. Colemak IMO has a better balance between combos and hand alternation.
6. It has more row jumping than Colemak.
7. The letter D, which is the 10th most frequent letter in English gets a bad placement on the ring finger off the home row.
8. The research is based on a small corpus of six books, which skews all the statistics.
9. The author claims to be "Workman is now stable and better than before. There will be no more changes after October 3, 2010". There hasn't been any feedback yet from long-term users (I doubt even the author has used it for long), and it still has design flaws which means that either it will be changed again, or the flaws will be ignored.
10. The author claims "Typing ‘HE’ [on Colemak] forced the hand to make a very unnatural sideways twisting motion from the wrist and then back again". If you're twisting your wrists while typing, you're doing it wrong. Again the layout was optimized for the TH combo, while ignoring other typing statistics.
11. A project that only exists as a blog post, and doesn't even have it's own webpage doesn't inspire too much respect, or demonstrates any investment from the author.
I've added it to the list of alternatives layouts, but I think there are better ones out there.
If you'd look at the source code for the third experiment, you'll see that Peter Klausler's research is incredibly flawed, based on very bad statistics. My conclusion is that after collecting extremely biased statistics of timing data from a single Dvorak typist typing on the Dvorak layout, that a computer program couldn't produce a better keyboard layout.
28, /* h -> i -> p ms */
1033, /* t -> i -> p ms */
So according to his data t-i-p takes 36 times longer to type than h-i-p.