tag:blogger.com,1999:blog-240685642008-07-16T13:24:55.694+02:00A Day in the LifeReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comBlogger206125tag:blogger.com,1999:blog-24068564.post-13360193143453822702008-07-10T16:23:00.000+02:002008-07-10T16:23:19.693+02:00Petty Office(r)sI have three days to catch up on all my tickets which <i>no one</i> looked at during my entire week of training. Customers are pissed. I've been officially pulled out of The System. Nevertheless, there's a Ticket Assignment Notification which just showed up in my mailbox. The System knows best.<br /><br />Not only have I been assigned yet another Solaris problem I have no idea about, Steve has been assigned a problem requiring the ability to see the difference between Japanese characters. We agree to trade, unofficially and doing our best to hide the transactions which management will inspect to make sure we're being good little bitches.<br /><br />A note last night from a US manager asks me if I can take over Yet Another Citrix Problem which was assigned to Someone Other Than Me, and in taking the reassignment it won't count toward my number of assigned tickets as far as The System is concerned; it only counts toward last Tuesday's assignment quota. I agree anyway.<br /><br />An hour later comes another mail from some unknown name. Someone in HR. She's seen my profile pic, a particularly funny line drawing animation which has been my profile pic ever since $MegaCorp took over $BigCorp. I've received dozens of mails and IMs in favour of it. I have a link to a site of mine in my profile and dozens of people have clicked on that as well, so I know that they, too, have seen the pic. I know because I have the referrer logs of the site, all coming from xxxxx.$megacorp.com/yyyyy/zzzzz?=$REC_empno. But she's <i>offended</i>. I explained this in an E-Mail littered with management-speak buzzwords and other shitty language abuses that she and her ilk are more comfortable with, stating at the end that should she not change her mind, I would reluctantly -- in accordance with company policy -- remove said <i>offending</i> picture. No word back on that.<br /><br />What else is in the mail? A note from Giacomo. He'll be back in Munich teaching the DBA1 course in a couple of weeks. Hot diggity! Off to Meathead to get approval for this course as well.<br /><br />"Hey Meathead. Giacomo's coming back next week to do the DBA1 course. I need approv..."<br />"Nope."<br />"WTF?"<br />"You've already had your five training days this quarter."<br />"That's the <i>minimum</i> requirement per quarter."<br />"Right. And you've received it."<br />"But I didn't get any fucking training last quarter. Nor the quarter before that, nor the quarter before that!"<br />"But you got it this quarter. You can do the DBA1 next quarter."<br />"..."<br /><br />Minima = maxima only when it's shit I want; I do far fucking more than the minimum number of tickets and still get pushed to "do more". <br /><br />Fuming, I return to my desk. There's a mail from Mini-Me with an attachment. A screenshot of $OurBigInternalApp with a ticket, and in the owner field, Mini-Me's name. There was a second screenshot of another ticket, also assigned to him. In his note to our manager he wrote, "I'm kinda busy right now but I'll try to look at them later today."<br /><br />Mini-Me left the company ten weeks ago but The System knows best.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-29249823689992577502008-07-07T15:09:00.000+02:002008-07-07T15:09:00.362+02:00Training III: An Open Letter to OracleDear Oracle,<br /><br />Classroom training's cool. The free lunch isn't too bad either (for fans of MSG anyway). A week away from my normal hell is also pretty fucking sweet. So please don't take this the wrong way...<br /><br />When I (or more precicely, the $MegaCorp division I work in) is shelling out for my DBA training which is supposed to include all that horrible PL/SQL shit and RAC and SQL tuning, <i>and</i> I've worked with databases for the past eight fucking years (yours, DB2 and <strike>FoxBasePro</strike> SQL Server {$year}), I should get a pass on the intro shit. I should not have to sit through hours of fucking explanations to n00bz about tables, foreign keys and the fucking SELECT statement. I may not be a Mastah DBA but I know how to grab the shit I want out of your tables. I can even do it in your shitty, still-not-Unicode-compliant command line SQL*Plus program which will never, <i>EVAR</i> be as good as Toad. <b><i>EVAR</i></b>.<br /><br />That Enterprise Manager copy of Microsoft's point-and-shoot GUI ain't the best in the world either. Would you guys even <i>consider</i> writing something in a language more efficient than Java? PASCAL perhaps? SNOBOL? Fuck, even a <a href="http://apollo.spaceborn.dk/dsky-sim.html">DSKY</a> machine might be faster. <br /><br />No, your browser-based "iSQL" client just doesn't impress me. It's just another "Do X... <i>on the Web</i>". Meh. Accidentally backspace and all your work and history are gone. Would it be that difficult to have the browser write the history commands to a local text file? Yes, I know it's possible to write my SQL in a local editor and then paste it into the browser but then <i>what's the fucking point of having the browser-based client to begin with</i>?<br /><br />Also -- and this is pretty important -- please refrain from putting really attractive wimmens in my classroom as they tend to distract. I'm not against wimmens in the field; IT tends to attract the lunatics of both sexes so things are never boring. I just think that segregated classrooms might be something you guys could maybe try out. I'm pretty sure that's a wedding ring on her finger and although 30-45% of German women admit to affairs depending on which survey you read, I'm in a classroom and I'm supposed to be able to focus my attention on what the instructor is saying. <br /><br />That's all I can think of for now. Thanks for the cookies and air conditioning but that horrible excuse for coffay you've got would embarrass Americans and even Turkish resorts. Powdered premix? Have you <i>no</i> shame??<br /><br />Love,<br />RECReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-63833406470691294482008-07-04T12:46:00.001+02:002008-07-06T21:55:53.384+02:00Training II: LOL NazisSo I'm sitting through another day of <i>Stuff I Already Know</i> and the teacher, a nice enough Genoan guy who mangles both German and English without prejudice is going over the new syntax and abilities in 11g. We're dropping tables but wait! There's a foreign key! What to do?<br /><br />My response didn't go over so well.<br /><br />The blonde is killing me, constantly looking over at me and smiling, looking longer than is normal. She's not drop-dead gorgeous but there's <i>something</i> about her I can't get over. I'm sitting uncomfortably through classes with a constant reduced cranial bloodflow that I haven't experienced since puberty. Chances to talk, however, aren't taken and she quickly kills my attempts at conversation. I even ate with her in the shit canteen (and paid the price for it later) in order to give it a go. No dice.<br /><br />Anyway, when discussing databases in German you don't talk about "parent" and "child" but rather "mother" and "daughter" tables. It's less awkward than trying to translate the English constructs directly since "parent" is rarely used here in the singular and no matter how you combine "child" and "table", the result sounds bad. So <i>Muttertabelle</i> and <i>Tochtertabelle</i> it is. <br /><br />And Giacomo went on talking about altering tables as I tried to stay awake. Then he got to the "ON DELETE CASCADE" construct which when invoked, he explained, will not only remove<small><sup>1</sup></small> the 'mother' table but take all the 'daughters' with it as well.<br /><br />I didn't actually think about it, it just came out: "Ah, the Magda Goebbels method."<br /><br />The temperature in the room dropped quickly. She's definitely not sleeping with me now.<br /><br /><small><sup>1</sup> It helps to know that the German word for "remove/delete" wrt to DB tables is extremely close to the one which means "extinguishing life"</small>ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-6565088178894154522008-07-03T20:48:00.000+02:002008-07-03T20:48:08.323+02:00I CAN HAZ TRANEING"Dog, your training has been approved."<br />"Citrix? <i>Finally</i>??"<br />"No, Oracle. DBA path.<br />"Umm... "<br /><br />We have a dozen DBAs in the office. While acquiring this skill wouldn't hurt my chances for advancement (because they're already hovering slightly below zero) and would even give me m4d sk1llz to go elsewhere, I'd really prefer the Citrix training because <i>no one else fucking does it</i> here! I'm already stuck with every Citrix problem there is and it would be nice to have a fucking clue about what it is I'm doing.<br /><br />More importantly an increasing number of our customers want to use Citrix. We have an ever-growing number of contracts which are dependent on getting $OurBigApp to work on Citrix. Fucking hell, Citrix is now doing <a href="http://citrix.com/English/ps2/products/product.asp?contentID=683148">Xen</a> which, like, you know, <i>we're doing too</i>!<br /><br />"Why can't I have the Citrix training?"<br />"Because it's unsupported," Meathead replied.<br />"It's unsupported because no one knows how to do it or has any contacts there."<br />"I understand."<br />"And if you send me to that training, we'll <i>will</i> have someone -- me -- who <i>can</i> work with it and help out Eng and PM so that we <i>can</i> support it."<br />"But it's not supported <i>now</i> and so we can't send you."<br />"The fucking Oracle training is twice the fucking price of Citrix'! We have dozens of Oracle DBAs worldwide!"<br />"We also have a deal with Oracle training so it's not the list price."<br />"But we don't <i>need</i> more DBAs."<br />"So you don't want the training?"<br /><br />I may be dumb, but I'm not stupid.<br /><br />"Of course I want the fucking training! Beggars can't be choosers. So is it PL/SQL or DB tuning?"<br />"Professional Introduction to the Oracle 10g Database"<br />"NO WAI!"<br />"Yep."<br />"Why? I've been working with databases for the past 8 years! I know how to fucking SELECT a goddamned row!"<br />"Oracle's path requires the course. You can't take the next ones without the certificate from this one."<br />"Son of a bitch."<br /><br />Considering the rate that training is approved around here, I'll get certified to "Oracle Master" some time before the turn of the century. They really better hurry up with this <a href="http://www.wired.com/medtech/health/news/2008/06/methuselah">anti-aging shit</a>.<br /><br /><code>SELECT standard_complaint FROM blog WHERE (INSTR('17') > 0);</code>ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-49244592828925451972008-06-27T14:47:00.000+02:002008-06-27T14:47:00.602+02:00Dear Japan,Your clocks are running seven hours too fast. PLZFIXKTHXBYE!<br /><br />I like my Japanese cow-orkers. I really do. Of course, I've never had any "face-time" with them which might explain this lack of animosity. But when I need to work with them I either have to be up at 3am (and sober enough to function) or I might as well send snail mail. One round-trip communication takes three days.<br /><br />I needed a database in Shift-JIS, the most common Japanese encoding. It's crap compared to Unicode... hell, it's crap compared to <i>any</i>code, it being a freaky Microsoft hack to enforce their idea of codepages and still work with previous Japanese standards like JIS X 0201 and 0208. Wacky stuff if you're one of the couple dozen codepage supergeeks. I know I'm lame. Haz a <a href="http://icanhascheezburger.files.wordpress.com/2008/06/funny-pictures-care-o-meter-cat.jpg">cat</a>. In fact, take two; <a href="http://icanhascheezburger.files.wordpress.com/2008/06/funny-pictures-your-cat-needs-you-to-come-in-on-caturday.jpg">they're small</a>.<br /><br />So what the hell do I want with a Shift-JIS DB when its suckage quotient is so high? It seems we have a bug, one that I not only pointed out about eight fucking years ago but which also should've been dealt with by the time $OurBigApp supported Unicode.<br /><br />ATTENTION AMERICAN DATABASE-PROGRAMMING INFIDELS: There is a <i>huge</i> fucking difference between "character" and "byte". Not for you normally, but for most of the rest of the fucking world. One byte per character works fine for English. ASCII is also sufficient for Latin, Swahili and Hawaiian. It is rumoured that there are other languages, many of which have more characters than can be addressed with a single byte.<br /><br />It turns out a field length of 5,000 characters isn't actually 5,000 characters but 5,000 <i>bytes</i>. For the Japanese this means that they can only squeeze in around 2,200 characters, not quite enough for what this field is designed to contain. But only in UTF-8. In Shift-JIS and UTF-16 with their fucking surrogate pairs the number becomes even more grim -- around 1600 characters.<br /><br />So why didn't I just install a fucking Shift-JIS database on my own if I'm such a Mr Smarty-Pants? Setting up the DB is easy but our installer which adds and shapes the schema sucks. It's overly complicated (more than 90 screens of text and clicky goodness). That alone isn't a problem. I don't speak or read Chinese and I can still not only install but administer Windows in Chinese, both Traditional and Standard. Microsoft sucks but at least their suckage is uniform across languages. Same dialogs, same layout, same buttons, same icons. Not so $OurBigApp. The Japanese installer is nothing like the English which is nothing like the German, so I can't even run a side-by-side installation and select the correct radio buttons or fill in the proper fields.<br /><br />I can read some Japanese but with so little chance to use the language I've lost much of it over the past 12 years. A few smrt peepul might think, "Duh! Just select the dialog text, copy and then paste it into Teh Ghugel Translator!" Yeah, I thought of that. Our programmers had different ideas: <blockquote style="font-family: courier new;">window.properties.AllowSelectText=0.</blockquote>Fuckwits.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-29673288840457039192008-06-25T15:08:00.000+02:002008-06-25T15:08:21.954+02:00Cow-Orkers XVII: Dr. SeussPeople often ask me, "REC? Why do you drink so much? Are you trying to become an alcoholic?"<br /><br />Become? Hah! Walk a mile in my moccasins, muthafuckers. Or just sit in this room and listen.<br /><br /><span style="font-size:78%;">I aten't dead yet!</span><br /><br /><a href="http://stuckinthecube.blogspot.com/2006/06/cow-orkers-iii-language-school.html">Joe</a>, my neighbour at work for those who've forgotten, just asked about the expression his toddler has been taught by an "English teacher" who claims to have lived in England.<br /><br />"Vat iss means <i>Pring out ze rroof tiles</i>?"<br />WTF?<br />I can't bring myself to relive any more of this than I have to so I'll skip the dialog. I finally figured out what he was trying to ask me, the meaning of "bring out the roof tiles". This is an expression his toddler has been taught and now actively uses. The teacher <i>insists</i> this phrase signifies the need to take a dump. This guy once lived in London, most likely the way I lived in Stockholm: an overnight hotel stay.<br /><br />I screamed to Jules to have a listen; everyone else stopped what they were doing as well. I then loudly repeated the idiom I'd heard and its supposed meaning. Jules was laughing so hard that it was hard to hear anything else. Tears were streaming out of his eyes. The rest of the Krauts were laughing. Only Joe didn't get it.<br /><br />And that should've been the end of it. But it wasn't. It never is. I had to ask.<br /><br />"I'm going to hate myself for this, but what does he call peeing?"<br />"Ach!," said Joe with a triumphant smile, "Zet iss calt <i>Make a pruller</i>"! He beamed proudly. The office once again erupted into laughter. My noggin rushed for the safety and comfort of the my-head-shaped-dent in front of my keyboard.<br /><br />When everything died down, I told him to tell the teacher that I, REC, said he's an incompetent fuckwit and if he wants to take it up with me he knows where to find me.<br /><br />But no, that's not the whole story. Because not five minutes later he mentioned finally understanding the word which was pronounced somewhere between "hoass" and "hawz".<br /><br />"A hose?"<br />"Ja, a hwawzs! I am finally learn ziss meaning"<br />Deer in the headlamps time...<br />"A 'hoawz' like what?"<br />Joe hesitated and then said, "Like, you know..." and whinnied.<br />"A <i>horse</i>?!"<br />"Ja! I am not knowing for sure?"<br />"That's a 'hORse', not 'hose'."<br />"Zet iss vat I am said!" he replied as he kept mispronouncing both words.<br />"Ja, a 'hoawz' iss a <i>Pferd</i> and not a <i>Gartenschlauch</i> vhich iss a 'hoawz'."<br /><br />I want to beat him with a rubber pony. Instead I packed up and left.<br /><br />"Bring out ze rroof tiles" has, of course, now become the latest in office slang around here. Fortunately "make a pruller" doesn't seem to have passed muster.<br /><br />This along with being newly single isn't giving me much motivation to put down the bottle.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-46101384063399285102008-06-11T15:15:00.000+02:002008-06-11T15:15:01.567+02:00We Don't Say 'No'That didn't go over so well.<br /><br />--<br /><br />OK, I think I have a solution to this problem. It's going to take a bit of ess-plaining though.<br /><br />And as I'm doing this LookOut pops up one of its sporadic update notices to inform me that some of the mail which was sent to me over the past four days has finally been passed on by the central server.<br /><blockquote><span style="font-family:courier new;">From: Some Guy [mailto:some.guy@$Megacorp.com]<br />Sent: 10. June 2008 14:45<br />To: really.evil.canine@$Megacorp.com<br />Subject: Callback request for Ticket # AJ-10-E14<br /><br />Hi<br /><br />The customer from ticket AJ-10-E14 did call in and asked to be called back. Can you give him a call ?<br /><br />Regards,<br />Some Guy<br />$MegaCorp Core Care</span><br /></blockquote>Oh, go blow it out your ass.<br /><blockquote><span style="font-family:courier new;">From: Really Evil Canine [mailto:really.evil.canine@$Megacorp.com]<br />Sent: 10. June 2008 16:12<br />To: Some Guy<br />Subject: RE: Callback request for Ticket # AJ-10-E14<br /><br />Hi<br /><br />No. I'm too busy actually working on his ticket. And by not calling him I've managed to find the problem for which I'm in the middle of writing a solution, said solution to be posted inside the next half hour.<br /><br />Regards,<br />REC</span><br /></blockquote>Fifteen minutes later Meathead was on the phone. While I wasn't expecting him to tell me that my request for the big, fuck-off 45" monitor was finally going to be approved (denied, again), neither did I think I was in trouble. It was probably another discussion about the latest developments with $BigPrinterCo to determine if there's any chance of unfucking the system they set their worst and dullest upon.<br /><br />"What the fuck, REC?"<br />"Huh?"<br />"I just got my ass chewed out by $DriedUpBitchManager. What the fuck?"<br />"Huh?"<br />"That mail you sent."<br /><br />I tried to think. It's been four years since the "E-Mail Incident" which managed to escalate it's way up to the fucking $BigCorp boardroom inside 36 hours. Had to lay low for a few months as well as outperform third line support worldwide to get that one to blow over. I haven't sent anything like it since. Did someone get upset about the Helpful Hints mail I try to send out every month with various suggestions and methods to ease work?<br /><br />"Don't <i>ever</i> tell Core Care 'No.'"<br /><br />Oh.<br /><br />"When they tell you a customer wants a call-back, agree."<br />"But I told the mook that I was in the middle of writing the solution."<br />"<i>Don't ever tell Core Care 'No.'</i>"<br />"Uhh... OK. So I now <i>have</i> to call the fuckwits?"<br />"No, but don't ever tell Core Care that."<br />"Didn't plan to. So we're cool?"<br />"No we're definitely not cool. When you buy me a <i>Maß</i> of beer, that's when we'll be cool" Six euros to get out of the doghouse? Deal.<br /><br />And just as I finish typing this there's a new mail which has come in. Core Care, natch'.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-31684924545735575052008-05-29T15:47:00.000+02:002008-05-29T15:47:27.165+02:00ShiftyI have a <a href="http://upload.wikimedia.org/wikipedia/commons/3/36/KB_Germany.svg">German keyboard</a> and I like it a lot (though it'd be better if it was a <a href="http://www.clickykeyboard.com/">clicky Type-M "buckling spring" board</a>). I have a Type-M but it's US-American and is missing the key between the left shift and the Y (that's a Z to you QWERTY people). Ever since I first sat in front of a German keyboard all those years ago, I have preferred the layout for everything except when I need curly braces and square brackets. Thankfully I code very little. I've also since added many more characters with the <a href="http://www.microsoft.com/globaldev/tools/msklc.mspx">Keyboard Layout Creator</a>.<br /><br />That key down on the left is a "less-than" in its normal state, a "greater-than" when shifted, and a "pipe" when combined with the AltGr (right-alt). It's great for HTML, but occasionally it's possible to enter the angle bracket in the wrong direction. This isn't usually a problem. Not usually.<br /><blockquote>We had recently a "nice" issue on live environnement : instead of purging old orders, they have purged all orders after 1st january 2008... (ok you can laugh, but was not me...)<br /><br />Instead of recovering from the database backup the customer decided to reimport them from SAP using the usual $BatchLoader. So all orders were recreated with a different $InternalKey.<br /><br />Now, there are orders in $YourBigAppand and Orders in $OtherBigApp, they are the same but the $KeyNum referenced in $OtherBigApp is no longer the one of $YourBigApp. This is not yet an issue as there is no control on this field. However, there will be in the future a control on this field.<br /><br />So the question is : can the $KeyNum that have been deleted be reused in the futur for a different record ? We want to be 100% sure that the deleted $KeyNum will never be reused by the system. (I know putting the right $KeyNum in $OtherBigApp would be eayser...already explained this to the customer)<br /></blockquote><br />The ticket's from France. I know that France, like Belgium, uses the completely wacked-out <a href="http://upload.wikimedia.org/wikipedia/commons/c/ca/Azerty_fr.svg">AZERTY layout</a>. I have tried to use these keyboards before and found it quite painful. The key just to the right of the left shift is the same, though, and I knew immediately what had happened:<br /><br />Some genius decided to drop to a command line, connect directly to the DB, and do a massive global drop without first SELECTing the full dataset <i>just in case</i> someone might notice the DBA-typing-master-supergenius showing some sort of weakness in the form of self-doubt. So instead of issuing a command something along the lines of:<br /><code> SELECT * WHERE Master.Table.Data = (SELECT * FROM Master.Table.Data WHERE DATE > 20080101)</code><br /><br />He let rip with:<br /><code> DROP * WHERE Master.Table.Data = (SELECT * FROM Master.Table.Data WHERE DATE > 20080101)</code><br /><br />And he didn't notice that his finger had also contacted the shift key as he pressed the greater-than, slightly changing the intended query and command. Fuckwit.<br /><blockquote>Marie,<br /><br />I have to say that you have a very... unique... definition of "nice". Rest assured I'm not laughing; just as on your AZERTY keyboard, it's quite easy to accidentally type a ">" instead of a "<" on my German QWERTZ keybaord. Our $KeyNums are NEVER reused. In fact, a great deal are never used at all due to certain internal generation methods. For more detailed information, see my document, "Healthy Respect for Healthy $KeyNums Gives You Healthy Data". Inserting the new $KeyNum into the $OtherBigApp record is indeed the best solution and fully supported. You should be able to batch the job but mind the shift key. Regards, REC </blockquote><br />And that should've been it. And lo and behold, it was... almost.<br /><blockquote>Thanks a lot for confirming !!! I just told it 3 times to the customers but they did not beleave in it. I think it is the biggest bullet I saw in my career.<br /><br />I would never understand how they could realize it only one day later...<br /><br />Thanks for giving my the reference. I searched for it but was not able to find it. I really dislike this new µù%$£! support web site (µù%$£! stands for some word that a polite woman is not suppose to use!)<br /><br />kind regards<br /><br />Marie<br /></blockquote><br />A fucking <i>human</i>! I was actually, truly, unmistakably communicating with a human being! A competent <i>and friendly</i> one, at that! That's my 2008 quota used up.<span style="font-style: italic;"><br /><br /></span><i>Root Cause: 6-Customer Error</i>. If it'd been the fucking bozo who actually did the drop then yes, there'd be five internal notes appended demanding my <i>Root Cause: 17</i>.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-18490962028382805412008-05-26T16:19:00.000+02:002008-05-26T16:19:07.553+02:00Closing TimeGod<i>damn</i> I hate when the phone ring. It was <a href="http://stuckinthecube.blogspot.com/2007/11/hey-dingbat.html">Meathead</a>, my new manager after his recent promotion and the latest management shuffle. Having himself spent so much time kill floor he's much more tolerable and understanding of our problems than any of my previous headaches.<br /><br />"Hey, Dog. I need to see you in my office." Fuck. What did I do now?<br />"Gimme five to write up this ticket solution and I'll be there."<br /><br />"'Sup, Meathead?"<br />"It's coming up on the end of the fiscal quarter. We have to close tickets."<br />"I'm still trying to answer all the ones I've got! By the way, what can you tell me about a corrupt RAID-5 superblock when an fsk returns 'bad inode number 0 to ginode'?"<br />"Oh, hey... fuck, man! Ask TT if he can help you with that. I have an emergency conf call in 15 minutes with the other $MyLevelManagers and our boss. Stop what you're doing and close all the tickets you have which are customer-close-initiate or have expired response dates."<br />"Sorry. Can't do it.<br />"You have to!"<br />"Nope. I'd like to help you out but I can't."<br />"Look, you have to close these tickets!"<br />"I don't have time. There's no way I can do it and follow the brand-new ISO9K process. To complete the mindless masturbatory exercise in uselessness and fill in all that shit takes more than an hour per for any open ticket."<br /><br />They sprung this one on us a couple weeks ago in a useless <a href="http://stuckinthecube.blogspot.com/2006/06/cow-orkers-v-meetings.html">meeting</a> (redundant, I know), in which a PowerPoint presentation was sadistically read at us and repeated. Lies were told about how this has been mandated for ISO9K compliance -- ISO9K makes no such requirements, only that a process exists and is fully carried out. Among the required entries in each ticket are a rephrasing of the question, a research item even if the question is "Does your software run on an Atari 800?", an initial suggestion, an internal entry justifying that suggestion, and so on.<br /><br />I've been having some fun with <i>justifying</i> my fucking suggestions, among them:<br /><ul><li>Space færies from the planet Scripplick came to me in a daydream, interrupting my <a href="http://arcade.itch.com/games/random-defense/">Tower Defense game</a>.<br /><li>Thanks to a very large meal the previous evening, the suggestion was one of many items which exited my gastro-intestinal system minutes prior to responding to the ticket.<br /><li>Because I said so<br /><li>I first tried to extract an answer by pulling every nth word from MacBeth using the Fibonacci series. This failed so I tried again with the original <i>Pulp Fiction</i> script. While this latter result was infinitely more amusing it still left much to be desired so I went over to ITToolbox and yanked the answer written by one of our former colleagues. </li></ul><br />"Fuck the process, Dog!"<br /><br />Huh?<br /><br />"We have to close the fucking tickets! Fuck the process. Close your tickets!"<br />"Can I have that in writing please?"<br />"I just told you to do it."<br />"Yeah, and in a few months when I'm reviewed I don't want this showing up. As soon as you send me the fucking mail I'll close 'em. You'll be amazed."<br />"I don't have time," he answered.<br />"You take one minute to mail me that ISO9K requirements are suspended for end-of-quarter closing tickets and I'll move from the top of your list of expired open issues to the bottom."<br /><br />Two minutes later he was on the phone again. He'd fired off the mail but wasn't about to wait for our shitty server to take its sweet time in delivering. He promised I could look in his Sent Mail folder. I set to work.<br /><br />Twelve minutes later I'd closed out 32 mooks and there are another dozen or so I can knock out this week.<br /><br />I think I'm finally getting a little better at this game.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-28450854731945020462008-05-23T14:44:00.000+02:002008-05-23T14:46:18.496+02:00Make room! Make Room!In comparison with the cost of our software licensing and support contracts, the cost of a the hardware is negligible, even with the most expensive OS running on it. In fact we could probably <i>give away</i> racks of 2U dual-Xeons with 16GB RAM and dual 300GB hot-swappable SCSI drives in order to push our applications. We could even throw in copies of Windows Enterprise Datacenter edition for those companies too cheap to outsource their operations where competent UNIX/Linux admins can be found.<br /><br />Over the expected life of the hardware, the cost of the equipment is statistically 0 at a confidence level over 95% as compared to the costs of the software and people to make it work. Few idiots realise this -- not even our own. So perhaps I shouldn't have been as surprised to receive the following question:<br /><blockquote>File System 80GB not enough.<br /><br />Please can you advise the $Megacorp recommended stategy for low cost solution with regard to Files Attach Archiving. We currently have a single FServ of size 40GB which is bound to grow by 25% every year. Thanks,<br />$CommonNon-WesternName<br /></blockquote><br /><span style="font-size:78%;"><clicky-clicky></span><br />WTF? A dozen 2Us, half a dozen 4Us, a bodacious cluster all worth around a quarter-mill, and you not only want more disk space but you want it to be <i>low-cost</i>?!<br /><br /><span style="font-size:78%;"><clicky-clicky></span><br /><blockquote><b>Monkey:</b> All you have to do is stop the App service, change $Value to $NewValue in the config file, and restart the service.<br /><b>$CommonNon-WesternName:</b> How do you stop service?<br />--<br /><b>$CommonNon-WesternName:</b> I turn off Name Resolution Server and now system not working!<br />--<br /><b>$CommonNon-WesternName:</b> Config file $YourBigApp.cfg does not execute! How to start server??<br /></blockquote>No, I don't think we'll be able to walk him through something as complicated as the four clicks it takes in Win2K3 to span volumes.<br /><blockquote>Software Support is prohibited from making hardware recommendations. This is a matter to discuss with your TAR or Sales Rep.<br /><br />That said, you have almost 2TB available on your cluster. Please see our Cluster Admin documents and move the file storage system to the cluster machine as we recommend.<br /><br />Regards,<br />REC<br /></blockquote>Easy. Free. Effective. Fully documented with explanations any techno-tard can follow. And that should've been the end of it. But it never is...<br /><blockquote>Hi there,<br />Thanks for your update. We are not for use the cluster for file savings. Please provide a working solution as we have only 80GB for the file storage.<br /></blockquote>WTF? The only thing running on a big honking $80K cluster doesn't eat as many resources as FreeCell or Notepad and you won't move the file storage to it? OK, maybe the solution is another box. And it has to be inexpensive. Let's try this...<br /><blockquote>If you are unwilling to move the files to the cluster you could build a white box file server with the OS on two small drives in a RAID-1 configuration and six 500GB drives for storage in a RAID-5 configuration for under €1500. Most PC motherboards include hardware RAID support. Our file storage system is an independent subsystem which is handled by the machine's operating system. Files are only stored and read; no special handling or communication exists.<br /></blockquote>Simple. Get a white box which costs less than a single 300G hot-swappable SCSI drive for the rackmounts.<br /><blockquote>Hi there,<br />Thanks again for your update. The amount of book keeping involved in removing, updating and adding files, attachments, etc. is huge no wonder we have third party products like File System Archiving Product "Livelink ECM - File System Archiving' from OpenText Corporation".<br /></blockquote>Bookkeeping? Huh? You're not supposed to <i>touch</i> those goddamned files, you ninny! No wonder you filed those other two tickets about missing and b0rked files.<br /><blockquote>There should be no "bookkeeping" involved in the file storage system. This is a function which is handled by $OurBigApp. If you are unable to store your attachments on your available 80 GB drive then you need to provide more storage space. I have already explained how you can move the files to space you already have available as well as how to build a 2.5TB storage machine in an inexpensive, safe and supported way. If you cannot or will not build such an external file storage server then you need to contact your TAR or Service Representative.<br /></blockquote><br />TAR Handoff. Force-close with prejudice. Root Cause: 17-Fuckwit.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-78210335116935294902008-05-20T16:11:00.001+02:002008-05-20T16:11:01.614+02:00And Yet I am SurprisedI have to leave this job. I must. I've reached a point I didn't think possible and having seen it, I know this can't go on.<br /><br />Another high-prio Class 1 ticket came in which wasn't really Class-1 because the system wasn't down.<br /><br /><blockquote><br />Hi,<br /><br />Our server is very close to running out of hard drive space due to the fact that our file storage is located on this server. We do not have any RAID slots available to add new hard drive space so we are looking to move the file storage to a new server. I want to make sure that I am doing this correctly with you all.<br /><br />Do these steps sounds correct, or is there something I can follow for this?<br /><br />[complicated 9-step process redacted]<br /><br />Are there any other steps necessary for this?<br /><br />-Doug<br /></blockquote><br />So I wrote back a simple answer within an hour:<br /><br /><blockquote><br />Doug,<br /><br />The Admin Docs explains how to move the file storage system to a new physical location in Chapter 3, "Administering the File Storage System" under the heading "Moving the the File Storage System".<br /><br />However, you can simply copy the entire parent directory and structure over from the old system to the new. There's nothing else to do other than provide the new path in place of the old in the two config files and File Storage Administration records. This easier method requires a server restart.<br /><br />Regards,<br /><br />REC<br /></blockquote><br />And that should've been the end of it. I got an update two days later and I was gobsmacked. I read it and sat there with my mouth wide open in shock.<br /><br /><blockquote><br />Thank you. This worked perfectly. Have a great weekend.<br /><br />Doug<br /></blockquote><br />I was in shock because a customer <i>did what I told him to do</i> and then he actually <i>thanked</i> me! Compare and contrast this with Mook-Man, to whom I'd sent <i>exactly</i> the same response seven weeks earlier (I'd cut and pasted the answer I sent to Doug from Mook-Man's ticket).<br /><br />It would take me too long to detail the plethora of activities but in Mook-Man's case there were 17 attempts to call me, two escalation demands, 14 follow-up questions (each one ignoring everything previously stated), 14 follow-up answers, 11 demands for Web conferencing (always around midnight my time, natch), and because this still wasn't enough, that attention whore brought in his Technical Account Representative whom he demanded work on-site. The TAR of course didn't; he used teleconferencing. The actual "problem", of course, being that Mook-Man never even looked at what I'd written much less actually try and follow the simple instructions.<br /><br />This I'm used to. I've become as inured to such fuckwits as <a href="http://standingonthebox.blogspot.com/">Rob the Bouncer</a> has to Guidos. You see a problem, you sigh, you do your best to avoid escalation, you sort out any resulting mess, you collect your money and go home. So far, so good. But when I'm literally shocked because someone did the right thing and then <i>thanked me</i> for helping him, and then went so far as to wish me a nice weekend, there's a problem which needs to be dealt with.<br /><br />And I'm now doing just that.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-52601587538579558142008-05-12T13:59:00.000+02:002008-05-12T13:59:15.274+02:00Solving a Difficult Sudoku: The "Group Cut" MethodIt's been a year since I posted a <a href="http://stuckinthecube.blogspot.com/2007/04/solving-difficult-sudoku.html">new method for solving sudoku puzzles</a>. Maybe it's just me but the hardest puzzles seem to have gotten a lot harder over the past year or two and some friends have agreed. Over the past six months I've come up with another method to retaliate: the "Group Cut". Being able to solve the hardest sudoku inside 10 minutes, I decided to make things more difficult and stopped writing helper numbers in unknown squares. That led to my discovery of this method which I use on around a quarter of all sudokus I solve these days.<br /><br />Thanks to a three-day weekend (today's <i>Pfingsten</i>, dontchaknow) and having gotten many other things out of the way I was able to put in the necessary time to make the graphics and write this up, ensuring the method was necessary for solving the puzzle rather than just useful due to oversight.<br /><br />This method is a more holistic approach but it has nothing to do with newage stupidities like crystals, perfumes and furniture arrangement. Rather, I'm using the word "holistic" in its dictionary sense: approaching the puzzle as a whole rather than as a series of discrete digits. Read on and see what I mean. I promise that there's nothing about "chakras", "chi", "energies" or any such similar nonsense.<br /><br />As in previous explanations, I order each block of nine squares with a letter and each individual sqaure in the block with a number:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCbrpownioI/AAAAAAAAAJs/8jcVLLV3B5Y/s1600-h/gc00.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCbrpownioI/AAAAAAAAAJs/8jcVLLV3B5Y/s400/gc00.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199101920394316418" /></a><br /><br />You can play along by grabbing yourself a copy of this puzzle from <a href="http://www.websudoku.com/">websudoku.com</a>, a site I'm happy to plug because they allow unlimited free access and keep things simple. This time we're going to use <a href="http://www.websudoku.com/?level=4&set_id=9725408088">Evil Puzzle 9,725,408,088</a>:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_hG58oBSan44/SCbrp4wnipI/AAAAAAAAAJ0/JKFG2mmSM7k/s1600-h/gc01.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_hG58oBSan44/SCbrp4wnipI/AAAAAAAAAJ0/JKFG2mmSM7k/s400/gc01.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199101924689283730" /></a><br /><br />The first thing we do is run through the rows & columns to pick off the easy prey:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_hG58oBSan44/SCbrp4wniqI/AAAAAAAAAJ8/ysJaSNFfEMU/s1600-h/gc02.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_hG58oBSan44/SCbrp4wniqI/AAAAAAAAAJ8/ysJaSNFfEMU/s400/gc02.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199101924689283746" /></a><br /><br />That's seven boxes out of the way. A second round of row & column scanning from 1-9 places a 1 in H2 (G5 & B6 block the other possibilities) as well as in A9. The 1 at G5 and the blocked right column of block D mean that the 1 must be in the right column of A1, This then places the 1 in C1.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCbrqIwnisI/AAAAAAAAAKM/q_oaSbOoPiY/s1600-h/gc04.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCbrqIwnisI/AAAAAAAAAKM/q_oaSbOoPiY/s400/gc04.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199101928984251074" /></a><br /><br />It's time to do a little deduction. We still have no 2s but the 3s in G8 and H5 force a 3 in J1 or J3. Now using the <a href="http://www.palmsudoku.com/pages/techniques-4.php">Double Pairs technique</a> we see in block C there are also only possibilities in the outer columns so a 3 must appear in the middle column of block F. Due to D6 it can only be in F8.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCbv6IwnitI/AAAAAAAAAKU/mdhPZx10WMA/s1600-h/gc05.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCbv6IwnitI/AAAAAAAAAKU/mdhPZx10WMA/s400/gc05.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199106601908669138" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCbv6YwniuI/AAAAAAAAAKc/8arkTi5SZ3Q/s1600-h/gc06.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCbv6YwniuI/AAAAAAAAAKc/8arkTi5SZ3Q/s400/gc06.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199106606203636450" /></a><br /><br />That, in turn, places a 3 in E2. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCbv6YwnivI/AAAAAAAAAKk/TNLVDSP58z4/s1600-h/gc07.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCbv6YwnivI/AAAAAAAAAKk/TNLVDSP58z4/s400/gc07.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199106606203636466" /></a><br /><br />The 6s in B1 and C5 along with the 1 in A9 force A7 to be a 6 and that's where everything comes to a grinding halt.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCbv6owniwI/AAAAAAAAAKs/xQIsRqjJePg/s1600-h/gc08.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCbv6owniwI/AAAAAAAAAKs/xQIsRqjJePg/s400/gc08.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199106610498603778" /></a><br /><br />You have two choices: 1) Fill in every box with a load of candidates and try to fish out some pairs and triplets...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCbv6ownixI/AAAAAAAAAK0/hDPZqiUrjzw/s1600-h/gc09.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCbv6ownixI/AAAAAAAAAK0/hDPZqiUrjzw/s400/gc09.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199106610498603794" /></a><br /><br />OR, 2) employ "Group Cut".<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCb1dIwniyI/AAAAAAAAAK8/56-sCBLbK1M/s1600-h/gc10.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCb1dIwniyI/AAAAAAAAAK8/56-sCBLbK1M/s400/gc10.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112700762229538" /></a><br /><br />In this case the 4-6-9 in the sixth row and fourth column combine to leave only thee possible spaces in block E. These can then only be 4, 6 and 9. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCb1dYwnizI/AAAAAAAAALE/rv5NdS7LiUg/s1600-h/gc11.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCb1dYwnizI/AAAAAAAAALE/rv5NdS7LiUg/s400/gc11.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112705057196850" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCb1dYwni0I/AAAAAAAAALM/Q4HL5p2TBmw/s1600-h/gc12.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCb1dYwni0I/AAAAAAAAALM/Q4HL5p2TBmw/s400/gc12.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112705057196866" /></a><br /><br />The remaining numbers are 1, 2, 5, 7 and 8, and only the 7 isn't cancelled out in 6th column. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCb1downi1I/AAAAAAAAALU/rVJMT1bAeWY/s1600-h/gc13.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCb1downi1I/AAAAAAAAALU/rVJMT1bAeWY/s400/gc13.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112709352164178" /></a><br /><br />A look at the remaining two squares in this column show that the top can only be 4 or 9, tripling with the 4-6-8 we already have in E3 & E6, so H3 must be a 5 which means H5 is a 6.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCb1eIwni2I/AAAAAAAAALc/eZ0EM8CTZfw/s1600-h/gc14.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCb1eIwni2I/AAAAAAAAALc/eZ0EM8CTZfw/s400/gc14.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112717942098786" /></a><br /><br />Once this 6 is in place G7 has to be a 6.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCb1uIwni3I/AAAAAAAAALk/zshodiOZFNk/s1600-h/gc15.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCb1uIwni3I/AAAAAAAAALk/zshodiOZFNk/s400/gc15.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112992820005746" /></a><br /><br />From here on out it's a simple matter of elimination. Check the row, column and box of the number you just filled in and unless another group cut is necessary (possible), everything should fall into place relatively quickly.<br /><br />We just added a 6 in box G and only 2, 5 and 9 are available. A 5 in H3 covers the top row of box G so G6 has to be a 5, putting a 2 in A6 and completing that column.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCb1uYwni4I/AAAAAAAAALs/J6kofq65JIA/s1600-h/gc16.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCb1uYwni4I/AAAAAAAAALs/J6kofq65JIA/s400/gc16.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112997114973058" /></a><br /><br />With the 2 filled in A6, only A2 and 5 are unfilled and the 5 in C3 determines which is which.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCb1uYwni5I/AAAAAAAAAL0/KBgHsAqOtvY/s1600-h/gc17.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCb1uYwni5I/AAAAAAAAAL0/KBgHsAqOtvY/s400/gc17.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199112997114973074" /></a><br /><br />That leaves 2 & 4 in the top row in B2 & 3. B3 has to be the 4 and so B2 is 2.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCb1uowni6I/AAAAAAAAAL8/JxUStyynLhg/s1600-h/gc18.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCb1uowni6I/AAAAAAAAAL8/JxUStyynLhg/s400/gc18.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199113001409940386" /></a><br /><br />The 4 in the sixth column determines the 4-6-9 in block E.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCb1uowni7I/AAAAAAAAAME/kEB-TINvd44/s1600-h/gc19.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCb1uowni7I/AAAAAAAAAME/kEB-TINvd44/s400/gc19.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199113001409940402" /></a><br /><br />And so on. The puzzle is effectively done.<br /><br />Here's another example if this first one wasn't clear enough, this time with <a href="http://www.websudoku.com/?level=4&set_id=8601687531">evil-level puzzle 8601687531</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_hG58oBSan44/SCb6o4wni8I/AAAAAAAAAMM/c7o89GMMd3o/s1600-h/gc20.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_hG58oBSan44/SCb6o4wni8I/AAAAAAAAAMM/c7o89GMMd3o/s400/gc20.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199118400183831490" /></a><br /><br />This time, Group Cut can be employed even before the first rounds of row and column scanning.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCb6pIwni9I/AAAAAAAAAMU/GNx7kU9DTyw/s1600-h/gc21.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCb6pIwni9I/AAAAAAAAAMU/GNx7kU9DTyw/s400/gc21.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199118404478798802" /></a><br /><br />There are only five open squares in block D and the 2, 5 and 4 in the left column of block A cancel out two of them, leaving three. These <i>must</i> then be 2, 5 and 4.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/SCb6powni-I/AAAAAAAAAMc/Qtl_nizEm_g/s1600-h/gc22.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_hG58oBSan44/SCb6powni-I/AAAAAAAAAMc/Qtl_nizEm_g/s400/gc22.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199118413068733410" /></a><br /><br />The only possible numbers left for block D are 1 and 8 which already have complements in block F.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_hG58oBSan44/SCb6p4wni_I/AAAAAAAAAMk/eChfeTFP1X4/s1600-h/gc23.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_hG58oBSan44/SCb6p4wni_I/AAAAAAAAAMk/eChfeTFP1X4/s400/gc23.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199118417363700722" /></a><br /><br />With the 1 and 8 in place, Column 1 is complete in blocks A and D, leaving only a 3, 6 and 7 available for the left column of block G. Since there are 3s in both blocks H and J, G4 must be a 3.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCccr4wnjCI/AAAAAAAAAM8/BsXIhnbYp4A/s1600-h/gc26.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCccr4wnjCI/AAAAAAAAAM8/BsXIhnbYp4A/s400/gc26.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199155835118783522" /></a><br /><br />There are also 4s in blocks H and J which force a 4 into square G5. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/SCccr4wnjDI/AAAAAAAAANE/LZB1mZc1W40/s1600-h/gc27.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SCccr4wnjDI/AAAAAAAAANE/LZB1mZc1W40/s400/gc27.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199155835118783538" /></a><br /><br />So without having even scanned the rows and columns for single digits 1-9 we already have some numbers filled in.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCccsIwnjEI/AAAAAAAAANM/mEohFOczo4Y/s1600-h/gc28.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCccsIwnjEI/AAAAAAAAANM/mEohFOczo4Y/s400/gc28.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199155839413750850" /></a><br /><br />And we can use Group Cut again because the right-most row of block J does the same thing as before to block F, placing the 3, 7 and 4.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_hG58oBSan44/SCccsIwnjFI/AAAAAAAAANU/E1jCFQ-BvPg/s1600-h/gc29.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_hG58oBSan44/SCccsIwnjFI/AAAAAAAAANU/E1jCFQ-BvPg/s400/gc29.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5199155839413750866" /></a><br /><br />And that's about it. If this is still unclear, add a comment.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-8717615946217096792008-05-08T14:31:00.000+02:002008-05-08T14:31:00.700+02:00DistributionI'm in the wrong business.<br /><br />In order to ingratiate myself to management and colleagues alike, right after our local data center was moved to the UK for "consolidation" I built a local file server. This held various software builds available via resumable FTP. Since Windows Exploder has never been able to move 12GB of data across even a 10 fibre channel connection, this pleased everyone.<br /><br />That wasn't enough. I also made directories full of general tools and easy HTTP download menus for my fellow monkeys as well as setting up shares for management applications and data. Once I got my hands on a couple external drives I was able to then offer each monkey 20GB of personal temporary space and set the server up to auto-delete after 14 days. Considering our laptops only had 20-40GB drives, this was seen as a godsend. I was a hero and thanks to automating everything, didn't have to do much except occasionally manually check builds and add some new tools.<br /><br />But as always happens, the regular availability of such a service was slowly taken for granted. Until, of course, there was no availability. One of the external hard drives with 250GB of builds died and within a week, the video on the machine's motherboard died and wouldn't accept an ISA card as a substitute. Compaq sucks.<br /><br />Luckily we had one more of this exact model which was working. I was able to swap out the drives and spared myself a full install of Win2K3 and other software. Within four hours I had the system up and running and was once again the office golden boy, if only for a day. The external drive with the builds was another matter.<br /><br />Both the disk and the housing are shot. We need a new one. Here at $MegaCorp we have to go through a procuremnet process. My latest manager (I'm no longer under Vera!) ess-plained what we had to do. Knowing how important it is to have builds locally available, he told me to go to the procurement site and he'd approve immediately.<br /><br />No problem. Once I fought my way in through seven -- count 'em, <i>seven</i> log-ins -- I was on my way to getting a brand-new, shiny external drive. Except that I couldn't find it. Back to $Manager who explained that it's hidden and gave me some keywords to try. Success!<br /><br />It was shaping up to be a four-banananana day. I got to the page and with only 71 clicks (yes, I counted) managed to order the thing and send off the Procurement Approval Request. A 500GB drive would come in as a cost of almost €300! I can get the same damned thing for about €99 in a local store but we're stuck with this procurement crap.<br /><br />I figured it was just a matter of that being some sort of internal accounting number, that we'd only actually pay the €82 wholesale but that the €275 was a cost basis to include accounting, shipping, and all the other departmental disbursements.<br /><br />$Manager asked me to come to his office. No prob. I'm a hero today. I didn't tell any customer to fuck off. My queue is clear. I can do no wrong.<br /><br />"Did you SEE how much they fucking want for this drive?"<br /><br />Uh... yeah. But we need the drive and we're not allowed to go out and buy it on our own.<br /><br />$manager happens to have some private distributor accounts for his own sideline business and did a quick look-up.<br /><br />"We can't afford this in the budget. Here's what you need to do: Go back, go to custom orders, I'll send you this distributor information and attach it to the Procurement Request. In the notes tell them that we have to go to an outside supplier because this is only 40% of what the standard supply costs are."<br /><br />No problem. "I'll also add something about the standard supplied model being an unreliable drive and give 'em a link to something too technical to bother reading."<br /><br />"Good idea."<br /><br />So the procurement request has gone through and we're waiting for an approval from the HQ Asset Procurement division, undoubtedly something which will require approval from no fewer than five levels of hierarchy. If I get the drive before the end of the year I'll be surprised.<br /><br />But something wasn't sitting right. How the hell can we be cost-basing a hundred-euro drive at almost three times its value? I asked my buddy in the equipment holding pen in the basement. The guy's a serious troll-under-the-bridge but I've helped him out a couple times so I get what I want and I don't have to appear between 14:00 and 15:15 to get it. I'm welcome down in his cage any time.<br /><br />"Asset Procurement has contracts with suppliers for stable prices."<br />"Stable?"<br />"Yeah. We get guarantees for a stable price for 12-24 months on every item. We lock in at the current price and they have to sell us whatever it is at that price for the next year or two."<br />"Uhh... WHAT?!"<br />"Huh?"<br />"You're telling me that we're paying 2006 prices for a 500GB drive in 2008?"<br />"Yeah."<br />"Same for the 2006 model laptops?"<br />"Yup," he said through his teeth as his lips held onto the cigar stub.<br />"Where do I sign up to be a supplier?"<br /><br />Wotta deal. It takes a village to raise a village idiot and that's probably where we found the guy who negotiated that contract. Fuckwit.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-56807795433205256462008-04-25T14:35:00.002+02:002008-04-25T14:53:55.509+02:00ArchieI am the (proud?) owner of a first-place medal. In bowling. My 5-man team's combined best score never exceeded 730 and yet we beat the other seven teams at a $MeegaCorp-sponsored evening out at a bowling alley. It wasn't because the others sucked even worse than we did.<br /><br />When I was sent off to summer camp as a kid, I was provided with reading material consisting primarily of Archie and Richie Rich comic books. I wasn't allowed to take books like <i>Principles of Orbital Mechanics</i> because "they might get ruined". More importantly, I was geeky enough that I didn't need the aggro and torment my bunkmates would've heaped on me for the entire month had they seen me reading such things.<br /><br />Oddly, one Archie storyline stayed with me through the years. Archie was in some athletic competition and kept being bested in every activity, always coming in second. Reggie beat him in a race and Betty beat him in the long jump and so on. Even Jughead beat him in something. But Archie won gold at the meet. He did this because he placed consistently 2nd whereas the others who'd gotten first place in one event placed 4th or 5th in others.<br /><br />Supergeek noticed something wrong and I demonstrated that the author was lazy and hadn't actually done his math; the numbers didn't add up and I said so. "Jesus Christ, Canine! Who the fuck adds up scores in a fucking Archie comic?" my fellow 9-year-old incarceree screamed. My nickname for the rest of August was Columbo.<br /><br />But I was intrigued. Could there be a way to make the scoring work so that Archie could win even though he always came in second place? It took me a few tries but I figured out how it might work.<br /><br />In my university prob/stat course we had to write programs in some glub-awful language like MAPLE. The Archie conundrum was still in my head and so I used it as the basis of a complex assignment. It turns out that theoretically it's quite <i>probable</i> that a second-placer will win overall as long as he's consistent and there are enough other actors (probabilty becomes >50% at 6 or 7 actors).<br /><br />And now it's happened to me in real life. An evening of bowling on the $MegaCorp dime. We came in second place in each of the three full games played. But while some other team would soundly trounce us in one round, they'd play poorly in another. We played consistently and won.<br /><br />The best thing of the night wasn't winning the damned "team-building" event -- like I could give a rat's ass about that. It wasn't even the free food (we had to pay for our own beer). It's that my Archie conundrum which has followed me for three decades or so has finally put to bed.<br /><br />Me. First place in bowling. Insanity, I tell ya.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-77767363443279051662008-04-23T15:50:00.003+02:002008-04-23T16:33:28.367+02:00Cars & Trucks<i><span style="font-size:78%;">Part 1 in an irregular series about bad management</span></i><br /><br />Imagine what things would be like if a major truck manufacturer -- let’s call it Peterworth – were to function like $MegaCorp. If Peterworth wanted to get into the automobile manufacturing business, it might make sense for them to purchase Maserati. It's a high profile manufacturer, a market leader in its division, and Peterworth would stand to gain valuable technology as well as aerodynamics and design engineers. However, it would be absurd for Peterworth to then insist that Maserati use the Cummins ISX engine for production vehicles.<br /><br />But perhaps Peterworth’s managers might respond that the 11-liter Cummins truck engine offers 530 horsepower while Maserati’s top engine only puts out 405hp. If management’s only goal was brake horsepower and they ignored everything from design to weight to fuel usage we would at least understand the reasoning behind such a bad decision.<br /><br />But this is only the tip of the iceberg. Peterworth likes consistency throughout their design and production. One constant design element is cab-over: to access the engine the entire cab rotates up and forward hydraulically. Maserati engineers would protest that the engine is in the middle and it’s impossible to lift the entire body to expose the engine since the car incorporates unibody design for safety and stability.<br /><br />Peterworth management ignores the explanations and demands a new, cab-over design, telling the Maserati engineers to figure out how to do cab-over to expose the engine which wouldn’t fit under a normal hood anyway, and that if safety is an issue then they better get back to work on the design already. After all, they’re part of Peterworth now.<br /><br />The engineers figure out how to mount the massive engine in the middle behind the driver, cut the body and strengthen it using steel beams, incorporate a cab-back design so that the back half of the body can lift and rotate, and they do their best to make the thing aerodynamic.<br /><br />The drawings still look workable even if the result looks nothing like previous Maseratis. But then a Peterworth engineer notices that there’s no way to stack the front of one car onto the back of another. Maserati engineers ask why the hell you would need to do that to which the Peterworth engineer responds, "So we can deliver the things." Trucks are normally delivered by chaining a few cabs onto the fifth wheel of the truck in front of them, sending them out to dealers in this configuration three to five at a time.<br /><br />Of course the Maserati engineers are floored and try to explain that cars are delivered using car carriers which can hold six to eight at once. Peterworth replies that the have no car carriers and their market research shows that customers like the current delivery method. Some smart-assed dog-monkey in Maserati asks Peterworth management if customers had been asked about car delivery being handled the same way as trucks and is quickly muzzled.<br /><br />So the engineers go back and make further design changes to reinforce the rear of the Maserati with more steel so that if can bear the additional weight. They then realize they have to increase the tire size and change the rear suspension. Maserati engineers also have to modify the front design to add weight and a linkage so that this stacked delivery method could function.<br /><br />The car is now uglier than a 1972 Volvo, heavier than a Hum-Vee, has the aerodynamics of a garden shed, the handling of a canoe, and costs more than a Ferrari Enzo. But Peterworth management is thrilled because the car meets all their metrics: it has the highest horsepower available in a stock car, uses many of the same parts already used in production in other divisions, and it’s capable of being delivered using the Standard Delivery Methodology.<br /><br />Despite poor reviews, complaints, dropping sales, drastically reduced customer satisfaction and constant demands that Maserati cars at least perform and handle like they used to, management sees raving success thanks to the chosen metrics being fulfilled.<br /><br />Management has another idea: worker equality. The workload is widely distributed at Peterworth and there's no reason that the Maserati people should be treated differently. Peterworth's way of thinking doesn't allow them to differentiate between the ¤100/hr engineers, ¤80/hr monkeys, ¤30/hr secretaries and ¤8.37/hr outsourced monkeys. They all know Maserati, they can and will all do each others' jobs.<br /><br />It doesn't matter that most secretaries have never drawn a single mechanical sketch in their lives or that the engineers don't know how to hand-bore an engine. Work is to be distributed <i>fairly</i>, meaning each person will complete X number of "tasks" each day. Anyone working for the Maserati subdivision ought to know how to work on Maserati issues.<br /><br />The workers themselves are smart enough to know their limits so while some engineer is trying to figure out how the hell some glub-awful spreadsheet was put together, the secretary who should be doing it is asking him about metal alloy shear strenght since she's been tasked with a piston redesign. They're not allowed to trade tasks; management knows best. But they end up wasting even more time trying to figure out how to do their assigned tasks <i>and</i> helping others to do the tasks they themselves could do best.<br /><br />But management is also always on the look-out for ways to improve a product. They approach the engineers and tell them that there’s only one small problem with the car: it’s not pulling enough weight. Literally. Next year’s design needs to raise the rear end and incorporate a fifth wheel so that the car can haul at least a standard 20´ trailer. The following year’s model can be upgraded to allow for hauling a full 40-footer.<br /><br />This is <i>exactly</i> how management at $MegaCorp think and act. If you thought you knew who $MegaCorp was before, you can now be certain whether you’re right or wrong.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-35663350916899907952008-04-22T14:16:00.001+02:002008-04-23T08:44:59.311+02:00ATTENTION JULIE BECKMANN INFIDEL:...and the rest of all you Googlies: Turn off that fucking geotracking already! When I go to Prague and need to use your site, I can't fucking find anything! I don't speak Czech and I don't know which fucking link is the one which will give me your goddamned page <i>in English</i>!<br /><br />Geotracking is stupid. That's why most of us gave up on it a decade ago, about three and a half weeks after we figured out how to do it with some JavaScript and cgi. That's what the fuck cookies are for. If I don't have a cookie, default to the goddamned locale for the TLD I entered in my browser. If I wanted to see the results from google.de or google.co.uk I would've typed them -- and not google.<b>com</b> -- into the fucking browser. Do you have any idea how many fucking expats there are in this country? Stupid question; of course you don't or you wouldn't do this.<br /><br />If I go to google.COM (or .co.uk, or .ca, or .nz or .au...) then give me the fucking site in English you fuckwits. Don't sit there querying my browser about the computer's locale; I have it set to Iceland, Afghanistan and/or Barbuda to fuck with anyone else trying to track me for marketing through any machine on which I have to run Windows (thanks for working on Linux compatibility for PhotoShop, BTW).<br /><br />If I wanted your German site dann hätte ich <i>google.<b>DE</b></i> in der verdammten Browser-Instanz eingetippt. Og ef ég vil lesa þetta á íslensku, skrifa ég <i>google.<b>IS</b></i> í Firefox, fávitarnir ykkar. I typed <i>google.<b>COM</b></i>. English, motherfuckers; I SPEAK IT. Or allow language specification through a language code prefix the way Wikipedia does it: en.google.com, de.google.com, jp.google.com. Simple, huh? <br /><br />You're doing this with Adsense, too. All attempts to view my account are met with your stubborn insistence on throwing up the new T&Cs in German, even though I'm <i>logged in</i> and you know my preferences. You force me to click through this page and accept or deny the new T&Cs. In German. By doing this you're giving me all sorts of rights you really didn't intend to. <br /><br />German law makes it very clear that unless a contract benefits all parties it's invalid. We already have an agreement and you must live up to it if I'm not willing to renegotiate. You're not giving me a choice to keep my old contract <i>or</i> accept the new one, a condition $MegaCorp was forced by law to do when they took over $BigCorp. They made the new contract slightly more agreeable in order to get me to sign.<br /><br />A contract which I'm coerced into accepting though I don't understand it is equally invalid. This boils down to the following: by using that goddamned geotracking and not giving me any option to change the language so that I can read the contract in a language which I am comfortable with in a legal sense, you have denied yourself any new rights this contract gives you. Any attempt to enforce the new terms when they differ from the old terms will be futile. Stupider still, the Accept/Bug-Me-Later/Deny radio buttons and accompanying text are in English. So you <i>know</i> I want English and still refuse to present it to me.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/R9CChrJNRKI/AAAAAAAAAI0/CCobem7pdUA/s1600-h/AdNonsense.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_hG58oBSan44/R9CChrJNRKI/AAAAAAAAAI0/CCobem7pdUA/s400/AdNonsense.gif" alt="" id="BLOGGER_PHOTO_ID_5174779486877336738" border="0" /></a><br /><br />I speak German but not at a level necessary to understand the ramifications of legal documents. The less-than-stellar outcomes of my German legal experiences serve as clear evidence of this. You're not allowing me to read the goddamned documents in the language of my choosing which happens to be your official language of record.<br /><br />I am now no longer legally bound by the AdSense contract, Google. You are; I'm not. I know you don't realise this yet because your I18N group is seriously lacking thanks to your decision to do most internationalisation work via volunteer intarweb translators. Y'all might want to read up over at <a href="http://blogs.msdn.com/michkap/">Michael Kaplan's blog</a>. I'm curious: how long did it take you to realise how much you were pissing off Spain when their calendars were starting on Sunday instead of Monday? Was it before or after you realised the Icelanders were upset because they could search in Klingon, Fuddian and SwedishChefian but not in their native language?<br /><br />If you, like the typical geek coders you hire (fluorescent tan and only the most abstract idea which end of a girl is "up" much less "in"), just <i>have</i> to keep the damned geotracking turned on, then for fuck's sake add a fucking language preference dropdown at the top of every single page. Or just pay attention to any of the 14 cookies for each of my IDs that you've dropped in my browser, almost every one of which specifies English as the language of choice. Like both of the AdSense-accessing accounts.<br /><br />In case you haven't been really paying attention to what I've been writing over the past couple years, Im willing to entertain job offers and it seems like y'all are in some serious need of an I18N czar. I prefer to work primarily from a home office (currently in Krautreich) although I'm willing to commute. I fly business when you want me to show up for meetings because you'll expect me to be functional within 20 minutes of arrival at SFO and that ain't gonna happen if I'm stuck in cattle class. <br /><br />So here's the deal. You turn off the geotracking and I'll consider your job offer as long as it's in English. I think that's fair.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-71690361588832474432008-04-21T15:00:00.001+02:002008-04-21T16:19:14.807+02:00Charting the PresentA picture rather than the usual thousand words. Click for a legible version.<br /><br /><a href="http://bp3.blogger.com/_hG58oBSan44/SAyO9a3UJMI/AAAAAAAAAJk/nWHnc-UaYms/s1600-h/DayiInTheLife_flowchart.gif"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_hG58oBSan44/SAyO9a3UJMI/AAAAAAAAAJk/nWHnc-UaYms/s400/DayiInTheLife_flowchart.gif" border="0" alt="Flowchart"id="BLOGGER_PHOTO_ID_5191681656285832386" /></a><br /><br />That pretty much sums it up. Now back to some guy's HP-UX problem. Not that I <i>know</i> HP-UX but that didn't stop me from getting chosen to resolve it,. The Citrix problem that came in from Germany, from a German, written in German, needing technical knowledge... that went to someone in Bangalore. Her only comment in the ticket: "What is Citrix?" It's in my queue now.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-47290837101534356612008-04-18T15:10:00.000+02:002008-04-18T15:10:27.144+02:00Which Side Are You On?<i>Current Location: Near a high tower<br />Current Mood: Murderous<br />Current Music: Billy Bragg - Back to Basics</i><br /><br />So the conf call is over. I was right. Had I not had the logs beforehand we would've been completely confused and gone in the completely wrong direction based on their verbal descriptions. But just before it began...<br /><br />Another mail from upper manager arrived with a distribution list including extra names of people who had nothing to do with this issue or customer. Like the director of Program Contract Management. I ess-ploded.<br /><br />John the upper manager is actually an upper upper upper manager. And instead of doing his job and getting a PITA customer to provide information so that I didn't have to sit on a conf call with my thumb up my ass saying, "Durr, I don't know," for the duration, he instead demanded I waste time and make us look like incompetent jackasses. This company has a cornucopia of stupid from which each level of management drinks more deeply than their underlings.<br /><br />Luckily my lowest-level manager did manage to get the company to send shit in and delay the call. This angered upper upper upper manager who believed we should simply be on the phone rather than pissing about with technical information. When 1500 users are doing nothing but searching their machines for winmine.exe, most companies don't want group hugs and idiots empathising with their situation. They want fucking answers.<br /><blockquote>Can we have a customer focused monkey assigned to this ticket. The customer is extremely concerned, most of their business is unable to run and we won't speak to them!<br /><br />I spoke to the customer, they are reasonable, they feel they can explain what they have done quickly on the phone and are willing to work with us on this but just would like the reassurance of a discussion.<br /><br />Please help.<br /><br />Judy,<br /><br />FYI for when the customer satisfaction complaint arrives.<br /><br />Regards,<br />John</blockquote><br />I hit the fucking roof. He's not only put in writing the claim that I'm not "customer-focused" (a Very Bad Attitude indeed), he additionally added his expectation of a customer complaint.<br /><br />As soon as the call was over, I got to work. Not responding would only indicate my acceptance of his letter. 'S how it works in shitty corporate life. I'll be damned if this cocksucker's bullshit is going to affect my reviews.<br /><br /><blockquote>John,<br /><br />I strongly resent the baseless and patently absurd characterisation that I am somehow not "customer-focused". I'm currently focused on 31 customers and I have a long history of high customer sat.<br /><br />I followed procedures and asked management to do what management does whenever we're confronted by an customer making unreasonable demands. Discussing the problem without seeing the logs is an exercise in futility and a waste of time which could be better spent resolving other customer problems. I have been told to follow such a procedure by three different managers over the past eight years.<br /><br />$BigInsurer sent the logs and we were able to make a diagnosis. Had they not sent the logs this would have been impossible; their descriptions of the problem would have led us /away/ from the true cause. On the call I provided further information and testing procedures they can follow. Before joining I sent an answer which they agreed was more easily understood when read.<br /><br />Please retract your unconscionable statement and atrocious characterisations of me. I'm shocked and appalled that you would not only fail to support me in trying to do my job but that you would publicly claim I was not "customer-focused" and note such an expectation of negative feedback.<br /></blockquote><br />Oddly enough mail from him has since dropped to zero. $BigInsurer is happy. Their system is working and they're getting quick updates from me. They're praising me in each reply.<br /><br />One might expect this bastard to try and take credit for this by having forced me onto the call. Enough mail and customer comment proves otherwise. What this fuckwit John doesn't know is that I know <i>his</i> boss supports my position. I know this because $LowestManager was at the big meeting where $BigBoss explained this. As dangerous as my response might seem, my ass is covered. Turns out that John has become notorious for screwing the workers and taking the idiot customers' sides despite explicit corporate policy to the contrary. <i>Which side are you on, Boy? Which side are you on?</i><br /><br />Not five minutes after hitting send, up popped an IM window from <strike>sn4tchbuckl3r</strike> the manager in Bulgrohungria. "OH NOES! We fucked up a ticket! Nobody answered for a week! Can you take it?"<br /><br />Why me?<br /><br />"It's Citrix."<br /><br />Of course. Surprisingly it wasn't filed by $VeryTouchyCustomer. That company is in the same country, and the business is related. More importantly, it reads almost exactly like tickets which $VeryTouchyCustomer does send in.<br /><br />&lt;clicky clicky&gt;gg: $VeryTouchyCustomer $OtherCustomer<br />A subsidiary.<br /><br />&lt;clicky clicky&gt;SELECT Contact, DataCenter from T_CUSTOMERS WHERE Profile=(SELECT Profile FROM T_CUSTOMER.$OtherCustomer);<br /><br />Like <a href="http://www.legalnews.net/quotes/wilee.htm">Wile E. Coyote</a>, he never learns. As he stood there in his Acme Shell Corporation Account suit wringing his hands with anticipation of the answer he so wanted to hear, I pushed him off the cliff with a quick cut &amp; paste from the last $VeryTouchyCustomer ticket. At which point Sandra walked over to ask me certain Citrix-based questions. I didn't have to ask for whom. She was curious about $StupidDocument and hadn't yet had a chance to talk to Gloria.<br /><br />Dinner was half a tray of 4-day old leftover Indian take-away and bottle of 18-year-old single malt Scotch. I finished my entire meal.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-28113548882687776442008-04-17T15:36:00.001+02:002008-04-23T16:38:05.302+02:00Heart AttackNo, I didn't go to <a href="http://laughingsquid.com/you-suck-at-photoshop-10-vanishing-point/">Donnie's Happy Place</a>. A couple weeks of pneumonia followed by a vacation during which I caught a cold gave me enough time out of the orifice that I actually arrived today in what could almost be termed a state of "calm" (for values of <i>boolCalm < "mania"</i>).<br /><br />Inside three hours my blood pressure has returned to its usual value of astronomical-over-gargantuan.<br /><br />Right away I was hit with bad news: Mini-Me is gone. Fucker. He sent me a note. I don't blame him. Under the circumstances I'd've done the same thing. Smart puppy, Paul. Getting out before his skills deteriorate and he's locked into this hell the way so many of us are with few externally marketable skills is the smartest thing he can do. The pay increase doesn't hurt either. The reasons for his departure are the subject of a half written, less-ranty entry.<br /><br />As I started clearing out a load of dead and forgotten tickets, I was visited by a TAR who wanted to know about Citrix. He then started arguing with me saying that we do support it as if he himself was the fucking customer. A light went off. He wasn't arguing like just any customer, he was arguing just like <a href="http://stuckinthecube.blogspot.com/2007/07/stupid-questions.html">these jackasses</a>.<br /><br />"Joe," I asked, "is this about $VeryTouchyCustomer?"<br />"Yes, why?"<br />And I explained all our time they've wasted over more than a year, coming here, having me go out there, letter after letter after document. They thought they'd found a loophole. This belief was made possible by their ignoring the fact that I'd told them "Vendor-verified" still doesn't mean we'll deal with any problems. Shit won't work, period.<br /><br />I checked the worldwide tickets for references to Citrix. There are only two people in the company <i>not</i> getting Citrix tickets: me and Mini-me, odd because we're the only two people qualified to answer them. Mini-Me knows at least enough to cut and paste my answers. Not so the other monkeys. I had to add notes to a dozen other people's tickets.<br /><br />And that should've been the end of it. But it wasn't. It never is.<br /><br />Gloria showed up. Wanting to know about Citrix. And vendor verification. And documents. Gloria's some sort of non-technical Company Rep. No, she hadn't talked to Joe. No, she's not sure if it's for $VeryTouchyCustomer. I had her check. Of course it was, and I got to spend the next 30 minutes explaining the same shit to her that I'd told Joe an hour before. While she didn't fight like Joe did, she kept interrupting because she didn't understand how "vendor verified" wasn't the same as "$MegaCorp certified and supported". Muppet.<br /><br />And just as I got back to the <strike>Cube</strike>Desk of Hate high atop Munich on the first floor of the Panopticon Greenhouse, up popped a note. I have a Sev-1 ticket from $BigInsurer. Surprisingly their data center is not on any subcontinent but rather an actual island. Oh joy of joys!<br /><br />It was then that a flood of mail came in. Escalation mail. A quick peek at the audit trail showed me the following:<br /><ul><li>11:17 Ticket submitted </li><li>11:19 Escalation level 2 </li><li>11:20 Escalation level 1 </li><li>11:24 Activity: phone number changed </li><li>11:26 Activity: Manager response </li><li>11:29 Ticket dumped in dog's lap </li><li>11:29 Escalation notice sent to REC, managers, upper managers </li><li>11:31 Demand for conf call </li><li>11:34 REC requests basic information, logs, etc. since none were provided </li><li>11:37 Conf call details provided </li><li>11:38 Conf call details changed </li><li>11:41 Another demand for conf call </li><li>11:44 Response to info request: we'll wait for the conf </li><li>11:47 REC demands info immediately, gets manager to explain pointlessness of joining call. </li><li>11:53 REC receives demand from upper management to get "customer-focused" and join call </li><li>12:12 Lower manager gets customer to agree to send logs and reschedule conf call </li><li>13:04 REC receives logs eleven minutes before conf call </li></ul>Fuckwits, all of them. In ten minutes the fun starts.<br /><br />I know need nitroglycerin. I just haven't decided if it would be more appropriate to ingest the shit or just detonate it.<br /><br />To be continued...ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-22769821361831488802008-03-21T14:48:00.000+01:002008-03-21T14:47:31.890+01:00IRCing Wat Ur DoingAfter four hours of conf calls with people so stupid the only reason that they don't check the level of gasoline in their cars with a lighter is that flicking a Bic without a 14-page PowerPoint explanation is beyond their feeble mentalities, I finally got home. In trying to relax I hopped on #husi at slashnet and got into a chat with others facing the same sorts of hell that I do. Thanks to aph for sparring with me and making me laugh in a moment when all I wanted to do was deepen the my-head-shaped-dent in front of the keyboards.<br /><br />The sad thing is that it's nearly impossible to tell this "conversation" apart from real internal communications. Only the lack of useless managerial buzzwords -- "synergy" and "paradigm"come to mind -- prove this wasn't cut and pasted from internal mails.<br /><blockquote>[00:06 aphrael] dear developers: the problem QA is reporting is critical and must by its description be something low-level. the minor fixes you are throwing at them with "this ought to fix it" without actually bothering to investigate the problem are ... useless.<br />[00:06 aphrael] please stop wasting their time and mine. thank you, integration.<br />[00:07 REC] Dear QA, please to be writing accurate reports of EXACTLY what the problem is. Please to be providing images of the test beds and the logs, monitors and dumps we need to fix it. Love, Eng.<br />[00:08 aphrael] engineering: the problem is that the software does not print. at all. this should be trivial to reproduce. love, integration.<br />[00:09 REC] Dear Sales, please to stop fucking telling customers about all the great print features which Eng hasn't worked out and QA can't certify before you sell the product, leaving US to come up with a fucking solution. Love, Support<br />[00:09 aphrael] Dear Support: our product is a printer. Love, Management.<br /><cam->[00:10 REC] Dear Management, please to be providing some fucking ink already. Love, Support.<br />[00:11 aphrael] Dear Support, Sales, QA and Management, Ink? I think we've found the problem. Love, Eng.<br />[00:11 REC] Dear Integration, Please to write specs for ink. Love, Eng.<br />[00:12 aphrael] Dear Eng, Project Management provided this spec for ink three years ago. Why haven't you implemented it yet? Love, Integration.<br />[00:14 REC] Dear Integration, PM inserted said spec in an Excel sheet which was copied over as a WMF file into Word. This Metafile was dropped into a PowerPoint presentation. Our department uses HP-UX. Please to be sending text files. Love, Eng.<br />[00:15 aphrael] eng: aah! i see the problem. you deviated from the spec in this fashion, while the other engineering department deviated in this other fashion, and the two outcomes don't work together. please resolve.<br />[00:16 REC] Dear Integration, Please note that each Engineering department works independently. If integration between the two is necessary, I think we know which department needs to pick up some slack.<br />Love, Eng (Division 1A)<br />[00:17 aphrael] see, this is the joy of integration. all responsibility with no authority!</blockquote>I was never much of a Dilbert fan and now I live that fucking cartoon. <a href="http://www.youtube.com/watch?v=LTnq268y2ms">Somebody kill me please.</a>ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-27316918705763210352008-03-20T17:59:00.002+01:002008-03-20T18:06:11.430+01:00I Luv Teh WebsHi <a href="http://b3ta.com/">b3tans</a> and b3tards. Yes, <a href="http://b3ta.com/users/profile.php?id=57874">it's me</a>, Mister Splashycunt. I wish I'd made the newsletter for a compo entry or some stupid experiment but trolling'll do.<br /><br />Note: I did <i>not</i> submit this blog to b3ta nor do I know who did.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_hG58oBSan44/R-KZY34Mr8I/AAAAAAAAAJE/066hvifiRmo/s1600-h/splashycock.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_hG58oBSan44/R-KZY34Mr8I/AAAAAAAAAJE/066hvifiRmo/s320/splashycock.gif" alt="b3ta.com" id="BLOGGER_PHOTO_ID_5179871174025064386" border="0" /></a><br /><br /><br /><!-- <i>Update: </i><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_hG58oBSan44/R-KV1X4Mr7I/AAAAAAAAAI8/k4aWdIDqtsA/s1600-h/blogcock.GIF"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_hG58oBSan44/R-KV1X4Mr7I/AAAAAAAAAI8/k4aWdIDqtsA/s320/blogcock.GIF" alt="b3ta.com" id="BLOGGER_PHOTO_ID_5179867265604825010" border="0" /></a><br /><br />-->ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-49251550829224807062008-03-20T17:11:00.000+01:002008-03-20T16:10:53.495+01:00N.A.V.Y.When I joined the Navy many moons ago, I quickly learned that the name of the service was really an acronym: Never Again Volunteer Yourself. It was a lesson that I continue to forget.<br /><br />"Hi, Monkeys. $MegaCorp has a new support contract with Microsoft and we don't talk directly to Blackie and his department anymore. Instead we follow $MSprocess. We need a couple volunteers to be our internal contacts."<br /><br />Well shucks, I'd been dealing with Blackie and his gang and had acted as a go-between for a lot of my fellow monkeys for years. This could be another rung on the ladder to the position of ESSM (Extra Super Senior Monkey) and the additional 20 bucks or so a year that such an esteemed position offers. The more projects like that I accept, the fewer tickets I have to take. Works for me.<br /><br />With a second round of nagging mails our chief hooked another sucker, none other than <a href="http://stuckinthecube.blogspot.com/2006/12/cow-orkers-vii-is-that-knife-in-my.html">Lenny</a>. I pointed out that I hadn't had the training. "That's OK. We'll get it to you in the next couple weeks."<br /><br />Suzi can't wait a couple weeks. She sent Lenny a request to file a ticket through $MSprocess and CC:d me. Lenny's note arrived not ten minutes later. "REC, I didn’t get chance to attend the $MSprocess training. Could you please log this issue on this occasion?"<br /><br />Before I could laugh, up popped our annoying-as-fuck IM app. It was Lenny.<br /><br />14:27 lenny: hi REC<br />14:27 rec: hey<br />14:27 rec: I think it's a hoot<br />14:27 lenny: is it?<br />14:28 rec: We both suckered ourselves to do this, neither one of us has a bloody clue, and no help or direction is being offered<br />14:28 rec: If I didn't laugh I'd have to cry.<br />14:28 rec: So I'm laughing.<br />14:28 lenny: kool<br /><br />Ten minutes later came a mail with some links to what will undoubtedly be some very protracted, painful Death-by-PowerPoints with some fuckknuckle or another droning on and on, in an incomprehensible accent which appears to have been designed to do nothing other than rape the English language. If I'm really lucky, however, there'll be a link to the actual PPT slides and I can dodge what appears to be a total of some 11 hours of this particular circle of hell.<br /><br />That'll have to wait, though. I have some tickets to answer. Somewhere in Estonia a fuckwit is trying to modify the contents of the HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes<br />key. On an IBM BladeCenter. A blade which is running Solaris 10.ReallyEvilCaninehttp://www.blogger.com/profile/08480577328000541611noreply@blogger.comtag:blogger.com,1999:blog-24068564.post-39139710659453631332008-03-19T15:15:00.001+01:002008-04-23T16:40:03.019+02:00Cow-Orkers XVI: Starkbier!My married-with-kids colleagues, annoyed last night that we couldn't get into the strip club because the doorman didn't like the fact that I was wearing Adidas and not Florscheims or Ballys, are now thanking me. Under the cold light of sobriety they realise that had we indeed gone in, they'd be regretting this morning a lot more than they otherwise do with just the two liters of <a href="http://www.germanbeerinstitute.com/Doppelbock.html">Starkbier</a> each one drank last night. I'd had three; maybe I was a bit wobbly, too.<br /><br />I want to thank the doorman for this because I fucking hate strip clubs. He has no idea what sort of favour he did me, and I don't just mean saving me from having to throw down double the normal beer price. He saved me from the whole thing. I don't "get" strip clubs. What's the attraction?<br /><br />There's an attractive girl who you're allowed to look at but whom you can't touch. You're encouraged to give her lots of Teh Munniez but no matter how much you hand her, you can't touch her and she won't touch you. She has a boyfriend or a girlfriend (or both), despises you, and is trying to figure out what she has to do to get the rest of your money without actually having to talk to you, let alone countenance allow physical contact.<br /><br />I ask again, what the fuck is the attraction? Why do people go to these clubs? Why do my cow-orkers insist on going there once drunk? I've been married. I know what it's like to want to see something fresh and different and that's why I pay €40/month for 16Mb downstream DSL -- to fill the <a href="http://www.bash.org/?334331">My Documents\Faxes\Sent Faxes</a> directory with 447GB of hot chicks doing anything you can name and quite a few things you've probably never even thought of. What do you expect from a guy whose browser home page is set to Ogrish and who was a pre-1996 alt.tasteless participant?<br /><br />We can get drunk every fucking night for all I care. We can become the bestest buddies EVAR each evening, then return to this hellhole each morning and piss and moan at each other as is our daily routine. That's fine. Just leave the fucking strip clubs out of it. They're a waste of time and a waste of money. More importantly, this dog ain't married. If