Monday, September 24, 2007

Perspective

Sunday afternoon I was at Oktoberfest in the Hacker Festzelt. I would've preferred to be in Augustiner but I had 2 chicken and 3 beer tickets for Hacker. We managed to actually find seats and got our first beers within 10 minutes. An hour later there was a commotion at the other end of the table_ I watched as a woman grabbed a full €8 Maß of beer, dumping it on a girl who was in their group. Then I smelled the reason: the girl's satin dirndl had caught fire.

The girl was completely distraught. Not only had she borrowed the dirndl from a friend, it was worth over €800. The thing hadn't gone up in flames and actually looked salvageable, most of the damage having taken place in the area that the apron normally covers. But there she sat; upset, crying, almost in mourning.

After more than half an hour of seeing her crying to one woman in her group after another, I grabbed a napkin left over from our chickens and wrote her a note: "Be happy. You weren't hurt. You can buy material but not skin. Look to your right."

She smiled a bit, then looked left to the next table. A tourist in a tank top was dancing and singing, arms, neck and back covered in keloids, the victim of a vicious burn. Satin dirndl girl smiled again and finally got back to drinking and enjoying herself. While she then thanked me, she couldn't help reminding me that the dirndl cost €800 and wasn't even hers.

I'm earn very good money, I get a lot of paid vacation each year, I have flexi-time, and I can usually spend a considerable percentage of my day reading Teh OMGLOLFunnay on the Intarwebs. The fuckwits drive me up a wall but without them I might have to do real work. I will now send a polite response to two different fuckwits explaining that storing the UTC date in the database is, in fact, a very good idea when correct time stamps worldwide are of the utmost importance to a business, without which said business would be shut down, and that if they want third party applications to access the data then those third-party companies should fucking learn how to deal with time zones.

Labels: , ,

0 non-"17"s have already commented. Click here and be the next.

Monday, March 12, 2007

It's the End of the World! Oh noes!

In the run-up to Y2k there was no shortage of doomsayers. Systems would shut down. Banking software would go tits up and fortunes, if not lost, would be reduced to their 1900 or 1970 values. Planes would drop out of the sky. Software everywhere would crash.

And then came January 1, 2000. The world didn't end. It wasn't even thrown back into the stone age. Planes didn't fall from the sky. Systems didn't shut down. Banking software kept working. The worst problems most of us saw were nuisances, dates like "January 4, 19100" and old calendar apps mistakenly adding a February 29th to the year. The doomsayers disappeared and the IT industry was mocked by a flood of fuckwits chiding us for having made such a big deal about Y2K.

But for the alarms three years prior, it could've gone very differently.

Until the late 1990s, most of the public didn't realise that an awful lot of infrastructure software was as old as dirt, much of it written in ancient (to the point of obscure) languages, some of it loaded on old IBM 3430 tape drives to this day. Up until 1993, the FAA's TRACON was controlled by ARTS-III software written in Ultra for a 1960s UNIVAC processor. These days it's running on PowerPCs and the language is C, but the conversion from Ultra/Univac to C on LynxOS/Motorola 68000 was long and difficult, and with only nine months to go before Y2K, the GAO issued a rather harsh report on the FAA's status.

If you COBOL, 1977-1999 were very lucrative. The now-defunct AccuCobol made a fortune selling their software to programmers trying to refresh their COBOL skills and to companies via the generated binaries and libraries for converted or modernised COBOL systems which were, truth be told, less than efficient. Thousands of programmers pored through tens of millions of lines of code, reaping as much as $0.50 per line for their efforts.

Banks and insurance companies were the first to realise the problem since they pay attention to what might happen with rates, values and tables seven to ten years in advance. The rest of us rarely look at things more than a few years ahead, and so we were unprepared. Microsoft didn't have Y2K updates for Windows 95 and NT until October, 1999. Their office applications weren't completely fixed for months after that.

