Wednesday, September 15, 2010

Learning a new Keyboard Layout

A friend of mine asked me about how I learned Colemak and I sent him this email; thought I’d flesh it out and share.

  • Decide on layout
    • Colemak was the best I’ve found given I already touch-typed QWERTY
    • Go here, paste in a bunch of text that you’ve typed, and then look over the analysis on how far your fingers would have to move in order to type it: http://patorjk.com/keyboard-layout-analyzer/
    • For this email (minus this bullet), Colemak is the best mainstream layout (32.68meters of finger travel), Dvorak 2nd (33.39m) and QWERTY the worst (51.86m). Again, for me, given the amount of similarity to the QWERTY layout, Colemak became the obvious choice for me.
    • Do your own research and look for some of the ergonomic studies that are out there.
  • Typing tutor software to help you learn
  • Making the switch
    • I practiced with TypeFaster in the evenings until I could type with mid 80s% accuracy and ~20wpm. That took a month, maybe more.
    • Then, I went cold turkey. It was painful. I couldn’t really type in either Colemak or QWERTY. My thoughts got stuck and couldn’t get out of brain and into the keys.
    • You will get here, you will feel the emotional agony, and you must move forward. Stick with it.
    • If you are thinking about they layout as a “letter-to-key” lookup map (which is naturally how you start), you need to switch to thinking about “speaking with your fingers.” It’s hard to explain, but as the thoughts form as words in your mind, you can’t think letter by letter—the thoughts and phones must naturally express themselves as finger movements, just as the thoughts and phones naturally become mouth and tongue movements when you speak. (Inspired by this post.)
  • Nice keyboards – learn about the various key switch technologies - http://hothardware.com/cs/blogs/mrtg/archive/2009/03/08/mechanical-key-switch-keyboards-demystified.aspx
  • If you want to find some REAL nerdy keyboard stuff, this forum is the place: http://geekhack.org/

Tuesday, September 14, 2010

Colemak, II

I’ve been typing full-time on Colemak now for a few months and it’s really going quite well. I stumble and make a few typos, but it is continually getting better. I just ran a test and scored 67wpm @ 99.6% accuracy. (That’s an upper end test; I am probably closer to mid-50s on average.) I’m declaring victory.

Sunday, September 05, 2010

ASP.NET MVC No Caching Attribute

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Application
{
    /// <summary>
    /// Add this attribute to your Actions and they will have a "Cache-Control: private, max-age=0" header,
    /// ensuring that the responses are not cached by the user's browser. 
    /// </summary>
    public class NoCachingAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            base.OnActionExecuted(filterContext);
            filterContext.HttpContext.Response.CacheControl = "private";
            filterContext.HttpContext.Response.Cache.SetMaxAge(TimeSpan.FromSeconds(0));
        }
    }
}