Announcing Miniredis
When I attended Open Source Bridge two weeks ago, I wanted something
to hack on while I was there. The upcoming version of Kiln moves from
relying on a combination of explicit threads and FogBugz’ heartbeat
mechanism to using a very lightweight queuing system backed by Redis.
The only problem is that Redis doesn’t run on Windows, and while that’s not
a problem for Kiln On Demand, where we rely heavily on FreeBSD for key
parts of Kiln’s infrastructure, the licensed version Kiln needs to run on…
Kiln 1.2 is Out!
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
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
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
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
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
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
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
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
“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…