There is more up-to-date information about me on other sites:



This section is very outdated. Please see my tech skills page instead.

I'm a programmer by trade, but I end up doing a lot of systems administration-type stuff both professionally (and at home).

+++++PerlPerl has been my favorite language for a long time, but it's being pushed out by Ruby. I use Perl dozens of times per day via the command line, if only to ferry things from one xargs to another. I have a PAUSE ID [BENIZI], but getting that ID coïncided with getting a job where I wasn't using Perl for the reasons I wanted to write modules.
+++++RubyRuby has displaced Perl for the majority of my for-myself scripts. I particularly like the goals of interoperability, especially in JRuby.
++++PHPPHP is what I use at my day job. I abhor its mishmash of inconsistently-named functions. I've been using PHP on a daily basis for two years, but I still have to look up the argument order for strpos(haystack, needle) every time I use it. Despite all that, when using it in a class-based manner, it's performant enough and easy enough to code, that it can be pretty fun to use.
++++++GitI use git constantly. At my current job, where we're stuck with SVN, I use git-svn.
++++FUSEFUSE is a way to write fake filesystems in order to present non-filesystem data as if it were actual files. I've written a git FUSE system to access any commit in a git repository as if it were a directory tree.
++++PluginsI enjoy writing plugins for software I use. I used Greasemonkey until I (basically) stopped using Firefox. Now I write user.js scripts for Chrome. Unsatisfied with Pidgin's lack of popup notifications, I wrote a Python plugin to shell out to notify-send. I have a handful of urxvt plugins.
++++++VimI use Vim for virtually everything I code. Between the dbext plugin, which allows me to run SQL directly within a Vim buffer, and eclim, which lets you use Eclipse's code analysis without actually running Eclipse all the time, I rarely have reason to leave.
+++++Gentoo LinuxDespite not being an advocate of the idea that "Everyone should use Linux," I've used Linux as my sole O/S since 1999 (RedHat early on, Gentoo starting around 2001). Even when I was doing .NET development, I only had Windows on a work-only laptop.
-+WindowsIf forced to work in a Windows environment, Cygwin makes it palatable. I just can't stand the mouse-oriented nature of the beast. And, despite not being a "Linux for everyone" zealot
-+.NET (C♯)The closed-source nature of C♯ bit me too many times to really embrace it. But, man, is Visual Studio's Intellisense® a slick piece of software.
++++dwmEven though I probably don't use it "right", dwm is my favorite window manager. I still tend to use it in a "desktop" paradigm, despite its being a "tagging", tiled WM.

I've contributed minor patches to several software packages:

  • Vim patches 7.3.044, 7.3.298, and 7.3.314.
  • Prevent distcc's avahi from picking up the same host multiple times due to being accessible via both IPv6 and IPv4.

I'm active to some degree on several mailing lists:


Short version

This is just a short list of where I've worked. For more information, see my résumé.

I have a younger sister, Elisabeth Haskell. She and my parents, Charles T. “Tom”, III and Marlene Haskell, live in Omaha, Nebraska, where I grew up.


See the places I've lived on a map.

  • Pittsburgh, Pennsylvania. 2006—.
  • Mountain View, California. May–August 2006.
  • Princeton, New Jersey. 2004–2006.
  • West Windsor, New Jersey. 2003–2004.
  • Princeton, New Jersey. 1999–2003.
  • Omaha, Nebraska. 1981–1999.

Personal sites

Sites I designed and/or still maintain for others