UNIX was a little better since the OS keeps track of the number of seconds since 1970, but in the midst of all the finger-pointing at Microsoft, UNIX people realised that they had their own NTP time bomb set to blow in the year 2036. There were other bugs, like RFC 822 which used 2-digit years for mail headers.

The programmers worked furiously. And, as always happens, in the rush to repair the known problem, new bugs were introduced. In the rush to release the fixes not all of these new bugs were caught.

And we learned nothing. Here we are seven years later and we're going through the same shit.

On August 8, 2005, US Public Law 109–58 -- the Energy Policy Act of 2005 -- went into effect. Section 110a designated new, longer Daylight Savings Time (DST) periods. Worse, Section 110d allowed a right to reversion in as little as nine months. And no one did anything.

Granted, the problems caused by the one-hour change were relatively minor in comparison to some of the mess that could've happened after Y2K, and the Daily Show rightfully took the piss.



On the surface, yeah, it's a minor inconvenience. For many businesses, however, it's a bit more expensive. Many industries are required by law to keep extremely accurate audit trails. An hour makes a world of difference: either you're compliant or you're not. Scheduling, conferences, payments... businesses face a lot of problems if this problem isn't resolved. So while being late for a doctor's appointment isn't terribly drastic, $LargeTelco's inadvertently not running an entire day's reports is.

It wasn't until shortly before DST reverted back to Standard time in 2006 that anyone really started mentioning the upcoming changes, and with those changes the realisation that the complexity introduced by the changes which were more or less ignored in Israel and Australia in years past could no longer be ignored. DST problems were coming home to America.

Time zone information had normally been stored as a flat look-up. Check the zone, check the date look at the GMT offset and apply. No longer. Change a zone to the new value and all your historical data will be off: programs will apply the current DST info to dates prior, except that March 12, 2006 was Standard Time, not DST.

There's a full magnitude of complexity introduced in dealing with the problem. A flat file can't be used; a 3D table is necessary to account for years. Microsoft didn't have a fix until December, 2006. Companies including $MegaCorp came up with stopgap measures and temporary fixes, themselves buggy or quirky. And we'll ride out the storm for the three weeks between the old dates and new, hoping that most customers don't notice their jobs running an hour late or appearing to be scheduled two hours early.

A lot of customers tested. Those who tested complained. Those who complained kept me very busy. Every department involved, taking cues from upper management's decision regarding releasing the latest version with this time bomb bug in place, adopted a laissez faire attitude and little was done. Documentation was delayed, conferences ignored for "more important" tasks, and the few robe-wearing, long-bearded hippies carrying their signs reading "The End of the World is Nigh" were mostly ignored. That didn't stop us from trying.

We hounded our third-party suppliers for info and fixes. We tested as much as we could. I wrote documents. These documents had to be continually updated as we discovered new information, such as the fact that all version 3 systems were affected and not just 3c and 3g. Oh, and version 4b would be hit, too. A week before the expected changes it turned out that Sun's JREs which also had to be fixed, contained a major bug (ID 6530336) which broke the Eastern Time Zone functionality. The only fix: manual changes. That'll be fun for 20,000-seat call center admins.

Final documents with even more information weren't made public in a timely manner and required a lot of hounding and escalation to initiate their release to our Knowledge Base. Customers had been given incorrect information and had to be informed of our new discoveries. I escalated and called and screamed and bitched until the idea was finally accepted: every monkey had to go through every one of his own tickets to find those which had asked about DST, then send updated information. The cost of that? About 30-60 minutes per monkey on average.

Some of us did special weekend duty, ready for the onslaught of tickets from fuckwits who didn't read our Urgent Notices, pay attention to our direct mails, or who didn't follow our instructions.

It never came. Only a couple tickets related to the subject showed up and these dealt with unexpected problems which we hadn't had the time to test.

My manager Vera walked by this morning and asked how bad it had been. "Only two tickets for us and five for the US." "Well, you see? It wasn't a problem. You were so worried about this for nothing."

