Monday, September 22, 2008

computer dreams

I was having a lame dream last night when I woke up. In my dream, the huge software project I've been working on had achieved self awareness (it's just a big web site, we're not trying to build artificial intelligence). And in the dream, we had given the project a female personality. And it started hitting on me. Not in a nice way either. It was in a scary, fatal attraction way.

I gotta get off this project already.

Tuesday, September 09, 2008

2008 git survey

Try taking the git survey. It's a little long, but you can just skip over anything that looks too long or you don't want to answer.

Friday, September 05, 2008

how is subversion still alive?

I first looked into Subversion (SVN) many years ago, after hearing its slogan: "CVS done right". This sounded good to me at the time, and I'll allow that at some point, maybe it made sense. I wasn't using it seriously at the time and only gave it a superficial lookover. It seemed pretty good.

The other day I was just looking into it more seriously because I'm now using it at work. Wow. What a pos. If you're a Subversion user, please excuse me. To those of us who have seen the light of distributed SCMs, Subversion might as well be Visual SourceSafe. By that I mean that Subversion is more similar to Visual SourceSafe than it is to modern distributed SCMs like git or mercurial.

The most amazing thing about Subversion is that it has no branch or tag commands. Instead, it has a bizarre "copy" command that does utterly different things depending on whether the arguments you pass refer to the working copy or a URL. One permutation copies a file and schedules it to be committed. Another permutation immediately commits the working copy to a URL. What does that even mean and why do I want to risk doing it accidentally when I really meant to do "cp file new_file; svn commit new_file;"?

A third permutation branches or "tags" the repository. First, to actually branch, you need to know the repository layout. Repositories are so simple that this online book devotes an entire chapter about how to choose one. Why should I have to care about a repository layout? Even CVS has the good sense to just give me a simple, straight-forward branch or tag command.

The other insane thing about SVN is that tags aren't fixed. They're exactly the same as branches and can be committed to. Seriously? Wtf is the point of that? To make them fixed, you have to read another chapter about access control scripts. And people say git is hard to learn...

Apparently Subversion's developers are continuing to work on it, trying to catch up by adding features like offline commits and merge tracking that are inherently part of a true distributed SCM. Subversion, please give up and start using git or hg, they already do all the things you wish SVN could do one day. It's time for Subversion to retire.

Monday, September 01, 2008

Even on IMAX, The Dark Knight wasn't that great

I went to see the Dark Knight in IMAX at 8:45pm Friday night. Even though we got there early, it was still sold out. So we got tickets for the 12:30am showing and went to dinner to kill time. It's hard to kill 4 hours though so we still had to wait a while. And by 12:30 I was quite tired already and kind of wished I was home in bed.

Maybe I just had the wrong attitude going in, but even on IMAX I found it underwhelming. I did see why people are so impressed by Heath Ledger, but the rest just left me feeling like I endured it, rather than enjoyed it. Maybe it would be better earlier in the day and without having to wait 4 hours.