About me

I love writing software and happen to make a living doing it. My goal is to make great things, which includes building great software. There's too much crappy software in the world already, I'd like to hopefully push things in a better direction. That's also the goal of this website: to spread the word about how and why you should strive to make great things.


My tools

I believe that building great software takes craftsmanship and that programming is as much art as science or engineering. As a craftsman, I use the best tools available, most of which are free. More importantly, I also customize them and build my own when needed. I encourage you to do the same.

Emacs

I think of emacs as my lightsaber, the tool I spend the most time honing my skills with, extremely difficult to learn, that's also saved my ass on more than one occasion. Emacs is a very strange beast; everything you've heard about it is completely true. It has an impossible learning curve and can do anything you can possibly imagine. One of my professors explained to me once: "You may not want all that power and customization now, but you will someday. When you do, you'll wish you'd learned emacs". So eventually I decided to take the plunge, and it was the best choice I've made in my entire career. Seriously. If you're at all curious, give it try for a couple weeks. I hope to eventually write a beginner emacs guide.

git

Even if you don't write software (and especially if you do) and you have documents that you make changes to, or want to share with friends, or backup remotely, you really should be using some kind of version control. This is basically what Apple's Time Machine does, except instead of backup up all your files, you keep just files for one project in a repository. Tangential to git are the very excellent github and gitx. github is a community of developers, where you can host projects for free that you're working on, or collaborate with others. gitx is simply a nice GUI for git on Mac OS X. If you don't belong to the cult of Mac, you can use git gui and gitk, which both come with the standard git install on Windows. Why should you use a GUI frontend for your command line based source control? Two words: visual diff.

Mac OS X

I have a unique perspective on Apple computers, that is, I didn't switch from Windows. When I was in college, I was introduced to Ubuntu, a Linux distribution. I shortly switched to using Linux full-time but kept a Windows computer for games and iTunes. I actually bought my Mac to do iPhone game programming, but school got in the way. Eventually, I wanted a Unix-based system for programming, but with iTunes for my music. There's only one Unix that runs iTunes natively, so I see my Mac as simply "The Unix with iTunes!". Included in the Unix part of Mac OS X is bash, which I used to use for command line work and scripting, and numerous command line tools (find and grep are my favorites). Mac OS X is a fantastic operating system lacking only a decent package manager. Homebrew is a package manager for OS X that works just like apt or yum. If there's no package for the software you want, you can easily add it to the repository for everyone to benefit from.

A big monitor

Anything at least 1920x1080 pixels is good, but monitor prices have really come down in price so I would recommend you go for a giant 27" at 2560x1440. You can get a good 1080p monitor for under $150 and the 27" Dell I linked to in the heading can be had for under $500. All that extra spaces really makes a huge difference in my productivity, and if you're going to be spending over $1000 on a computer, why not put all that hardware to good use with a nice monitor?


Just for Fun

These are websites I like that have nothing to do with programming. I think all the people on this list love what they do, and it shows in their work. Even if that work includes drawing pictures of imaginary half-bear, half-pterodactyls.

MovieBob

MovieBob is a boston-based movie critic that has exactly the same tastes in movies as me. If he says a movie will be awesome, I'll love it. If he says to skip it, I don't bother. He also writes some really insightful stuff about video games and comics. All of his reviews have some sort of historical background that gives a better perspective and a more complete understanding of the big picture.

xkcd

A more simply-drawn webcomic about programming and science, mostly. As a programmer, I appreciate the software related humor. Especially the comics about how programmers view non-programmers attitudes and interactions with computers.

Red Letter Media

I found out about these guys from their 60 minute Episode One review, which is one of the funniest things I've ever seen. They have a whole series of movies reviewed by their Mr. Plinkett character. They're extremely knowledgeable about the business of making movies and have taught me a lot about what makes a movie good or bad. Plus, they've seen way more movies than you or I ever will, so they have a much broader perspective.

The Oatmeal

Totally off-the-wall and brilliant comics. I can't even describe it other than to say that many times I read one of his comics, and I feel that it describes my feelings exactly, in a way I wasn't able to express or even be aware of. As a starter, take a look at his comic about how much he loves his dog.


About this website

This website was built using Sinatra, a simple and elegant web framework written in Ruby. You can find all the source code on my github. I want to actively encourage you to steal any elements you like and use them in your website. Remember: good artists copy, great artists steal.