They said the same thing in January, 2000 as well. We have the testbeds. We proved that without our work things would've gone very differently, but no one wants to hear that. Shit's working now and that's all they care about. And because I didn't spend all day on the phone Sunday, instead of a few hundred in cash for being available Sunday, I got a T-shirt which is three sizes too small.

You're welcome, you fuckwits.

x-posted from HuSi, where there's a Daylight Savings Time poll.

Labels: , , ,

3 non-"17"s have already commented. Click here and be the next.

Friday, March 09, 2007

Thirsty

It was 10:30p.m. I was out with some workmates having some tasty Kölsch beer. My cell phone rang.

"REC, this is $GeneralSupportManager. Can you join a conf call with $LeadResourceManager, $DocManager, $PM-Guy and $OtherSeniorManager? We're discussing the Daylight Savings Time issues."

I had to go outside since the bar was too loud, in part due to a couple of my cow-orkers feeling some need to be especially noisy.

There's been a deluge of mail about this subject over the past few weeks. I've come into the office this week to find as many as 90 mails over four threads on the subject. Everyone else working on this is in California.

I've written a couple Urgent Notices, answered hundreds of cow-orker questions, discussed the issues ad nauseum, and now we have to have another conf call while I'm busy trying to get as much tasty Kölsch beer into me as possible so that I can, for a few minutes, forget the idiocy that is this DST change.

"Yeah, I can join."

I went outside in the cold an waited for the join.

The questions started coming, niggling details and references to mail from last week and there I stood in the cold with a small glass of beer, trying to remember what the hell they were talking about. And when one was finished hammering me, the next started. And every one of them was born to be mild, preferring to be "safe" and take as little action as possible.

Twenty minutes later, Stevie-boy came out with a sausage and a beer refill. The sausage was ice cold inside 10 minutes as I continued to explain how shit works and how it won't work on Sunday morning if things aren't done the way I say.

After an hour of this I took over, started telling each one of them what to do. I explained that while the newest document includes much uncertainty, it's the best we have so far. Failure to publish it immediately is guaranteed to have more repercussions than not publishing it. Likewise, I explained again to $GeneralSupportManager the importance of having every single monkey open up every single ticket that ever referred to DST and send a boilerplate I wrote explaining what steps must be taken. "You need to send that out NOW," I told him, "This minute, while we're still on the phone." If he'd had 15 minutes to mull it over -- as he did six hours earlier when I explained the reasoning in a long mail response -- he might've again decided to wait.

I got confirmation from $DocManager that my latest Urgent Notice would indeed be published immediately. That gives the US the last bit of Thursday and all of Friday to fix stuff. Asia and Europe only have Friday.

This morning I went to check my Urgent Notice in our Knowledge Base so I could finally start referring customers to it. Imagine my surprise when it wasn't there. Fuckwits. Utter, complete, total, fuckwits. I expect it from customers. I expect it from some of the cow-orkers. I don't expect it from a group of top management decision-makers, although that might help explain why $BigCorp got bought up by $MegaCorp, itself a steaming pile of inefficient bureaucracy... but that's the subject of another post.

I'd already expected to be available on Sunday to answer questions and problems which will come in, and I'll get a nice chunk of change. Thanks to these fuckwits not releasing the docs I'm actually going to have to work my ass off for the cash, all day and all night.

Thank fuck for Mini-Me. He's updating my customers so that I can leave this place, hop a plane to London, and get as much tasty Kölschbitter beer into me as possible so that I can, for a few minutes, forget the idiocy that is this DST change.

I'm outta here. London, here I come.

x-posted from HuSi, where there's a poll.

Labels: ,

1 non-"17"s have already commented. Click here and be the next.

Thursday, January 04, 2007

Cow-Orkers IX: No Time Like the Present

