Wednesday, March 04, 2009

The spoils of war

Today, I found myself confronted with one of those work problems that are hard to explain to people who don’t work with versioning software, SQL servers, stored procedures and the like. Mostly because their heads tend to explode, which is why they pay people like me to deal with these problems in the first place. My head doesn’t usually explode, although every so often my spleen does.

Anywho, I’m getting idiot messages that make no sense. Telling me my procedure can’t run because the table name that is no longer anywhere in the query because it is also no longer anywhere on the SERVER is ‘invalid.’

Well, duh. That table was dropped (off a cliff, bye-bye forever, table!). But, why. Why are you insisting that this procedure, which totally does not reference this ex-table, references this ex-table?

I was a bit stumped. I chewed my lip (thus ensuring I will get a cold sore soon). I rested my chin in my hand (thus ensuring I will get zits the size of cranberries soon). I rubbed my eyes (thus ensuring my Zombie look would be complete with glowing red eyes).

“Hey!” I called to my partner. “The invalid table thing…what if I go out to shell and commit changes via the versioning?” (Yes, I know. Just roll with the code-speak. I don’t want any exploded heads out there.)

“That’ll make no difference!” he yelled back. “Blah blah blah geek geek geek fifty-seven reasons that can’t possibly work yak yak yak.” (I privately call my husband Dr. Professor when he starts this – he is the kind of person who can seldom just say Yes or No, ooooooh no, he has to fully and completely and also EXHAUSTIVELY explain why, wherefore, and how come something does or does not do That Thing.)

While he blathered on (he is quite the educator), I went ahead and did it anyway. Because that’s how I roll, people. I have a gut feeling this might work, one of them-thar educated guess thingees, based on years and years and years of messing with computers.

My husband has a scientific understanding of how programs work. I have gut feelings that I’m sure if I really traced down how it was I thought it might work, I’d find that I actually do understand a lot more about the science behind the screen and that I “just knew” because I actually do know something I don’t know I know and yet, there it is.

I just had a feeling committing changes through the versioning software would make the hounds of hell currently with their jaws clamped tight around my poor little procedure let go.

So I did, and then went back to my open query window, same window that had just told me, “FAIL! Ex-table is not valid! HA! HA! HA!”

Hit ‘Execute.’

Was calmly told, Command(s) completed successfully.

Boo-yeah.

But I’m not one to, you know, boast or nothin’. Shucks no. I am one of those cool, professional types. So I merely interrupted my partner’s continuing stream of painfully technical reasons why my proposed action would do no good by bellowing, “NAILED IT!!”

“Huh?”

“It worked.”

“It what?”

“It. Worked. Out to shell, run commit version, rerun sproc, BANG! Victory is mine. Who’s yer daddy?! OH yeah. I am so brilliant I scare m’self!” (Modesty: I haz it.)

He was heading into a phone meeting. Muttering all the way. “That makes no sense. That should not have worked. Unless there’s something I don’t understand about the versioning program.” (NO! Not that! Not something Dr. Professor doesn’t understand about the versioning program! Swoon!) (Anyone want to take bets about whether or not he’ll be online tonight researching why that could possibly have worked?) (Fine, OK, yes, it was a sucker bet, geesh…)

“I’m getting some tea!” I yelled after him.

“Yeah. Oh well. I don’t get how it worked, but, you know, good that it did, I guess.”

“…and also I am getting a victory cookie!” I bugled, digging into the baggie of dark chocolate crinkle cookies I made last night – they’re like little powder-sugared brownies, and also they are awesome (and a copyrighted recipe out of a book I own…sorry…Williams-Sonoma Kids Baking). “Because I am…VICTORIOUS!!!”

I know this may sound like gloating, but really it’s just…well. OK. It’s gloating.

As I carried my tea and my victory cookie (ok, ok, cookies) (what? They’re small[ish]!) back to my office, I had to admit…I live a very, very strange life.

Seriously. I say things like who’s yer daddy because I got a computer to do something it was supposed to do all along by doing something that should not have worked, and yet did.

On reflection, I’m not entirely sure that makes me anybody’s daddy, you know?

And as if to drive home this thought, the second batch of queries is now up to almost thirty minutes of run-time, and still chugging along. That’s a really long time. In development, it took maybe fifteen minutes...but of course, the development box has a much smaller dataset because it is for testing, not real-time reporting.

So there is more data on production. It will take longer to run, obviously. But still. Hmm. This is a long time. The kind of long time that makes you say, Hmm. I wonder if this is because it is the first data load, or if this means I’ve got poorly streamlined code…because if the daily updates take this long? Yeah. Too long.

I should have put one of my victory cookies back. Victory was, after all, only partially mine. I had won a battle this day…but not the war.

But instead, I re-dubbed it a pondering…please stand by… cookie and ate it anyway.

I will need my dark-chocolate-enhanced strength, you see…for lo, should this not be a matter of initial load of whackity-thousand rows taking whackity-forever but rather a matter of joins that should be re-examined and WHERES that should be re-thought and perhaps an inappropriate AND OR CASE ELSE THEN in there somewhere…I will need all the help I can get.

The worst problems of my day can come down to a comma in the wrong place. A lack of commitment. An excess of commitment. A rollback too soon. A catch that has no try.

An ambiguous field name, somewhere in the nineteen page script.

I think…maybe…I need another cookie… {thirty-nine minutes, and counting...mebbe I needs TWO more cookies...}

9 comments:

natasha the exile on Mom Street said...

I feel the need to send this to parents who [embarrassingly enough] will understand what you speak of while their 31 year old daughter...doesn't.

But hey, cookies! I understand cookies!

(formerly) no-blog-rachel said...

Damn you're funny. And you guys talk just like everyone in my department. I have no idea what the hell they're saying but apparently they understand each other.

Anonymous said...

My husband (who runs a federally funded, state managed IT group) has these moments all the time. "I just know it will, but it shouldn't work." Go with it, baby, you've got the computer muse.

And, unless the laws have really recently changed, there is no copyright on recipes. The photos and descriptions, yes, but not the ingredients. So give over, will ya?!

Anonymous said...

I'm pretty sure your inner computer voice needs cookies to figure out the bottleneck. What? Me, enable?

Chery said...

Kinda makes me want to go back to work and quit knitting and spinning, HA!! Code is an interesting beast.

Lyssa said...

That just makes me think of this...

http://xkcd.com/327/

Michael Irwin said...

19 page script .... 19 pages ! Hopefully you're printing on loo paper 'cos if you're putting out onto old-fashioned green-line, then either that is The Brain's plan for World Domination, or else you got lost somewhere around the middle of page two and are in desperate need of a Pan-Galactic Gargle-Blaster or two.

Comment(s) completed successfully.

Anonymous said...

Ah yes, I work in an obscure little corner called a Walled Garden in an obscure little corner called IPTV (as a SysAdmin). Recently I lost most of a day to a miscommented multicast IP address that should have matched one setting but said that it should match a different setting. Sometimes I want to cry when people ask what I do and I have to try and explain it.

RaplhCramden said...

I don't know which is sexier, the codespeak or the recipes. Probably both.