Ick!Ick!Ick! Slam my head against the keyboard! I would have written this earlier, at work, seeing as it is about my day at work–but I was too busy ripping out my hair and knocking out my teeth with the corner of the keyboard.
We have this application written in Java, so it is supposed to be cross platform. It will run on both Windows and Unix, right? Well… So it was my job a few months ago to port this thing over so it runs in a Unix environment. It was somewhat tough, but did not have too many big snags. Now it is time to get the latest version to run on Unix. Not just Unix, but a little network appliance: one of those things that you plug into power, plug into the network, then look at the little 3-line LCD screen on the front.
Every minute of this week and most of last week involved this task. It’s really simple on the surface, but not when you dig in. Basically, here is a little hyperbole to illustrate what I’m doing: You are called away from some big important projects to attend meetings that seem to not involve you. Eventually you learn that you could have skipped all the initial meetings and only gone to the last few. Basically, your boss (or a guy who is not really your boss and not even connected to you by a dotted line on the org chart, but has a sort of invisible dotted line connecting you–yeah, it’s complicated) needs you to go to the hardware store and get some screws. You know, just standard metal screws with phillips heads, maybe an inch long. Visualing this? And they need to screw in counterclockwise. Understand? Yeah, so you are half way to the hardware store and start to think. Did he say “counterclockwise?” That means the threads are backward? Well, the guy at the hardware store has never heard of such a thing. So, you think to yourself: “well, I have worked with raw metal before, so maybe I can forge some myself.” You end up taking a few days making a few molds, by hand, of blank screws–basically nails with different heads. You then get some metal ingots, melt them down and pour them into the molds. A half-day later, when they are cool enough to retrieve, you strap them into a lathe. Then you carefully grind in some threads, being careful that they are evenly spaced and turn in reverse. Each screw takes a day to complete. The whole process takes a week or two, oh and by the way, it needs to be done by the end of the week so that quality assurance can finish their job by the end of the month. Or something.
Yeah, so this turn-key software that completely takes over a PC really cannot be allowed to do so on these network appliances. It needs to play well with the existing directory structure, config files, scripts, and anything else that could impact the software already running on these things as well as future software installs, upgrades, and patches. No completely stomping over the classpath. No complete rewrites of startup scripts. Watch for concurrent actions. The appliance ships with a certain version of the XML libraries, but the software needs a conflicting version. Blah, blah, blah… It is not tough work, but it ends up being a ton of little menial tasks.
“Ummm….yeeeaaaaaahhh. I see that you built this 12,000 sq ft mansion, like we wanted. I was wondering, could you just move it 12 inches to the left? If you could do that by Friday… Yeah, that’d be greeeaaaaat.”
Looks like someone has a case of the Mondays. Oh crap, it is Tuesday already.