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.

Ow ow ow ow

I had peridontal surgery this morning. Evidently my bad habit of sticking sharp things into the gap between my upper front teeth has caused the bone to erode to dangerous levels. They cut away the gum down to the bone, scraped away accumulated crud on the bone, applied something to make the bone grow again, and stitched it back up. It wasn’t all that bad while it was going on, except the novocaine made my nose numb. But now it’s done and the novocaine has mostly worn off. And I’ve got the pain you’d expect from having your gums cut open and the bone scraped, plus the stitches are irritating the inside of my lip. The pain killer they gave me is making me feel bleary and very sensitive to movement, and doesn’t seem to be doing anything about my mouth. And I can’t eat anything that involves “incising” with the front teeth for two weeks.

This is less fun than I thought it would be.

More of the same.

Still muddling along on the project mentioned in Rants and Revelations » Stress, stress, and more stress. My boss wants my bit to be test-able and demo-able by the first of the month, and I’m not sure I can do it. I don’t think the other bits are going any better. The Chinese team have delivered something, but we can’t test it yet until my bit and Tony’s bit are finished. Kris is working on a bit that we were going to farm out to the Chinese team, but we decided it would be faster for him to do it than to try to explain it to them. It seems that in order specify the requirement in sufficent detail that you could just hand it over to a foreign team, you need a formal language. And the formal language we know best and can produce fastest is Java.

In added aggravation, just as I was turning into the parking lot at work this morning, my muffler started dragging on the ground. A quick examination seemed to indicate it was just the strap hangar broke, which is exactly what it turned out to be. Cheap, but time-consuming and annoying.

Meanwhile, the peridontist is going to be fixing my front teeth this Saturday. He says they have to make an incision in the front of my jaw, scrape out crud, and put in something to make the bone grow back. He says I won’t be able to “incise” for a couple of weeks.

Saturday is also the day when we have our MoveOn.org Call For Change party. I have a bit of a mental block against making phone calls to strangers thanks to an incident from my childhood, but maybe I can just play host.

On Monday, my 1U server goes off to the colo. I just got the network settings, so sometime on Sunday I have to take down the server and set up the networking.