Ask aimee: When/why did you decide to switch to Colemak?

Here is the start of a new series of questions that i get asked on twitter but the answer is too long for a tweet. It’s egocentrically called: “Ask aimee” :)

Ash Moran asks:

@sermoa When/why did you decide switch to Colemak?

To understand the context of this tweet, you need to know that Colemak is a keyboard layout, an alternative to QWERTY which is what most of the English speaking world uses to type.

A history lesson

QWERTY first appeared in about 1873, the result of several years’ work by inventor Christopher Sholes. QWERTY was designed for typewriters. The letters of word ‘typewriter’ are all in the top row. QWERTY separates common letters to reduce key jamming. Interestingly, this separation of common letters also makes it good for small touch screen devices with intelligent word guessing, so it’s not all bad!

Dvorak was designed in 1932 by Professor August Dvorak. Its intention was to improve the comfort of typing through several methods, notably by putting the most common letters on the home row and alternating hands as much as possible (all the vowels are in the left hand).

Colemak was released in 2006 and is the work of Shai Coleman. Colemak was designed with the aid of sophisticated computer software to work out the optimal position of the keys. It also minimises the moving of keys away from QWERTY, making it easier to switch. Actually, only 17 keys are different, and most of those are either in the same hand or on the same finger. Z, X, C and V all remain, as do all of the punctuation characters, which is a major win over Dvorak.

My own history of keyboard layouts

I used to be reasonably fast on QWERTY. I’m a pianist, which i think helps a bit. I reckon i was probably about 70wpm (words per minute) on QWERTY, which is not too bad.

I switched to Dvorak in 2002. Colemak had not even been invented yet! I switched because a friend did. Some nerdy part of me thought it looked like fun, and i always enjoy a challenge! I spend a significant portion of my life typing, so anything that makes it easier or more comfortable is good for me! At my peak i got to 110wpm with Dvorak.

I think i heard about Colemak in 2009. I actually started to learn it back then, but i didn’t stick with it. The primary reason for that is the company i was working for started to favour pair programming at about the same time. Switching keyboard layouts on the OS is not a lot of fun. I had a TypeMatrix keyboard which can send Dvorak keystrokes from the hardware level, so with two programmers and two keyboards there isn’t a problem.

By then i already suspected that Colemak was a superior layout, and although i continued with Dvorak, i recommended Colemak to anyone who asked!

If only i had known then that the TypeMatrix could also support Colemak layout! For some reason they don’t publicise it, but you can get Colemak layout simply by pressing Fn+F5.

Switching to Colemak

I switched to Colemak in February 2011, after Tom Brand discovered the TypeMatrix supports it. Again, i was influenced to learn it because Tom was learning and i felt i would get left behind! But it was this keyboard layout analyzer that convinced me for sure. I pasted in some code, some emails i’d written, and some tweets, and in every case not only was Colemak superior to Dvorak, but it was also pretty close to the optimal layout if i had a custom keyboard designed just for me. That was my compelling reason to switch.

It has now been 5 months and i’m up to about 80wpm on Colemak. I want to get faster, i want to make fewer mistakes, but i am extremely happy with my decision to switch. Right from the first month i could feel that Colemak was more comfortable. I felt totally grounded in the home row. All my punctuation keys were back where they should be. I noticed faults in the Dvorak layout that i’d never noticed before.

I am now loudly and proudly #teamcolemak :D

Seven Languages blog aggregation

I have made a blog aggregator in Yahoo Pipes to combine the blogs of multiple people who are taking part in the Seven Languages in Seven Weeks challenge.

There are easy links to add it to google reader, netvibes, bloglines etc.

I have also set up a twitter account that will tweet out the links to the blog posts.

If you’re taking part and blogging, let me know the URL and i’ll add your blog to the aggregation feed! :)

New Minimalist blog theme

I’ve been unhappy with my blog theme for a long time now. It was slow to load, and i didn’t feel the style was a good fit for me anymore. I upgraded to WordPress 3.0 last night and, as is so often the case after an upgrade, i like to look for a new theme. I’ve enjoyed the white and grey minimalistic style that i’ve had on twitter for a while now, so i looked for something similar, and i found this:

Minimalistic blog theme

Minimalist theme by Joey Robinson

