New Look

Yes, it was time to change the look of the blog. I was getting tired of the bloghaus skin.

Since I am no web designer, and have better things to do than creating skins, I looked for free ready-made nucleus skins. There aren’t many. There are even fewer good ones. This one is one of the best (which means you’ve probably seen it in lots of other places, too). I want to customize it more, I just added the ‘Recent Entries’ list on the left, but I’m not happy with the grey colors, so they’ll have to go next.

I also need to find a way to tell the Smart Breaks plugin not to mess up my source code. This blog will always contain code that’s meant to be formatted, and I’ve got to have a way to make it not mess with <pre>. Another day.

9 women can give birth in 1 month.

I am constantly surprised at how many people seem to believe that. When I see a software project where people are added to the team on a massive scale just months before it’s supposd to go into beta, for example. But that’s not the only case of misunderstanding the way programmers work.

When you’re given the choice of making a product in 4 years with 20 people, or 2 years with 40 people, the latter will always give you worse results. As a programmer, my efficiency increases with time as I massage the code and get acquainted with it. As an example, coming to Anarchy Online it took me a week to fix the very first small bug I had been assigned. Today, it takes me a few minutes to find the cause and make a fix for an obscure bug, becasue I know the code so well, and I have experience from the myriad of other bugs I’ve seen over the years. My productivity is at least ten times what it was 4 years ago. In some cases maybe a hundred times.

You cannot hire enough people to compensate for that. Letting a good programmer go before the end of the project and replacing him with two new people is almost always a bad trade. On a project with a four year development cycle, you will see the best work being done in the last year, and the least efficiency in the first year. If you cut the time down to two years, you don’t get a more efficient first year, but you lose the very productive last two.

This point is surprisingly difficult to drive home when you work with investors that want to make a quick buck.

I am now in my fifth year at Funcom, and I’m back working with Anarchy Online, where I started. A freind asked me whether doing “maintenance programming” wasn’t boring. I really don’t like the term, it sounds like janitor’s work. And I told her that I really thoroughly enjoy what I do now. I am on really familiar ground, which lets me excel at what I do. I go home with a feeling of achievement every day, because the day is finally long enough to get things done. And I get to finish things properly, because there’s no “we need this, this, and this done before E3” sword hangin over me all the time.

Let there be time

I just found this in the ACE_Time_Value.h header.

// Static constant to remove time skew between FILETIME and POSIX
// time.  POSIX and Win32 use different epochs (Jan. 1, 1970 v.s.
// Jan. 1, 1601).  The following constant defines the difference
// in 100ns ticks.
//
// In the beginning (Jan. 1, 1601), there was no time and no
// computer.
// And Bill said: "Let there be time," and there was time....

I wonder why Microsoft chose that epoch. Or why Posix chose theirs. 1970 seems way too recent to be a good epoch.