Dirty Tricksy Sneaky Sneaks!

I swear that some folks I work with believe in their heart of hearts that my teammates and I spend our days randomly futzing with the configuration of things. They encounter a behavior they don’t expect and–boom–“why did you guys change $THING?”

$THING has remained unchanged ever since we set $THING up for $SPECIAL_GUY. Nothing has changed. Nothing.

Except that it is about half an hour later than when $SPECIAL_GUY interrupted me in the first place. But at least I know that $SPECIAL_GUY now understands that time is linear and that an event watcher cannot retroactively watch for an event in the past. Well, at least I hope $SPECIAL_GUY understands this. I’m not holding my breath however.

Com

I don’t know how they did it, but Canonical turned the normally frustrating and inane Eclipse environment set up into a god damn dog’s breakfast rotting on the steps to the portal of hell.

I used to want to do a little brushing up on my Eclipse/Struts/Ajax skills but now I mostly just want to punch holes in walls.

Roosting at home

All those years I advocated for doing XML namespaces by the book. We’re going to want to do stuff with namespaces in the future. All those years no one else thought there was no way we’d ever want to do that and that namespaces introduce unnecessary complexity. All those years of being outvoted.

Today, bitches. Today is what I was trying to prevent. And who is going to clean this up?

Sometimes being right sucks.

Windows installer [sucks]

So, for whatever reason, Windows Installer service doesn’t just install crap. Instead, it runs through all of the steps to an installation in some kind of imaginary sandbox thing and then it runs everything again on the live system.

Sure, all of this is probably well and good. You don’t want to be halfway to rearranging some filesystem only to decide that you need to roll back. If only it worked that way. When it does its practice install, it doesn’t actually write files or twiddle IIS or any of those fun sorts of things. Nope. It just pretends. Except for when it doesn’t.

Because if you want to schedule features or components for install, this needs to be decided in the practice stage. Also, if you want to set properties to be used in a later custom action, you need to do this here.

But then, explicitly, you cannot reference these properties in the second, live run. Why? Because it’s Microsoft?!

No, in order to get a reference, you need to dump them into a for-special place and then use a different, for-special mechanism for retrieving them.

It just doesn’t get much stupider.

Inches and miles

They‘re forcing you to virtualize your production SVN server. Your physical server has eight physical cores that can act as sixteen thanks to hyper-threading.

The virtual machine they give you has two cores.

You ask for sixteen. They hold at two. You make the switch-over and go live and the new virtual machine tanks. You ask for sixteen cores and they ask you to contact the software vendor to ask for a guide on virtualization performance tuning. You escalate.

Half a day later they give you four cores.

Four cores can keep up for almost five minutes of truly serious load before tanking. You mention that adding cores seems to be improving. They argue why this should not be working–using arguments from theory. You point to the performance monitoring and ask for sixteen cores.

Three hours of arguing later they give you six cores.

You and they are all on the same conference call. You and they are both watching the CPU load. It takes almost fifteen minutes to get the CPUs to peg with six cores. You wearily ask for a mere eight cores.

They give you eight cores and ask you to not mention this to anyone else because, obviously, you’re the 1% of the virtual machine user population and they don’t want this getting around. Theoretically you should have been okay with two cores after all.

Little over an hour later of work under an artificially heavy load and the machine with eight CPU cores hasn’t hung.

Huh.

How was your day?

Quitely rebelling

I’m hoping the polite reply, with CC’s to the entire sales and marketing teams, suggesting that someone’s CRM data is flawed properly conveys my annoyance. Sending out cold-call emails insinuating we had previously discussed a project leveraging a firm’s product really touches me here. /me points to a “bad” place on the doll. Do people actually get these emails and think to themselves, “Oh, yeah, I entirely forgot about that storage project I hadn’t ever thought about before. We should totally do this.”?

Unrelated…sort of. Last Friday I received a letter from a provider of commercial services that was blatantly trolling for ways to avoid upholding their side of the agreement. It included a toll-free number to be called so this matter could be “resolved.” Calling the number, one is immediately shunted into an automated voice-analyzing system intending to “resolve” this with as little investment on their side as possible.

I fed it unintelligible-to-it answers to break out of the script and talk to a living person. Only, instead of getting a “concerned operator who is standing by” I’m subjected to several minutes of heavily clipped classical music while I wait. Eventually a “customer representative” picks up the line. So I put him on hold while I went and poured a beer off the tap. It felt good.

I think I’ll start putting people on hold who put me on hold. I need to get a recording where I play horribly compressed music and intermittently interrupt that to announce that, while I truly value the service their company is providing, I’m currently conducting other business and that the next available me will take their call as soon as he becomes available. Then I can put the phone next to it while I go pour another beer.

And while I’m here, can I point out just how dissonant many bits of corporate jargon are?

‘Customer representative’ is not someone representing the customer or the customer’s interests. A customer representative is representing the company in its interactions with the customer. It should be ‘company/corporate representative’.

And hold music. Why do we do this? And since we do this, why do we make it as annoying as possible. Vivaldi’s The Rite of Spring is akin to having a banshee screeching in your ear while driving in stop-and-go traffic. When you play it over the phone, it loses any sort of philharmonic fidelity that might otherwise redeem the recording. When you compress it to AM-radio levels of degradation and then push all of the levels up to their maximum so as to clip every single note, you have the musical equivalent of dragging your teeth while sucking on a lemon chalkboard. Yet this is how a company chooses to help me while away my day, waiting for them to deign to speak to me. Because they value me as a customer.

Sorry about all of this. Just having a more emphatic than usual ‘get off my lawn’ day.

Automation

Trying to automate all the crap we have to do since corporate policy doesn’t allow static service account/password combos any longer. Hey, no problem, we could use RSA keys. Except, hey, Windows doesn’t do that. So now we’re spending $FOO on some stupid utility to manage, in bulk, Windows service account logons. And $FOO is cheaper than figuring all of that out on our own. Oh, and for some reason one of the bog standard VMs we’re issued isn’t responding to RPC even though the other fifty or so do.

Who knows why? It must be a party!

Oh hai! What about all of the *nix boxes that need their sandbox tokens refreshed? Cool, we could use SSH from the same Windows box to run commands as a user remotely. Of course, Microsoft forgot to roll in an SSH client into their operating system. Oops!

“No problem, use PuTTY,” they say. And then you figure out that PuTTY is an utter dick about handling RSA key files. No way! Who would have ever thought doing something completely routine on any other operating system would be such a turdgargle when it comes to Microsoft?

How to solve? Install a bash client on the Windows box and then just do stuff right. Yet another afternoon lost to the joys of Microsoft. When can my employer start billing Redmond for my time?