I really like the simplicity: the reduction of clutter. Both the posts and the sidebar expand when clicked, to show one section at a time. I’m finding it a bit hard to get used to the uppercase, but i’m not opposed enough to want to change it.

One particularly nice thing about the theme is that it’s customisable. If you don’t like it on white, you can change it to black, blue, grey or green.

By sermoa Posted in admin

A simple backup strategy

Today i scanned several of my university lecture notes into PDF format. The ScanSnap document scanner makes this a very fast and easy process, and it includes text recognition. This feels good: i can save physical space by throwing away my notes, but still have them usefully available to me, in searchable format! yay!

Now that i’ve scanned these, i want to be sure that i don’t lose them. I’ve never been much of a person for backups, to be honest. My idea of a backup is something i do just before i upgrade Linux! But i’ve started to think i’d like to get into at least semi-regular backing up.

With that in mind, i came across this article: What’s Your Backup Strategy? by Jeff Atwood. The proposed solution works on Linux! Funny, i always assumed rsync was a ruby library: turns out it’s a straightforward command line tool.

sudo rsync -vaxE --delete --ignore-errors /home/aimee /media/FREECOM\ HDD/

That was enough to get me a first backup onto an external hard drive. Now it’s just a case of running that periodically to keep it up to date.

I’m not particularly interested in having a cron job because my computer isn’t always on, and the external drive isn’t always plugged in. So i just made myself a simple executable file to sit on the desktop and remind me to click it and synchronise the backup every so often.


target=/media/FREECOM\ HDD/

echo Backing up $source to $target
read -p "Press enter to begin."
sudo rsync -vaxE --delete --ignore-errors "$source" "$target"
read -p "Press enter to close."

See, i said it was simple! But a simple solution is better than no backup solution at all, right? :) Now that i’ve started with something i can tweak it as i find necessary.

By the way, i love the quote of Jeff’s in that article: The universe tends toward maximum irony. Don’t push it.

Let's Disqus!

Just a little notice to say that i have enabled Disqus on my blog. It’s a pretty clever tool that links up comments on blogs all over the Internet. When you hover over the picture of somebody who has commented on my blog, you also see some of the comments they have left on other blogs. You might also see their Twitter status, or get a link to their Flickr account, their Delicious account, their Facebook.

Here’s an example of how it can look:


It’s a really neat way of bringing the web closer together. For me it’s also a great advantage in that it immediately gave me nested comments and the ability to send email replies to people who have commented. I thought i was going to have to make some fairly hefty changes to my WordPress theme in order to enable nested comments, but it turns out Disqus can just do it all for me!

Oh yes, you also get to rate other people’s comments up or down, youtube-stylee! ;)

Disqus is particularly good in that it works across multiple blogging platforms. So i installed the WordPress plugin, but there are also plugins for Blogger, Moveable Type, Tumblr and more. Wouldn’t it be great if LiveJournal would take it up? :)

Thank you to ChrisMDP for finding Disqus and telling me about it! :)

GeoURL WordPress plugin now available!

My plugin got approved, and it is available for download here: GeoURL WordPress plugin.

Apparently it has had 18 downloads already. Okay, one of them was me, just testing it zipped up correctly, but even so … have i helped 17 blogs to become GeoURL enabled?! :)

I wish there was a way to tell who has installed it … would be lovely to see it in action for other people!

In other news, Twitter has been so thrilled by the UK snow that the hashtag #uksnow has been at the top of the trending topics all afternoon! It’s quite fun to watch and see the tweets fly in from around the UK. People are giving marks out of ten for their area, and posting pictures of good snow scenes! :)

We don’t get good snow very often in the UK, and we are predicted 15cm by the morning! That will require wellies to walk to work!! It’s the heaviest snowfall in 6 years apparently, so you can understand why we’re all so excited!

GeoURL – a new WordPress plugin

Whoops, it’s another late night, but … i just wrote a WordPress plugin!

Every time i change my theme i hardcode in the meta tags for GeoURL to detect my location. GeoURL is then able to find other sites that are geographically nearby. It gives me a little button link to use, like this:


The way this works is very simple: just poking these meta tags into the header of my blog page:

Note, that is not *exactly* where i live – it is just somewhere random near the centre of Winchester!

