Kiln 1.2 is Out!

May 11, 2010 | programming, technology
I try not to throw too many out-and-out advertisements into this blog, but I’m very proud to announce that Kiln 1.2 is out. When Kiln 1.0 shipped back in February, it was awesome, but still very much a 1.0 product. While Kiln’s still under heavy development, we’ve tremendously improved a lot of the little things that make the difference between “functional” and “fun,” and I’m happy to say that Kiln’s increasingly strongly in the latter camp. Since our initial launch, we’ve: Added custom…

The fighting's been fun and all, but it's time to shut up and get along

February 10, 2010 | programming, technology
About once a week, I get an email in my mailbox that reads like this: Hey, Kiln looks neat, but Git is totally the bee’s knees, so why the fuck are you using Mercurial? Note that these emails are rarely (if ever) actually interested in why Kiln chose Mercurial; what they’re instead interested in is trying to piss me off enough that I get into a flamewar about why Mercurial is going to bring about Nirvana while Git causes people to eat babies using nothing but A1 sauce and a spork. This is…

Kiln's Evolution, Part 2: From Prototype to Beta

February 9, 2010 | programming, technology
This article is a continuation of Kiln’s Evolution, Part 1: DVCS as Code Review. In the fall of 2008, Joel was getting increasingly adamant that FogBugz needed source control integration, and most people in the company seemed to think Subversion would probably be the best SCM to make that happen. Tyler and I disagreed, believing strongly that we should use a DVCS instead, and that our code review tool gave a really compelling example of why DVCS was better that any software shop would…

On Being Good

January 12, 2010 | politics, technology
Google’s motto is, “Don’t be evil.” I’ve always found that motto disturbing for two reasons. First, a company that can differentiate itself—successfully, no less—from its competitors merely by promising not to be evil implies that the average company is ridiculously corrupt. A person who announced, “My motto is, ‘don’t shoot people’” would be notable because no one thinks you should shoot people, making the promise weird and redundant—not because the promise represented some great sacrifice. …

Droid Update Makes Droid Not Suck

December 11, 2009 | technology
Well. At least it makes it suck less. I bought a Droid the day it came out. While it was a tremendous improvement over my BlackBerry, I’ve been disappointed with the phone overall. The battery cover comes off constantly ([2]2, [3]3), the phone’s proximity sensor was extraordinarily finicky (usually resulting in me hitting the “mute” button with my cheek in the middle of a call), the camera was all but useless, and, for reasons I did not really understand, my Android developer phone running…

Kiln's Evolution, Part 1: DVCS as Code Review

November 9, 2009 | personal, programming, technology
One of the things that really sucks about doing online code reviews is that, in all the systems I know, your code reviews do not integrate with your source control. If the code reviews are versioned at all—and they’re frequently not—then they’re in an entirely different system than your real VCS. For larger reviews, where you’re talking about a major piece of functionality, that means that your source control system will end up lacking the history of how a feature came to be. In other words,…

The Launch of a Secret Product

October 14, 2009 | personal, programming, technology
For the past year, an odd thing has happened, if you’ve followed my doings. My work on Fog Creek Copilot seemed to dwindle, I became tight-lipped about what I was working on, and I started getting really excited about an upcoming product release. Also around this time, my knowledge of Mercurial, Python, C#, and ASP.NET MVC all seemed to dramatically increase, even though my free-time code output shrank to nothing. What was going on? Oh, the usual. I was working on a top-secret brand-new…

local_settings.py Considered Harmful

October 2, 2009 | programming
One piece of increasingly conventional wisdom when developing Django applications is that your settings.py file ought to conclude with some variant of try: from local_settings import * except ImportError: pass the idea being that you can put a local_settings.py file on each server with the appropriate information for that site. I would challenge that this approach is wrong. By definition, you cannot put local_settings.py in version control, which means that a critical part of your…

The One in Which I Call Out Hacker News

July 1, 2009 | programming, technology
“Implementing caching would take thirty hours. Do you have thirty extra hours? No, you don’t. I actually have no idea how long it would take. Maybe it would take five minutes. Do you have five minutes? No. Why? Because I’m lying. It would take much longer than five minutes. That’s the eternal optimism of programmers.” — Professor Owen Astrachan during 23 Feb 2004 lecture for CPS 108 Accusing open-source software of being a royal pain to use is not a new argument; it’s been said before, by…

The One in Which I Say That Open-Source Software Sucks

June 30, 2009 | programming, technology
These days, arguing that open-source software is crap seems dumb. How many websites are powered by a combination of MySQL, PHP, and Apache? How many IT applications, written in Eclipse, run on Java, using SWT widgets? How many design studios rely heavily on The GIMP and Inkscape for their everyday photo-retouching and page layout needs? Er, wait. That last one. Doesn’t quite ring true. In fact, as good as most people seem to insist that Inkscape and The GIMP are, I’ve yet to see a major…