March 4th, 2008

Munging the Entire Codebase

Entertainingly, that's a pretty good description of the project that I've embarked upon at work, having finally succeeded in creating a new ClearCase view to do it in. I'm making a change to a part of the system that hasn't been really touched since 1995 or thereabouts and the reverberations are going to be tremendous.

Historically, we've keyed the accounts in our system using a 32-bit integer, which we subdivide internally into three segments of 4, 2, and 3 digits. I'm converting this to be three alphanumeric fields of arbitrary length, but with the same basic meanings as the three pre-existing segments. This means I need to start from the bottom of the system and work up until everyone agrees on the new key format.

Now it happens that the old keys were sometimes wrapped in another class that also carried additional keys for dimensional instances of the accounts. And after trying a little of this and a little of that, I realized that my life was going to be absolutely miserable unless I simply converted the old 32-bit integer key to a new class all its own which I could then embed inside the existing class.

So that's what I'm doing now, hacking and slashing my way through the code and killing off the hundreds of resulting compilation errors. You change something here, then you run and change something there, then...

Once this is done, I can move on to the next phase of the project where I rearrange the entire account structure, but one step at a time. :)

Campaign Finance Reform

I was chatting with a friend about campaign finance reform and I think I came up with this idea -- although in such conversations it's possible to lose track of who started it. :)

Instead of trying to limit campaign contributions from corporations, or labor, or whomever, allow anyone to give as much money as they want to. The only restriction is that whenever the candidate appears in public, he has to wear a jumpsuit like a NASCAR driver with patches from all of his "sponsors" with the size of the patches relative to the size of the contributions.

Imagine a candidate with a giant Microsoft logo splashed across his chest...