Showing posts with label IBM. Show all posts
Showing posts with label IBM. Show all posts

Tuesday, November 15, 2011

Some Terminology Never Dies

I imagine that most occupations and pastimes of any age have not only unique descriptive terms, but terms that in fact misdescribe, because whatever they once described has evolved.

This is an IBM green card that I was using when I wrote programs for mainframes in the 1990's.





What?

Yes. Yes it is.

OK, then, here's what the original (1960's) green card looked like.

(If that link goes dead, someone please mention it in the comments and I'll replace it.)

The original was basically a two-sided piece of heavy stock with information useful to some programmers, particularly assembler programmers. It contained instruction names, the hexadecimal codes for the instructions, instruction mnemonics, that sort of thing. You carried it in your shirt pocket, you carried it in your back pocket, or you left it on your desk, in which case it went missing. Being carried around in pockets accounts for the disreputable appearance of the green card in the above picture.

Over the years the card was from time to time reprinted, having been expanded to provide more information and/or tailored to meet the requirements for use with more modern and different systems. The version shown above is also of heavy stock, but unfolds to eight pages with two sides.

These later versions made their appearance in different colors - blue, pink, yellow, whatever, but no veteran assembler programmer was going to ask to borrow someone's "pink card" or "blue card." Programmers who did so and were heard by veterans faced death by derision. Green card it was and green card it would remain.

When my programming career ended (2001) the green card was in fact neither green nor a card. It was a booklet of roughly (perhaps even exactly) the same width and height of the original green card, but containing dozens of pages of information.

For your amusement, I shall mention that I first got into electronic data processing a few years after its commercial inception, not at the very beginning. The mainframe was at a Boston newspaper and required its own room, climate control, raised flooring, etc.

It was an IBM 360-20, with 24K of memory. Of that 24K the first 1A40 (that's 6720 for fingers and toes people) bytes were reserved for the system. Thus, for application programmers the first byte available was 1A41 and the last byte available - "high core" - was 5FFF (24575).

That 24K is what my first home computer (as they were called at the time), an Apple II+, came with. You could buy an additional 24K, but that was it. That is laughable today, as your desktops and laptops have so much more.

Mainframe computers are known by old timers as "the big iron," and are in much wider use than many people imagine. Why? Power. If you need to process ten or fifteen thousand transactions per second, then you still need the big iron.

Tuesday, October 18, 2011

Never Give Up

When I returned to Illinois from Virginia, I signed on with a consulting group. My first assignment was to be at Allstate, which required a ten person contingent: a project leader, a technical leader, and eight assembler programmers. I was to be the technical leader.

The project leader and I got there a couple of weeks ahead of the rest - in fact not all "the rest" had been found and hired. I wound up interviewing a couple of them myself. After a couple of weeks everyone was present and *that* is when I learned that Allstate didn't need ten techies. What they needed was a group of people to document some systems written in assembler, and they had decided that should be done by assembler programmers. Our group *might* write a dozen lines of code a week among us.

I called my employers and told them they had to get me out of there, and a week or two later they arranged an interview at IBM for a programming job working (as a contractor, not an employee) with an assembler programming department. I was interviewed by the manager and a couple of days later he introduced me to the others in the department, six in number, and informed me that I would be working with (read "for") Rick.

Rick was in some ways old school IBM: all business, not one whit more sociable than he had to be. I, on the other hand, tend to be somewhat gregarious around people with whom I work. Within a couple of weeks I had made several friends in the department, but no progress in that area with the Great Stone Face, Rick. Nearly every minute of the work day you could walk by his cubicle and see him either staring at programming code on his monitor or making modifications to it, oblivious to his surroundings. In fact, and I *swear* to you this is true, one day an employee in another department had a heart attack, paramedics raced by Rick's cubicle with a gurney and then returned, wheeling the patient past Rick, and when I mentioned it later he was completely unaware of the incident. He was a dedicated worker, no doubt about *that*.

He gave me assignments, pointed me to the programs and libraries I would need, and basically ignored me until I went to him and said I was done. I *tried* to break him down, but that was a very slow process. I would go into his cube, park my butt on his credenza, and wait until he was forced to look at me. He, on the other hand, would ignore me for a bit, then take a deep breath to let me know that this was an imposition, turn to me, and give me the phoniest smile in creation while saying "Yes?"

But *this* Yankee is made of stern stuff, and after a couple of months I could actually get a few minutes of non-work conversation out of him. At some point he began calling me "Fred," which was most assuredly not my name. However, I would have dipped my arm in boiling oil before asking him why, at least until I had *some* information about it.

That came one day when he decided he wanted to talk about a problem he was having with a program. He just *couldn't* find the problem and thought that perhaps talking it out with me would help. I looked over his shoulder as he discussed the program routines and found that he had inserted some testing code to provide him with interim information to help the debugging. Interestingly, he had named the testing routine "Fred." Aha!

I asked him "Why 'Fred?'" He said he had once had a boss that named such routines Fred and he had picked up the habit. Good enough for me, and soon we were *both* calling each other Fred, a practice which persists to this day. (My greatest triumph came one day when the two of us had lunch and I presented him with a bottle of wine from Lynfred Winery, the label of which proclaimed it to be "Fred's Red.")

The Great Stone Face cracked one day. The breakthrough came as the result of some work he had given me. When I said I was done he tested the program. Soon his voice wafted across the corridor: "Hey, Fred. It doesn't work." I, of course, denied that this could be true in a four dimensional universe, and learned something about how the department worked. When you made a modification to the program you owned the *entire* program, not just the code you wrote, not just the functions the code affected. He had found something in the program that didn't work. It wasn't related to my coding and in fact it was obvious that it had *never* worked properly. I pointed that out and he gave me an Ownership 101 lecture. Go back and fix this one, and in the future when I fixed something, test *every* function in the program. It didn't matter if it had never worked, if it didn't work *now* it was my responsibility.

The breakthrough? I said "You should be in Quality Control," and he replied "You should be pumping gas."

That's one of the funniest things anyone's ever said to me, and I have known a lot of people over the years who would have paid mucho dinero for front row seats to it. I once related the story during a telephone conversation with Debbie (you'll just have to read older posts if you want to know about her) and it was several minutes before she could breathe properly.

Rick and I slowly became good friends, and the final proof was that one hot summer afternoon I got him to steal out of the building with me and make a quick run to Dairy Queen.

I left IBM nearly ten years ago, but several of the department members, including Rick and me, still have lunch once a month, and every couple of months Rick and I get together for a movie and dinner.

Sunday, January 3, 2010

Y2K: A Dud?

Well, we've finished with the decade beginning with the year 2000, and now there are a number of lists and videos making the rounds, representing the views of their creators on what were the best, most, biggest, worst, whatever, events, songs, videos, movies and so on, of the decade.

One item of agreement among several of the lists and videos seems to be that Y2K was a disappointment, a bust that didn't live up to its hype, and was therefore overinflated to begin with.

'Tain't so, it says here.

Home computers will be mentioned here only in passing, as my direct experience was elsewhere. However, I do want to say that Bill Gates got away with bloody murder in testimony before Congress. Asked when Microsoft began planning for Y2K, he replied "From day one." No one thought to ask him, "Well then, why the 1999 flurry of fixes and patches for all the versions of Windows?"

Y2K didn't live up to its hype because billions - quite literally, billions, of dollars were spent to ensure the outcome that in fact became reality.

I was an employee of a contracting firm and was farmed out to IBM during the last half of 1998 and all of 1999 (and beyond, but that's not relevant here), and I know that IBM paid my company more than a quarter of a million dollars for my Y2K related work. That's one person in one tiny corner of one corporation in one country. At a guess, more than three million dollars were spent on Y2K in the ten person department I was attached to.

Some of the software maintained by that department was used internally by IBM, and some in support of *huge* clients, multi-billion dollar corporations.

Why was all this necessary? How did it come about?

The problem existed at all levels of computers and programming, from the PC you used at home or at work to mainframes, the "big iron" used for decades by companies - think HAL from 2001 and smaller versions.

At the beginning, both memory and storage for computers were much more expensive than today, and bytes (think "characters") that did not absolutely have to be present were not, simply in order to save money. But even then there were special programming routines in many systems to deal with differences between centuries.

If a program needed to determine the age of an individual, that age was calculated. The date of birth was often carried in a YYMMDD format, so someone born on March 21, 1973 had a birth date of 730321. If a program running on February 23rd, 1994 needed to know that person's age, subtractions were done, 94 minus 73, 02 minus 03 (oops, a negative number, so subtract 1 from the "years" result and add 12 to the "months" result), and 23 minus 21. There were several other approaches, but they all accomplished the same thing - determining the age of the individual.

But what if the person had been born on March 21, 1897? Now the year subtraction routine running on February 23, 1994 dealt with "year data" that required subtracting 97 from 94 and a nonsense result was achieved, so 100 had to be added to the result.

Undetectable in many situations was the case where the person was born in 1893. The calculation - including 94 minus 93 - showed a 101 year old person to be 1 year old.

OK, so much for that. In the beginning, then, the elimination from data of these numbers that showed the century was perhaps necessary, perhaps only highly desirable, but in any case a common practice.

The first warnings that this would someday present a problem, at least the first warnings that I recall, came in the 1970's. Naturally, people in the 1960's knew of the potential, but 2000 was *so* far away. Surely the system would have been replaced by then, and the replacement would include the century.

Now this next is only *my* perspective. It is certainly true in many cases but equally certainly not true in at least some cases.

Businesses are universally reluctant to spend money if they can find a workable way around it, and reasonably so. Unfortunately, this can lead to unreasonable solutions. In the 1980's, more people began saying that there would be a year 2000 problem. But as existing systems became inadequate for other reasons - new products, higher volumes, whatever - companies consistently took the cheaper path and modified existing systems rather than spend the time and money to rewrite them. The systems that would "surely" be replaced were in fact hanging around.

By the early to mid-1990's, everyone knew there would be a problem. But in the late 1980's and early 1990's, many data processing managers - all the way up to the executive level - were reluctant to take the problem to their bosses and say "We have to spend hundreds of thousands (or in many cases millions) of dollars to fix this problem." In some cases they weren't going to be around in that arena and that company come the year 2000, and they simply left the problem to their successors.

Thus in the several years remaining there began a scramble to fix a problem whose existence had been known for more than three decades.

Many companies brought old programmers out of retirement, particularly old COBOL programmers because COBOL had been *very* commonly used. I don't know whether anyone has done a serious study of how much money was spent worldwide on Y2K between say, 1995 and a few days after January 1, 2000, but it is certainly hundreds of billions of dollars.

So yes, Y2K passed *mostly* uneventfully, but what would you expect with that kind of effort and investment.

BTW, birth dates and ages were not the only problem, not by a long shot. Many systems used dates for all kinds of things - payrolls, dates of file creations, elapsed times between iterative processes, navigation, health monitoring devices, etc.

At IBM on December 31 and January 1, we worked in shifts, watching hour by hour as each time zone around the world reached the critical hour, people in each zone ready to learn from and react to any problems that arose in time zones ahead of "us."

Some examples of things that *didn't* go well:
  • In a test of its Y2K changes, one California city's sewage system dumped tons of raw sewage into a public area.

  • Newspapers, public neon date and time displays, and other media showed the date as 19100, as did a "Y2K experts" firm's web site.

  • A video store began charging customers for returning videos 100 years after the due dates.

  • Some ATM's rejected credit cards, "thinking" they had expired more than 90 years earlier.

  • Australian Diner's club statements showed that January purchases occurred before December purchases.
Actually, the problem began earlier and some manual intervention was required in the late 1990's when inadequately tested "Y2K compliant" software went into production. Products with expiration dates that carried only two digits for the year were determined to have expired if the real expiration date was "00."

But these are mouse nuts compared to what could have happened.

You're welcome. Ah ha ha ha ha ha.

Wednesday, October 1, 2008

My Union Experiences

I have belonged to only one union, and that for less than four years, so am no expert regarding unions and union matters. Still, it would be not much of an exaggeration to say that the experiences I *did* have were uniformly bad, at least from my perspective.

All that follows occurred during the period June 1968 to February 1972, and at what was then the Record-American, a Hearst Corporation tabloid in Boston, the result of a merger beteen the Record and the American, two of what had once been seven daily newspapers in Boston. In 1968 there were still three: the Record-American, hereinafter the "Record," the Herald-Traveler, and the Globe.

Fresh from the Army and years of working in Army finance, I got a job as a payroll clerk at the Record, automatically becoming a member of the American Newspaper Guild. Dues were very small and for quite a while the Guild had no visible effect or influence on me or my situation.

In 1971 (I think) the Record acquired its first computer, an IBM System 360-20, a mainframe computer with 24k of memory and requiring its own room and environment - raised floor with the cables running beneath, air conditioning, and humidity control. Input was in the form of 80 column punched cards and output in the form of magnetic tapes and printouts. No CRT's, nothing interactive.

The Hearst Corporation sent a data processing manager and two programmers to oversee the installation and to write and put into production the first systems pertaining to the Record's business.

A few months later the company set about acquiring its own programming staff, with the intention of that staff replacing the Hearst programmers. All employees were given the opportunity to take an aptitude test and two would be selected for transfer and training.

The selections, of course, were not based on aptitude or merit, but simply on seniority within the list of those who had taken the test and not failed egregiously. I had scored highest among the applicants, but based on seniority there was little chance I would become a Record programmer in this lifetime.

But uneverno. One of the two selected, Gerry, disliked the work and did not do well at it. Eventually he requested and got a transfer back to the accounting work he had been doing. The company and the union went back to the list of applicants, their results, and their seniority.

By this time, the company had a pretty good investment in Gerry, what with off-site training courses, on the job training, and little in the way of results, and naturally they wanted to avoid a repeat of this experience. They negotiated some kind of deal with the union that allowed them to ignore seniority, and I was suddenly a programmer in training.

I don't know what deal they negotiated, but it couldn't have been much or the union would have gloated and all of us would have known about it. I wouldn't be surprised if the "deal" turned out to be nothing more than a statement along the lines of "We're not going through this again. Either you let us pick the highest applicant or we'll simply keep using the Hearst Corporation programmers as consultants and you'll have fewer union members."

After a one week course at the IBM center in Hartford, Connecticut, I was given responsibility for maintaining and enhancing some of the existing production programs. By any standard, the Record was not yet making much use of the computer. It was in use only from 9:00 AM to 6:00 PM. My own shift was from nine to five. I learned how to IPL (start) the machine and how to operate it, and how to shut it down, but there was little opportunity to apply this knowledge. Moreover, testing time for any code I wrote was limited because production was run during the day and the computer could run only one program at a time.

Now - the union.
  • Regarding the Hartford experience: I was put up in a nice hotel, and meals and transportation expenses were to be paid for. I returned to work on Monday morning and was immediately approached by a union representative who told me to be sure to include in my expense report any time outside the classroom during which I had worked on homework assignments. The union would see that I was paid overtime. This seemed excessive to me, but I did as I was told.

    That afternoon the Personnel Manager called me into his office, a little distressed by my expense report's claim for overtime. He said that the company simply would not train anyone else if this stood. I explained that it had never occurred to me to make that claim, that the union had instructed me to do so, and that I would not be the least bit distressed to receive only the lodging, food, and transportation expenses.

    Somehow it got worked out between the Record and the Guild, and neither payment nor further conversation about overtime occurred.

  • I now knew how to operate the machine and was a little frustrated by the small number of opportunities for testing. I did a deal with the DP manager which allowed me to come in a couple of hours early and leave a couple of hours early, thus having the machine all to myself from seven o'clock to nine o'clock. For several weeks things went swimmingly. I was learning more every day and more of my programming was getting into production - good for me and good for the company.

    And then . . . I was approached by a union rep who asked about the specifics of the deal and how the deal came into existence (I had proposed it to the DP manager). In short order the union filed a complaint with the company, taking the position that by beginning at seven o'clock I was starting during "night shift" hours and would have to be paid the ten percent differential.

    Immediately on hearing this I went to our chapter head to try to talk him into withdrawing this claim. I explained that it was good for *me*, a union member, but it was like talking to a brick wall. Eventually the deal was cancelled and I was back to nine to five. Thanks, guys.

  • Somehow I wound up on the Guild's negotiating team as our contract expiration approached. I don't know how this happened, exactly, but I am absolutely the wrong person to put in a situation like that, as it is my inclination to see both sides of a matter while everyone else is seeing only whatever interests they serve.

    In any case, the Herald had recently completed some union negotiations, making what were considered by newspaper people to be scandalous concessions, most particularly in wages.

    Our rep began trying to negotiate for those same rates for the Guild employees at the Record, and was told that those rates were "off the table." Our guy wanted to know why the Herald management had been so "reasonable" and the Record management was being so "unreasonable." He was told "If the Herald lives to pay those contracts then we will renegotiate."

    The Herald did not live to pay the contracts, and the Hearst Corporation bought the paper, did away with the Record, moved into the Herald's facilities, and began publishing the Herald-American. This all occurred shortly after I left the paper, and the surviving paper, which has changed hands a couple more times, is now called the Boston Herald.

  • A thought, not directly related to union membership: During these negotiations I incurred the wrath of a Hearst Corporation jerk who was sent in to participate with the Record management in these negotiations and to meddle in other matters. I would gladly give you his name - so you would know who he was and how incompetent he was - but it has escaped me.¹

    In any case, a few months later I accepted an offer to take a position at Blue Cross. The offer was made by Drew, then an acquaintance from the Board Room (bar) and later both my superior and a friend. Perhaps a month after I started at Blue Cross, Drew and I were having a drink at the Board Room and he said "You know, we almost didn't get to hire you."

    I learned that it was Blue Cross policy to solicit a recommendation from the current employer of anyone proposing to join Blue Cross. Spitefully, the Hearst jerk had directed the Record's Personnel Manager to answer "No" to the question "Would you rehire this individual?"

    And so the Personnel Manager did, but he was wiser than that. He knew that I had been praised in writing for my performance and added a handwritten note: "It is company policy to answer 'no' to this question but I would rehire this man."

    But for that, the Record would have been wide open to a law suit.

¹ February 11, 2009: It just popped into my mind - Bill Klouda

Sunday, August 3, 2008

The Name Game

My real name is not uncommon, perhaps even more common than "Donnie Richards." (Yup. Just googled them both and there are more than fifty-two of the real me for every one of the fake me.) As a result, I get the occasional email or phone call sent to the "wrong" Donnie Richards.
  • At Fort Sam Houston, circa 1964:

    "Richards! Phone call in the Orderly Room."

    Several moments later: "Specialist Richards."

    Young Female Caller: "Donnie, I need you to pick me up at the airport, flight yada yada yada, arriving yada yada yada. I can't *wait* to see you."

    Alas, there were two of us. With the same middle initial, even. And this was his wife. (We used the same San Antonio bank and *twice* checks were charged to the wrong account.)

  • At a small junk mail company, circa 1984:

    Receptionist: "Donnie, phone call for you at the front desk."

    A moment later: "Donnie Richards."

    Caller (an elderly woman): "You're not Donnie Richards."

    Donnie: "I assure you that I am. But not, it appears, the Donnie Richards you wish to reach."

    Click!

  • About two weeks later:

    Receptionist: "Donnie, phone call for you at the front desk."

    A moment later: "Donnie Richards."

    Caller (the elderly woman): "You're not Donnie Richards."

    Donnie: "Madam, you told me that a couple of weeks ago. Again, I assure you that I am. But if you persist long enough, you may convince me otherwise."

    But she was a sprinter, not a long distance runner, and I never heard from her again.

  • At home, circa 1998:

    An email arrived at my Hotmail address, inviting me to get together with the sender and several of her girlfriends. This was a forwarded version of the email that scheduled the gathering, and the festivities would be in the Portland, Oregon area, while I was in Chicago. Melody, a friend and former employee, was among the names on the distribution list. The sender professed nothing short of bliss at having met me the preceding week and a desire to see me again.

    I replied, expressing regret and frustration that I could not attend, then informing her that I lived in Chicago and was probably not her intended recipient.

    She replied, "Oh, sorry. But I know who you are. Your're the one Melody calls 'The Old Man.'"

    I responded, wishing her a good time with her friends and asking her to pass my regards on to "The Brat."

  • At IBM, circa 2000:

    There were *three* of us with the same name in the IBM email directory. In addition to getting the occasional misaddressed work-related email, I received:

    • An invitation to join a group in barhopping after a wedding reception in San Francisco. This was from a charming young woman and I amused myself by lecturing her on the dangers of emailing strange men, informed her that I was old enough to be her father, and declined regretfully. She responded, saying she wished I *could* make it, as I was clearly more fun than the "other" Donnie Richards.

    • A smutty joke from a woman in Colorado. There was a personal message as well, so I replied and informed her that she had reached someone other than the Donnie she intended. I told her to not to worry, that every Donnie Richards had a good sense of humor and this would be our little secret. She replied with a textual sigh of relief and a "thank you."