Most people don't give time a lot of thought. If you log into an application and enter some data, you can look at your watch and that's the time you did it. It could be a lot more complicated inside the system architecture though, and I've become $MegaCorp's expert on the subject. I've had to write a couple documents and issue two edicts, one of which is basically translated as either, "Just give me any ticket that references time," or "Take any ticket about time and then take credit by getting me to resolve it for you playing Chinese Whispers."

Carla's supposedly at my seniority level. My mentoree Paul has been with us for about six weeks now and is considerably more competent than she. He proves this Every. Single. Fucking. Day.

Also, a glimmer of hope.


Carla writes:
I have this ticket which I am currently working on and I would greatly in need of your expertise.

The discrepany is between the timestamp on ID Record vs the timestamp on the database for a similar record. This record was created external and synchronized.

On the Record ID = Created On = 12-Dec-2006 02:56:20PM
On the database = Created = 12/12/2006 1:56:20PM

The following are the settings:

On the Local :
$OurBigApp = (GMT-08:00) Pacific Time (US & Canada); Tijuana
Control Panel > Date&Time = (GMT-05:00) Eastern Time (US & Canada)

On the server :
Default Time Zone = (GMT-05:00) Eastern Time (US & Canada)
Control Panel > Date&Time = (GMT-05:00) Eastern Time (US & Canada)
DBTIME = -04:00

Based on the above, I am not able to get the "1-hr" difference ( 1:56:20PM vs 02:56:20PM).

You don't have to work with databases to notice that almost everything is on Eastern time (GMT-5) but the database is on Atlantic (GMT-4). It's right there. Still, anyone can overlook the obvious and I've done before so I didn't go ballistic.
Carla,

Control Panel > Date&Time = (GMT-05:00) Eastern Time (US & Canada)
DBTIME = -04:00

It looks like the DB is set to Atlantic time (or Daylight Savings +1), an hour ahead of the servers.

Love,
REC

And that should've been it. If it had been I'd be ranting about the colleague who calls his toddler three times a day and insists on using baby-talk, continuing to do so even after his wife takes the phone back. Drives me up a fucking wall. Instead I got this response not 15 minutes later:
Does this constitute a "1-hr" difference? Should the Timestamp on RecordID show "5-hr" difference" since the System Preference Default TimeZone and Control Panel > Date&Time is GMT-5?

She's Eastern Asian so "blonde" is out. She has no idea about how time zones work in real life much less in software and yet she took the ticket. My forehead probes the depths of the my-head-shaped-dent in front of my keyboard.

Later this morning I bumped into Vera in the hallway and asked about Bulgrohungria where our new offices are, just sort of making conversation and trying to get a little closer to what passes for her "good side". She comes from Bulgrohungria so my apparent interest couldn't hurt. I asked about the distance from the office to the city, the costs of hotels, that sort of thing. I figured it'd be dirt cheap. No such luck -- hotels in the city are around €100-150/night and even outside the city, finding something under €60 is difficult.

But maybe you could go there officially as a part of work...

Hells yeah! Send my ass there for a couple weeks and pay my way! I've mentored an entire office before and I could give a bunch of stupid presentations while I'm there, too. That would stop management bitching about having sent me to HQ for a week with little noticeable return on their investment. Most of the return has been terribly intangible but led to huge tangible results about which I have to constantly remind them.

I should know in February. I'll get at most two weeks' notice and it'll most likely overlap my planned vacation weeks. Two weeks in the Eastern Bloc on $MegaCorp's dime... what could possibly go wrong?

x-posted to HuSi with a poll.

Labels: ,

0 non-"17"s have already commented. Click here and be the next.

In compliance with $MegaCorp's general policies as well as my desire to
continue living under a roof and not the sky or a bus shelter, I add this:

DISCLAIMER:
The views expressed on this blog are my own and
do not necessarily reflect the views of $MegaCorp, even if every
single one of my cow-orkers who has discovered this blog agrees with me
and would also like to see the implementation of Root Cause: 17-Fuckwit.