Switching to Colemak

On Dec 23, 2016 I switched my keyboard layout to Colemak. Colemak is an alternative keyboard layout moving keys around with the intent of a more practical and improved ergonomic layout. This reduces the distance your fingers travel when typing English.

Why switch?

The primary reasons behind different keyboard layouts is preventing repetitive stress injuries and/or improved speed. I’m fortunate I don’t have any hand pain, and have been using a QWERTY for 30+ years and fairly adept, my QWERTY speed is around 80-90 WPM. My best Keyhero speed is 96 WPM. So any speed improvements would probably be negligible.

So why switch? Basically to see if I can teach this old dog a new trick. A good challenge to force my brain to work, create new grooves, and get out of a comfort zone. Plus I need to up our numbers here.

Why Colemak?

There are several alternative layouts, the most popular being Dvorak. I choose Colemak for a few reasons: (1) most of the punctuation is in the same place, (2) the most common keyboard shortcuts are in the same place. These two should make it easier to learn. Thirdly, if you’re going for an alternative layout you might as well go with an alternative to the alternatives.

Additional hack

An additional change I made is mapping the CapsLock key to Backspace, I need an extra backspaces key due to all the new errors I’m making.

How to switch?

My method was to switch cold turkey, just flip the operating system’s mapping and start practicing. I saved the keyboard mapping image for reference but it was just an hour or so to learn the key locations. Now it is just retraining the years of muscle memory.

Here’s the quick how to:

Mac OS X

Settings : Keyboard : Input Sources : + Colemak

While transitioning, I recommend Show Input Menu which allows for quick switch back to QWERTY if you need to, helps for long passwords.


I use the Mac utility Seil to map the Caps Lock to Delete.

Also, you probably will want to show the input menu on the login screen to save yourself; both before you learn and after in case you use stickers or move the keys around.



Command line: setxkbmap us -variant colemak

In Ubuntu use Tweak Tool to map Caps Lock to Backspace.


As for practice, I switched over Christmas break which was a good time since there is no expected productivity, so I had about 10 days practice. Plus an easy thing to do in bits of free time that doesn’t require any real concentration like programming.

The two main sites I use are Keyhero which has a good typing test, and TypingCat which has better practices.

My methodology is nothing more sophisticated than lots of time, practice, practice, practice. I switched without stickers or moving keys around, but will likely get stickers for consistency.

So far

I’m making slow and steady progress, an interesting thing I’ve noticed is I do much better on the typing tests than elsewhere; such as this post which I’m typing in Colemak. For typing tests, I’m only focusing on my typing, when I do other tasks which require thinking, my mind is less focused on typing and falls back to old muscle memory.

Also, oddly when writing with pen and paper my mind needs a second or two to figure out writing is the same.


See interactive chart on Codepen

Further Reading

Reading List 2016

A look back at what I read in 2016, broken into the best fiction and non-fiction. You can see my Goodreads Year in Books 2016 for the complete list. I set out with the goal to read 20 books in the year and ended up reading 30, woot! My goal for 2017 is 25 books.


Ready Player One by Ernest Cline – A really fun book! A lot of 80’s references and pop culture, which works for me since I’m a product of the 80’s and lived through the same period as the author. The story goes quick and a fun adventure, highly recommended, especially for the nostalgia.

The Nightingale by Kristin Hannah – A great book on the story of two sisters living in France during World War II. Even though it is fiction, similar stories likely happened throughout the war, amazing how difficult it must of been.

Charlie and the Chocolate Factory by Roald Dahl – A fun classic, we read it to our daughters (5,3) as their first chapter book and they were able to follow along the story and characters and really enjoyed it.


As You Wish by Cary Elwes – A light, fun and wonderful read about the making of The Princess Bride. Great to hear the cast and crew had such a great time making the movie, the joy shows through. If you’re a fan of the movie, you will enjoy this quick read recapping favorite moments and the behind the scenes look.

Search Inside Yourself by Chade-Meng Tan – An excellent book about practicing meditation, mindfulness, and kindness. How by doing so can lead to your happiness, and success — and even world peace. The author includes practical lessons to get started, explains it with research and case studies.

Unbroken by Laura Hillenbrand – An amazing story! This book illustrates the atrocities and hardships that come during war, plus highlights the human spirit and will to survive. You wish it was just fiction.

My 2017 To Read List

