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.

Learned two things so far today

When you move your blog to a new host:

  1. If your want your Powerbook to see the dns change, issue the command lookupd -flushcache
  2. When you move a database from MySQL 5 to MySQL 4 using the compatibility mode of mysqldump, it doesn’t move the auto_increment attribute, and you have to restore it using alter table wp_posts change id ID bigint(20) auto_increment;

Glass “whiteboard”

Back when I worked for Frontier/Global Crossing, my cow orkers who had window offices often used them as whiteboards. That impressed me as such a good idea that when I went to SunGard and had a window office, I started doing the same thing myself.

Today, I needed to hash out some big diagrams, transaction diagrams and XML with a couple of other guys, and since none of us had very big whiteboards in our office, I suggested we use the windows in the break room. The people I was meeting with didn’t believe me at first, but went along with it once I demostrated that it wipes off as easily as on a whiteboard. But everybody who came into the break room while we were at work stared in disbelief and made sarcastic remarks.

Is using a window as a whiteboard really that unusual?