Best laid plans, and all that.

When I came out of work on Thursday, even though the sun was down my car thermometer said it was an unseasonably warm 60 degrees F. The next morning, I took a quick glance at the weather widget on my Powerbook’s Dashboard, and it said that it was going up to 65. And thus a half-baked plan was born. I quickly put my kayak on my roof rack, which has been left on my car just in case such a day happened.

The intention was to sneak out for a few hours around lunch time and enjoy one last paddle for the year. Unfortunately reality interferred. It turns out that I’d read the weather widget before it had updated, and Friday was actually only going to get up into the mid 50s. Still maybe do-able. But unfortunately I got hellishly busy at work on Friday, and didn’t manage to slip out. Today was warmer, but raining, but still a remote possibility, but I was even busier at work. So I didn’t get out today either. And tomorrow it’s going to be a high of 43F, which would be cold even in a wet suit which I don’t have. Doesn’t look like it’s going up again until Thursday. I guess I’m going to give up and take the kayak off the roof.

Man, if I don’t get off this overtime treadmill soon I’m going to kill myself. Or somebody else.

One of these days I’ll learn to take a compliment

Today, in spite of how busy we are we got the word from our new boss Nancy that we all had to go to the monthly division meeting. (Ok, here’s where I prove how little attention I pay to the heirarchy: I don’t know if Nancy is Dave’s boss, or Mike’s boss, and I don’t know what slice of the company that meeting is really for, but let’s just call it ‘division’ for now.) I never go to these things, but first we got a message from Nancy saying she expected everybody there, and then another message from Dave saying he’d gotten the word that no matter how busy we were, we should make every effort to get there.

It was the typical boring monthly meeting – announcing all the anniversaries and stuff. But then they started handing out these enormous plaques to people who’d recently gotten patents. I’ve seen these plaques on people’s desks before, but I’ve never seen them handed out. And I’ve only ever seen them on pretty senior people’s desks. I wasn’t expecting one – my patent was awarded months and months ago, and besides I’m a lowly contractor. But I got one, and it had little tags for both of my patents. My boss, Dave, got one as well, with the same two tags.

Afterwards, Nancy told me that the whole reason she’d made the meeting mandatory was to make sure that Dave and I went, because neither of us were prone to going to these meetings.

Getting the plaque was surprising enough, but even more surprising was for the rest of the day people were coming up and congratulating me. Now, I’m not thrilled about the concept of software patents at all, so I didn’t really know what to say. At first, I was saying stuff like “Oh, it wasn’t such a big deal” or “I’m not too proud of it”. But then I thought that probably isn’t very gracious of me, and might be insulting to other people who’ve gotten patents or who want them and haven’t gotten them yet. So then I started just saying “Thanks” and leaving it at that. But still later, some fellow software developers came up to to congratulate/razz me, and I decided the best response was that it was a team effort and I feel sad that we couldn’t credit everybody on the patent. I also told one of the developers that one of the things she did, an automatic “matcher” algorithm, was definitely worth a patent and she should apply for one herself.

Take a deep breath, and wait.

Ok, I’ve delivered a version of the code I’m working on with all the bits hooked together so that it should be test-able. Now I have to wait for a build to be produced so that I can install it on a test machine and start finding out all the ways it’s broken.

Since it’s going to be at least a couple of hours before the build is done, I’m going to go home and relax, try to not watch any election stuff, and relax before I start Stage 2 Of Hell tomorrow.

Ever been so tired and overstressed you can’t sleep?

I’ve been exhausted for days now – I feel like I can’t keep my eyes open. It’s accumulated lack of sleep and stress from this project I’m on – I’ve put in over 55 hours a week for about 2 months now.

Last night I went to bed early to try and get some rest. But I found myself lying in bed awake in the middle of the night, worrying that if I didn’t get back to sleep soon I’d been even more tired and wouldn’t be able to finish the work I promised to get finished by Monday.

Believe me, that’s not conducive to getting back to sleep. It’s a great cycle of stress leading to lack of sleep leading to stress.

I want my weekends back. Although the first weekend I get off after this project is done will probably be spent comatose.

More discoveries

Somebody broke the build badly at work. Sometime two or three days ago, they split a library JAR into two JARs, but didn’t update the Makefiles for all the places that relied on the JAR. I didn’t discover this until today because up until now I wasn’t relying on anything new in the JAR, and so hadn’t noticed that I was using an old copy of the original JAR. Because I had to use the new stuff in the JAR to complete what I am working on today, I ended up going to work to fix the build. Which meant a long, long cycle of doing “clearmake clean; clearmake” to make sure things were really fixed.

Java has a very bad habit of deciding that a source file it just compiled two minutes ago needs to be recompiled. So it can be compiling stuff in package “foo”, but because package “foo” uses some stuff from package “bar”, it might suddenly decide to recompile something in “bar”. This is a problem because I recently added something to a package called “dcms” that meant it needed to include a new jar file in its CLASSPATH. But I didn’t know that a package called “ai”, which uses a file from “dcms”, would suddenly decide it needs to compile a file from “dcms”, and therefore the CLASSPATH in “ai”‘s Makefile needs this new jar as well. Or, if you’re a clearer thinker, you change the CLASSPATH in “ai”‘s Makefile so that it’s looking at “dcms.jar” instead of “src/dcms”. Unfortunately we’ve all had this bad habit of including paths to source in the Makefiles of other modules. I think we’re eventually going to end up with a monster “include everything” CLASSPATH in all Makefiles. Ugh.

Another discovery is that SpamKarma2’s “RBL check” seems to be hanging until it times out. I’m not sure if that’s due to the move, or maybe the RBL server is down? I don’t know how to check that. I spent way too much time this morning tracking down every missing “auto_increment” column in every table, and I think I have them all now, but maybe I missed one?

Another discovery is that the only version of php4-gd for my Debian system requires a lot of X Windows libraries to be installed. I had no intention of installing X Windows stuff on this system, since it will never have a graphic head on it. But on the other hand, without php4-gd, I don’t have a CAPTCHA check for SpamKarma2, which means I have to look a bit more carefully at marginal spam.