Introducing vim

So you want to learn the way of vim? What have you heard? The learning curve is high; you’ll need to type obscure commands just to quit? There is learning ahead, true, but it’s not like that at all. Frankly, you can learn to use vim in 20 minutes with a tutor you already have on your system. Try it out: vimtutor In a week you’ll surpass your speed in your old editor (Disclaimer: any bashing of other editors here does not mean to include emacs.

For Parents

My son was born in the summer of 2012, capping off one of my most intense years. He was a month early, arriving the very night after being blessed in the womb by over one hundred Jesuit priests. Despite not having the crib assembled, we weren’t completely caught off guard. For one thing, my camera was charged and ready to go. Photos of the kid completely took over my Flickr account.

Vim in Context

I’ve mentioned before that I firmly love vim and use it for just about everything. Well, that’s probably underselling it. I spent most of this Saturday taking my copious notes and materials that I use to write my book and moving them into a Markdown work-flow, powered by vim. At the heart of this move is an absolutely wonderful series of plugins written by Reed Esau. The most famous of these is vim-pencil (links to the others are at the bottom of his README) which has too many awesome writing enhancements to count here.


With wearable devices on the rise, small screen and no-screen user experience is a hot topic. We’ve been witnessing powerhouses in industrial and technical design take on the problem over the last two years, but the market’s response continues to be lackluster. What is it about this format is holding us back? On the one hand, some argue that the limited screen size means we can only show very little information at a time.


If you want to start a war between coders, just ask them to start describing their tools. Text editors, programming languages, and even platforms form entrenched camps of dispute. Even so, like the great religions of the world, we cannot but help proselytizing about the virtues of our one true way. This post is no different. I’ve been coding a long time and I’ve had all that time to become embittered and crotchety about my development environments.

Regular Expressions

This post is a HOWTO guide I wrote for my development team. I thought it would have some better sharability here. Regular expressions, or regex, are a symbolic language that can define or identify a sequence of characters. This language can then be used to test, match, or replace a given body of text. By test we mean it can evaluate if text is equivalent to the regex we defined.


This past weekend I finally shed my Wordpress blogs and moved into the world of static site publishing. This site, and my personal blog are now built using Pelican, a Python based static site generator. What does that mean, exactly? Well, for one thing, it means I no longer have to worry about someone exploiting a vulnerability in my server-side code to run malicious code or take over my website. My blogs may not be very popular or have much appeal to them from that perspective, but it’s best to be safe anyway.

Open Source Science

Mark this one down in the list of cool ideas I’ll never follow through with. “Github meets Academic Publishing.” Here’s the full idea: We create an open system for people to share their scientific studies by providing them with all the tools, visualizations, and data warehousing necessary to truly host the science. Then, the community can rate the project, duplicate the results, grow from it, or reference it in another work.

git changelist

Today I needed to get a list of all the files that had changed in a git repository over the last two weeks. I played around with some great git commands, awk and sort to make the following git alias (toss it in the [Alias] block of your .gitconfig): changelist = "!git whatchanged --since='\$1' --oneline | awk '/\^:/ {print \$6}' | sort -u; \#" To use: git changelist "2 weeks ago" You can use a lot of different unix date formats in there.

Chess Ratings

See it in action The development team where I work will soon be celebrating the launch of our new company website a good old fashioned chess tournament. Now, like any good development team, we have our fair share of geeks; geeks with interests in a wide variety of geekery. One such geek is a big fan of fantasy sports, so we tasked him with organizing said tournament. As a result, we will be doing a round-robin tournament to establish a relative ELO rating for each player, then use these ratings to seed a double elimination bracket tournament (I’m about 60% sure I got the names right for all that stuff).