A few of the books on the top of my To-Read List, the first two are left over from 2016 list. I read a good deal of non-fiction last year, so may try to mix in more fiction. I hope to read the Dark Tower series which is 8 books, so would be a good set there.

Running Stats 2016

A year in review for my running in 2016, see previous years 2011, 2012, 2014, and 2015

2016 was a great year of running, I went out running over 100 times, my most ever. It was also the second most total miles, I ran more in 2011 when training for a full marathon.

I really fell off at the end of the year, cold weather and we got a puppy whose walks cut into some running time; but still pretty happy with the year and know I can do even better next year.


Total Miles: 525 miles
Total Time: 85 hrs 30 mins
Avg Pace: 9:46/mi
Total Days Run: 103 days

Races 2016

Date Race Distance Time Pace
May 22 San Carlos Rotary Fun Run 10k 56m 1s 9:01
Oct 29 Redwood City OktobeRun 13.1 mi 2h 24s 11:00

Year Totals

2006: ▇▇▇▇   63
2007: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  230
2008: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  246
2009: ▇   16
2010: ▇▇▇   56
2011: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  532
2012: ▇▇▇▇▇▇▇▇▇  145
2013: |    0
2014: ▇▇▇▇   72
2015: ▇▇▇   47
2016: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇  525

2016 Calendar View

You can see all my runs since 2006 in my Running calendar heatmap on Codepen. It is built using React, D3, and the calendar heatmap library. You can check out the source or fork if you want to make your own.

Playing with Technology

Listening to a Latino USA podcast they talked how MySpace encouraged people to learn technology. If you wanted to customize your page, you had to learn HTML, CSS, and how the web worked a little to modify it. This encouraged some to further learn technology and even be able to turn it into a career.

To some degree this is how I started, but I was lucky enough to be even earlier. To get anything online, not only did I need to know HTML, but also needed to learn Unix, networking, and servers basically all the basic plumbing that is simply packaged now.

WordPress was a big step forward introducing people to technology and requiring you to learn to customize. WordPress simplified lots of bits and created clear instructions on what to do, a little like LEGO. You still had to do the assembly of installing, configuring servers, databases, modifying code, and learn how the web worked.

The WordPress Community is clear proof how many people learned about technology using WordPress. In 2016, there were 642 WordCamps across 68 cities in 65 countries on 6 continents.

Today, sites like Facebook, Instagram, and Snapchat have none of those features or requirements to learn. Everything is packaged up and simple to use so there is no requirement to learn to improve, you just use and consume.

Even WordPress is getting easier to use, numerous companies provide hosted and configured WordPress installations all ready to use. Extending functionality using plugins and themes are just a couple of clicks now, you can easily build a site and customize now without ever having to see PHP.

None of this is necessarily bad, you want things to be easier to make progress and be able to reaching a wide audience. There’s no real reason for everyone to have to make and build their servers from scratch.

However, by removing any requirement to learn to use or customize, you limit people’s interest and curiosity. You also limit the potential in technology. Giving people with an interest and curiosity a little room to customize, explore, and play with technology can lead to new innovations.

This same pattern can be seen outside of technology. For example, my Dad is a decent carpenter, and fairly good handy man, he probably can fix anything around his house. Most of this was out of necessity, not any magic proclivity towards it. This is probably similar to most of his generation, things were expensive. If you wanted a table, it was 100x cheaper to buy wood and build it. There wasn’t an IKEA. If something broke, you fixed it.

I myself can manage putting together IKEA furniture, and marginally handy around the house. If it gets any more complicated than hanging a light fixture, I’m either calling my Dad or hiring a Pro. The next generation can hire a professional to put together their IKEA furniture and all sorts of handy man services.

As society progresses, everything becomes more and more specialized, people know less and less about how things work around them. A balance is needed to keep things simple to use, but should include the ability to extend and learn.

Apps like Instagram or Snapchat could encourage programming by allowing users to create and share custom filters, instead of just their few engineers. Facebook once had the ability to build widgets and tools people could add to their profile, but has been simplified down to appease to advertisers. Like MySpace showed us, things can get pretty ugly when its open, but learning can be a little dirty. It’s ok.

Black Friday / Cyber Monday

The best thing about Black Friday and Cyber Monday is it alerts me to all the mailing lists I’ve not yet unsubscribed from. Get a little Spring Cleaning done in the Fall.

I never understand the survey options for unsubscribe, the first one, which I always pick, “I no longer want to receive these emails”. Isn’t that the definition of unsubscribe? It doesn’t really tell them anything, does it?