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).


I’ve been doing a lot of work this past week developing my own custom boilerplate for developing HTML5/CSS/JS projects. There’s a ton out there already (e.g., HTML5 Boilerplate) but I wanted to brew up my own environment just the way I like it. More than that, I wanted it to use some of the cool cutting-edge development tools out there, like SASS, Compass, l10n.js, LiveReload, and Sprockets. The result has been extremely gratifying and has already proven itself effective.

Reactive Design

Responsive Web Design is a huge movement in the web development world right now. Having one site that will automatically adjust to your device based on its display size is quickly becoming the norm. When I find myself on a website that hasn’t thought about their mobile experience, my face grows an automatic frowny-face. Thankfully, a lot of great html frameworks are giving us easy options to implement this type of development quickly and easily without adding unnecessary overhead into our clients’ budgets.

High Performance JavaScript Class Template

This is a post more for my own future reference than the rest of the world: I posted earlier with my standard JavaScript class template. While I favor that one for reasons of encapsulation, its performance is really not very optimized. Here is an alternate class template I use in cases where performance (or the quantity of objects) is more important. Most of this layout was lifted from iScroll. I’ve kept a lot of iScroll’s configuration settings as well.

AS3 Asynchronous ExternalInterface

As I may have mentioned before, AS3 performs its ExternalInterface operations synchronously. For the most part, this isn’t a big issue, but what happens when the javascript you need to execute grows extensive, or what if it is a slow operation? In these cases, it’s helpful to be able to make an ExternalInterface call that is asynchronous so your actionscript code can continue. The following example does exactly that. It provides a layer between your JS and your Flash for converting ExternalInterface.