Core skills

09 Mar 2011

Lately I've been trying to focus on my core skills. Nothing is more essential to a programmer than getting code written down and that is between your fingers and your editor.

In terms of fingers, I recently revisted (ok, visited for the first time) touch typing. This was an experience for me since I could type decently fast, but was only using a subset of my fingers to do so. I printed out and taped the fingering chart at my desk at work and at home and even switched to a natural keyboard to enforce the correct hands for the middle keys.

The result? I now use more of my fingers and I can use natural keyboards, but I wouldn't say I'm a pure touch typer. I think that overall my speed has improved and is slightly improving as I go along. At least my ring fingers have more to do now.

In terms of my editor, I use (g)vim and have been trying to learn more and more about how to make it work for me. Part of this is collecting the right plugins and writing a config that works with you to use those plugins. To that effort, I reconsolidated my .vim directory to use gitsubmodules and pathogen and put it up on github. I modeled it after this post by Tammer Saleh and have found it extremely easy to manage.

One of the most useful things about setting your configuration up this way is that I can go to a box, whether it's a remote machine or a friend's who doesn't use vim and simply run:

$ ruby .vim/install.rb

and it will symlink (with prompts when replacing) .vim and .gvim into your home folder as well as initialize the submodules and compile CommandT.

I've found between the plugins I've decided to use and mnemonic style leader mappings, I've been able to vastly increase my productivty. This is mostly due to my newfound ability to open a project and dive into the code with ease. This is especially useful for ruby gems.

If you use vim, I'd highly suggest this approach. Also, check out to learn some new tricks and techniques.

Setting up Jekyll

02 Mar 2011

So I set up a new blog, which is pretty ordinary these days. I'd say most tech guys like me already have one, but that would be a lie as I don't know of a single co-worker who does. I figured that since I'd like to talk about technical things I'm doing that starting with the blog engine I'm using would be fitting. Here goes.

Jekyll is a lightweight blogging engine based out of a git project. Essentially, every time you make changes like adding a page or changing some styling you need to 'build' your site. This creates the appropriate html pages as well as supplemental information like a sitemap and RSS feed. To start, you need to get the Jekyll Gem.

$ gem install jekyll

I didn't want to have to start from complete scratch when creating my site, so I used Kris Brown's template.

$ git clone blog

This template comes with a few extra conveniences, most notable are SASS, jQuery, Google Analytics and Disqus. The configuration for these can be found in _config.yml. Start your local Jekyll webserver with jekyll --auto --server. It will compile the site automatically as you make changes. I then proceeded to update the HTML and SASS to my liking. Use compass watch to avoid having to rebuild your SCSS into CSS all the time.

Once you're ready to see it live, deploy it to github. To do this, all you need to do is initialize your project and push it to a repo in your account called <login> In my case, this is From within your projcet, do:

$ git init
$ git remote add origin<login>/<login>
$ git push origin master

Github will build your site for you and send you an email.

Fork me on GitHub