I thought there must be an easier way than hardcoding the meta tags into the theme. I had a look but didn’t find a plugin for it, so i made one myself! :) It allows you to easily add your location coordinates and ping the GeoURL server. Pretty simple, but i’ll find it useful. It’s already working on my own blog and once i get a subversion repository from WordPress, i’ll upload it for sharing! :)

A beautiful new theme!

Whenever i upgrade WordPress i am usually so impressed with the elegance of the admin area that i tend to feel it’s time to change the front end theme.

To that end, i have said goodbye to the theme i had with WordPress 2.5 …

Wordpress 2.5

And welcome to my new theme for WordPress 2.7 …

Wordpress 2.7

It is the WPTD Green Theme 1 found on

I have also downloaded a couple of new plugins, most notably the very nice WP-Syntax plugin for displaying code nicely. An example is my tutorial about attachments with CouchDB on Rails.


So beautiful! Of course i spent the entire last night tagging every piece of code in my blog with the correct language attribute so that it could be displayed with pretty syntax highlighting!

This morning i reinstated my blog as an OpenID URL, using the MyOpenID plugin. Previously i had hardcoded the meta lines into the theme, but it makes more sense to use a plugin. I am also trying out the Twitter for WordPress plugin but i don’t like the way it works. I prefer it to update via JavaScript. Maybe i’ll find another plugin, or write my own.

There is another simple plugin that i’m intending to write, but i’ll make another blog post about that when i’ve done it! :D

By sermoa Posted in admin

WordPress 2.7

I have upgraded my WordPress! :) It has been nagging me for so long about it, and i’ve just been ignoring it, but tonight i just came home and felt in the mood for an upgrade. Our company blog is on WordPress 2.7 and i really like the colour scheme and style of 2.7, plus i want to install a couple of new plugins.

Suddenly i feel i’d like a new theme too. Perhaps i’ll have a look for one tonight. Nothing better to do on a Friday night, hey?! ;)

By sermoa Posted in admin

Better blogging

So yesterday’s post was actually not the last post of the year! :)

A few nights ago i saw somebody’s blog had little icons next to comments, showing the country, browser and operating system of each commenter. I found that quite interesting and decided i wanted the same on my blog. I discovered that it is part of the FireStats plugin and so i installed it. Little did i know the impact that it was about to have on me!

FireStats reveals a whole lot of fascinating information about who is visiting your blog. Suddenly i can see the most popular posts, find out the search terms that people used to get here, or the referrer page that sent them here. I used to think i was just writing my blog for a few friends, but now i see that people are coming from all over the world, mostly for information about CouchDB and … Caturday! HAHA! I haven’t done a Caturday post for ages! Perhaps i should start doing them again!

So i put up the “Currently popular” widget in the navigator. It’s pretty nifty because it changes every day. I also installed a few more plugins and made a few tweaks:

  • I enabled title slugs in the URL for all my posts. The old URLs still work, however.
  • Yet Another Related Posts Plugin puts links to related posts at the bottom of each post. It calculates ‘related’ by category, title and content. It’s pretty good! I have been reminded of old posts that i’d forgotten about!
  • Unfancy Quote Plugin has removed the so-called curly quotes that were appearing where i did not want them – ie in example code
  • WP Super Cache ensures speedy rendering of pages, particularly if hundreds of people were to look at a page all at once. Instead of continually querying the database, once it knows the content of a particular page, it can just display the cached version.

WordPress plugins are so for the win!

* * *

In other news, i finished reading Design Patterns today. It wasn’t such a hard read as i thought it would be; it’s actually quite easy to read one or two patterns at a time. The summaries are also very useful, for comparing and contrasting different patterns.

The State and Strategy patterns were quite obvious. Mediator seems almost the same as Observer to me. No matter how many times i read and understand the difference between Adapter and Bridge, i cannot seem to remember it long-term. Memento is my favourite pattern. It’s like asking someone, “Please remind me of this in a minute!” and they say, “Oh, okay” even though they have no idea what it means!

Visitor seems to me like the stupidest pattern ever, but maybe i have misunderstood it. It seems to contradict everything that makes sense about object-oriented programming, to have something that goes around doing things to other objects, violating encapsulation, and it has to be hard-coded to deal differently with different objects. It makes me think of Aspect-oriented programming actually.

I went to the library and borrowed a book for the holiday: Why Is Uranus Upside Down? And Other Questions About the Universe by Fred Watson. A nice bit of light reading, i think! ;)