• mtu (unregistered)

    We're sorry, the first comment has been swept under the rug by the cleaning lady.

  • wire (unregistered)

    No way the floor got swept every week.

  • (cs)

    Sounds like an urban legend to me. Specifically, a variation on the one with the intensive care ward and the Bed of Death.

  • JaySee (unregistered)

    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?

  • Tim Ward (unregistered)

    My father once had his department stay behind at work until they'd tracked down an error of 6d.

    Turned out that the card punch girl had been eating chocolate whilst she worked, and some dribbled chocolate filled up a hole.

    Chocolate eating was thereafter banned for card punch girls.

  • SoonerMatt (unregistered) in reply to JaySee

    This seems to be more of a history lesson than a wtf.

    More so, this is confusing because I thought if you were missing a card it wouldn't run.

  • Anon (unregistered) in reply to JaySee
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?

    Punch cards work like this: You write code, the code turns into cards that get punched, the computer runs off the punched cards. So if she was using a punch card, that card was no longer there FOR them to run. It'd be like commenting out a random line of C code.

  • Sousaphile (unregistered) in reply to JaySee
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?
    I don't get it either. Wouldn't a missing card cause a sequence error?
  • Mike (unregistered)

    Not that switching to magnetic tape would help. We lost months of data because some janitor was told to polish the floors--including the tape storage room. The floor polisher motor degaussed all the tapes in the bottom two shelves of all the racks, and the third shelf up was only saved by an act of Reed-Solomon...

  • SkittlesAreYum (unregistered)

    So, he checked the numbering on all the cards, but didn't notice cards were missing? Huh?

  • Mike (unregistered) in reply to Sousaphile
    Sousaphile:
    I don't get it either. Wouldn't a missing card cause a sequence error?
    Not if the discarded card is the last one in the sequence.

    Also, these cards were likely for data storage, not program storage.

    Not that switching to magnetic tape would help. We lost months of data because some janitor was told to polish the floors--including the tape storage room. The floor polisher motor degaussed all the tapes in the bottom two shelves of all the racks, and the third shelf up was only saved by an act of Reed-Solomon...

  • pedant (unregistered) in reply to Sousaphile
    Sousaphile:
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?
    I don't get it either. Wouldn't a missing card cause a sequence error?

    It could have been a card from a deck of input data rather than code - but in that case its absence should have been picked up by batch vaidation rules.

  • CodeMonkey (unregistered)

    Is it possible that the punch cards are the input (accounting numbers..not code) so when one card gets used to throw away dirt, the final result is off by a few dollars because one accounting number was missing?

  • Escalator (unregistered) in reply to dkf

    It does sound like that, but these things do happen.

    A while back, I was sysadmin for a small-ish call centre in the southwest UK. Amongst our various servers was a small unit that had originally been a desktop, but had had Linux installed on it and was temporarily acting as mail server for the company. Now, whilst we had UPS for our "mission critical" machines - PDC, fileserver, db server, and the server that ran the call centre package we used - the little Linux mailserver was just plugged into the wall like any other desktop.

    It ran fine for about a week following deployment. Then, the first Monday morning following installation, I arrived in work to find the early-rising MD running around like a headless chicken. "Email is broken!" she wailed. "Fix it now!". First port of call, obviously, was the mail server, which I found be sitting awaiting approval to run a full disk check. "Odd", I thought, and let it run. An hour or so later, mail was back up and all the stuff that had been sent over the weekend arrived in people's mailboxes.

    All was fine for the rest of the week. The following Monday, I arrived in work to find that "email is broken again! Fix it now!". Of course, I went to look at the mailserver. This time I found that it was unplugged. Consequently, I asked about the areas that the weekend cleaners covered, and was told that yes, the server room was an area that they were supposed to clean, and yes, they had a key.

    I affixed a small Post-It note to the plug that read "DO NOT UNPLUG!", and the mailserver served us reliably and faithfully for another six months until management made good on their threat and bought a new server and a copy of Exchange. But that's a whole other story...

  • frustrati (unregistered) in reply to SkittlesAreYum
    SkittlesAreYum:
    So, he checked the numbering on all the cards, but didn't notice cards were missing? Huh?
    Just a wild guess: the cards were sequentially numbered, restarting every morning and the cleaner always took the last numbered card...

    I have seen my share of off-by-one-element sums and it is usually quite easy to spot the one missing element. If they had paper records, the developer should have compared the computer records to those and the fact that a card was missing would have been easy to spot. Lazy problem determination!

    Oh, and any more animated ads like the RailsKits one and Adblocker gets turned on again, Alex.

  • anonymous_user_3772 (unregistered) in reply to JaySee

    Punchcard = memory. Could be data, could be instructions. In this case, probably data since the whole app didn't fall over. PS - Read the Jargon File (google it) if you want to know about computers before the internet devolution.

  • jtl (unregistered)

    Reminds me of the Simpson's episode where Bart pulls a punch card out of Apu's thesis, so Apu sighs and throws the whole thing in the trash.

  • (cs) in reply to Anon
    Anon:
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?

    Punch cards work like this: You write code, the code turns into cards that get punched, the computer runs off the punched cards. So if she was using a punch card, that card was no longer there FOR them to run. It'd be like commenting out a random line of C code.

    Then wouldn't TRWTF be that the low-level programmer checked every variable, every path of execution...everything...but failed to notice that entire sections of the program were missing?

  • (cs) in reply to CodeMonkey
    CodeMonkey:
    Is it possible that the punch cards are the input (accounting numbers..not code) so when one card gets used to throw away dirt, the final result is off by a few dollars because one accounting number was missing?

    That's my thought. We've seen other tales of stores using punch cards to mark individual items being purchased since UPCs hadn't been invented yet. Maybe all those cards ended up in a big stack that got counted up at the end of the night?

  • James (unregistered)

    So, as a naive C++ native speaker who was still in kindergarten when the Apple ][ came out, I'm having trouble grokking the problem here. If I wanted to parse, say, a block of data in memory, I'd either a) read the size, then read [size] bytes of data, or b) read data until I hit a predefined delimiter. If the cards have a sequence number, the only way to miss one without noticing is if the one she tossed was the last one. But in that case, either a) there's not enough data to meet the stated size, or b) she'd have thrown out the card with the delimiter. Or were programmers back then so stupid they just read until people stopped feeding in cards?

  • (cs)

    If it was a data card then it makes sense that only 1 error was found. The card held a small sum and that is why the data was only off by a small sum.

    It was most likely NOT a program card, but a data card.

  • (cs) in reply to Anon
    Anon:
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?

    Punch cards work like this: You write code, the code turns into cards that get punched, the computer runs off the punched cards. So if she was using a punch card, that card was no longer there FOR them to run. It'd be like commenting out a random line of C code.

    Well, from the story it seems like these particular punch cards were being used to store data. When the cleaning lady threw one out, that record was lost, and wasn't tallied by the program.

  • (cs)

    Cleaning ladies: The bane of IT since the 1960s.

  • SomeCoder (unregistered)

    Isn't this story just a variation of the urban legend about the cleaning guy unplugging the server every night to plug in his vacuum cleaner?

    This is a little hard to believe... maybe the OP can chime in and give us some more background on why the programmer didn't notice a missing card.

  • doug (unregistered) in reply to Sousaphile

    Sequence numbers are (were) optional. They make life safer as they detect errors, but they were routinely left off so it would be possible to insert cards in the middle of the deck. Apu could have reinserted the card that Bart took if there were sequence numbers in his deck.

    My guess is that she took out a data (input) card, not an instruction card. This means that a single transaction would be lost, so a few totals would be a bit smaller. If this were the last card, or the data was unsequenced, this would not have been detectable.

  • (cs)

    This seems like just another variant of the most-likely-apocryphal story where the cleaning lady would unplug a server once a week to free up the outlet for the vacuum cleaner. I think that one was posted here a while back also.

  • (cs) in reply to Anon
    Anon:
    JaySee:
    Can someone who knows how punch cards work explain to me why this is a problem? Did she use a card that was already punched, and thus threw off the computations the machine made based on the cards?

    Punch cards work like this: You write code, the code turns into cards that get punched, the computer runs off the punched cards. So if she was using a punch card, that card was no longer there FOR them to run. It'd be like commenting out a random line of C code.

    Or deleting one record out of a database table at random ...

  • (cs) in reply to James
    James:
    If I wanted to parse, say, a block of data in memory, I'd either a) read the size, then read [size] bytes of data, or b) read data until I hit a predefined delimiter.
    And if you wanted to parse, say, some input from a file or the keyboard, you'd read until getchar() returned null, because there were no more bytes of data to read. Kind of like not having any more cards to read, in a way...
  • Kev (unregistered)

    We had special printer that was very important to the day to day functionality of one department that became our cleaning lady story. It would fail to work, so management would have a fit.

    We took our time doing basic testing and we eventualy uncovered that the network port it was in was not active. The empty one below it was. Once we pluged the cord in the correct spot, it started working.

    The next time it happened we were able to track it down to the cleaning lady. The printer was on a cart. She would pull it out, unplug it, and clean. It was good to know they clean places like that every so often, we talked to her and she never did it again.

  • Asuyuka (unregistered)

    Isn't this an Urban Legend?

    Still funny, though.

  • Ollie Jones (unregistered) in reply to JaySee

    Gosh, I am an old-timer. The same kind of thing happened to me....

    Here's how this kind of thing worked with the IBM 026 and 029 keypunch machines.

    The programmers punched their COBOL programs onto cards, or put them onto coding forms and had them punched by keypunch operators. Whether done by programmer or by operator is important, because the operator usually had a "drum card" (a simple keypunch-machine program coded onto a card) that made the keypunch machine put a serial number into columns 73-80. Most programmers didn't do this, because it was a pain to correct errors.

    Then, we ran the source deck through the compiler and link-editor, and the binary code was punched by a monster punch-card output device into a shorter deck of cards. (You could have your program wake up the night operator by punching all the holes out of a card.)

    We put our binary code on pink cards where I worked.

    Now, in properly run shops, the source code was put into a source-code control system, that is, a punch-card file drawer with a lock on it. And the binary code was kept handy to do the data runs.

    The data was itself on punch cards. Each little transaction was on a card by itself. Remember, these computers didn't have any files, any disks, anything. The data was on the cards.

    A lot of the time, the next day's run was done by punching the day's information, slapping the newly punched cards after the existing ones, putting the pink cards at the front, slapping the whole mess in the card reader, hitting the big green button on the card reader, and jumping back.

    These card readers were monster machines, and very capable of grinding up three or four cards if they jammed. That was the most common reason for cards getting lost (sometimes operators were careful to try to make a replacement card, and sometimes not so much.)

    So, questions:

    Did the data cards have serial numbers? Well, yes, if the days' data punching discipline got them put on there. The drum card could do it. But the punch operators might or might not have been instructed to do that.

    Did the program know how many cards it was supposed to read? Well, yes, if it was programmed that way, and somebody manually counted the cards in the input deck, and punched another card with the card count on it.

    So, it's easy to see that a lost card could cause a discrepancy. If there's a WTF, it is that well-run systems in those days (and these) were very careful about batch totals, etc.

    I think the story about the cleaner using the card is an urban legend. But there are PLENTY of ways to lose a card that aren't simply mythical.

    Man, was I happy when I got my hands on a "dumb terminal" and the early vi editor!

  • (cs) in reply to shadowman
    shadowman:
    This seems like just another variant of the most-likely-apocryphal story where the cleaning lady would unplug a server once a week to free up the outlet for the vacuum cleaner. I think that one was posted here a while back also.

    yep 5 minutes before your comment. Did it really take 5 minutes to write that paragraph???

  • Disgruntled DBA (unregistered)

    The real WTF (tm) is tha

    PLEASE PRESS PLAY ON TAPE TO CONTINUE....

  • SomeRegularReader (unregistered) in reply to Escalator

    Simliar story to this, told to me by a former coworker.

    They had a server reboot every night around 3 AM for no reason. Nothing in the server logs could explain it. They finally decided (out of options) to put a camera in the server room. They discovered that the maintenance lady would unplug the server every night around that time, plug-in her vaccum (it seems no other power outlet was available), clean up, and plug back the server.

  • Otis P Criblecoblis (unregistered)

    I thought I had purged all COBOL from my brain, but now with your mention of ENVIRONMENT DIVISION, FILE SECTION, and WORKING-STORAGE SECTION it's coming back.

    DATA DIVISION !!!!!!!! PROCEDURE DIVISION !!!!!!!!!

    PERFORM 00190-BEGIN-INITIALIZATION THRU 00190-END-INITIALIZATION !!!!!!!!

    MOVE CORRESPONDING 050-INPUT-RECORD TO 050-OUTPUT-RECORD !!!!!!

    AAAAAAAAAAAAUGH!!!!!!!!!!!!!!!!!!!!!!!

  • (cs) in reply to the real wtf fool
    the real wtf fool:
    shadowman:
    This seems like just another variant of the most-likely-apocryphal story where the cleaning lady would unplug a server once a week to free up the outlet for the vacuum cleaner. I think that one was posted here a while back also.

    yep 5 minutes before your comment. Did it really take 5 minutes to write that paragraph???

    Or maybe, just MAYBE, shadowman simply happened to not refresh between spending a few minutes reading prior comments and responding himself.

    http://meta.wikimedia.org/wiki/Don%27t_be_a_dick

  • FunkyShu (unregistered)

    The biggest "hole(s)" in this urban legend is why the cleaning lady would, of all things, choose a punch card to use as a dust pan. I mean, she may as well have a used a cheese grater or better yet a flour sifter... c'mon, a card with a bunch of holes in it?? puh-leeze...

  • Rboy (unregistered)

    At that moment, a member of the cleaning crew came walking through the door. She politely said "hi" and asked if her cleaning would disturb him. Happy to have another human being in the room, the young developer invited her in.

    "No, it's fine, go right ahead," he said weakly. She thanked him and began her cleaning. The young developer got back to work...

    I was starting to worry that The Daily WTF was starting to take a different direction. WTF indeed.

  • Ryan (unregistered) in reply to DOA
    Cleaning ladies: The bane of IT since the 1960s.

    No, security guards are the bane of IT.

    "What do you mean i can't go into your machine room? I NEED TO SECURE IT!"

  • (cs)

    This story makes me sad.

  • Andy L. (unregistered) in reply to SomeRegularReader
    SomeRegularReader:
    Simliar story to this, told to me by a former coworker.

    They had a server reboot every night around 3 AM for no reason. Nothing in the server logs could explain it. They finally decided (out of options) to put a camera in the server room. They discovered that the maintenance lady would unplug the server every night around that time, plug-in her vaccum (it seems no other power outlet was available), clean up, and plug back the server.

    If it died every night at 3AM, and you suspected that someone was messing with it, (that's the only reason to install a camera), then why not simply stay up with it one night?

  • Max (unregistered)

    TRWTF is how anything ever got done with punchcards, given how error prone the whole system is :)

  • Da' Man (unregistered) in reply to James
    James:
    ... If I wanted to parse, say, a block of data in memory,...
    Does not compute.

    The card stack IS your memory.

  • Tilendor (unregistered) in reply to shadowman

    I worked at a nation-wide cleaning company for 5 years during college before making it into the IT industry, and served in all roles from janitor to a manager.

    Its very true that people are very poor at estimating how much they know about something they have no knowledge in, and most people don't understand too much about the cleaning industry.

    I would believe almost any of these stories about cleaning personnel making these kind of mistakes.

    Cleaners don't work in the fields the company's people do, they are often non-technical, and generally not very educated, especially about technology. Their purpose is to remove dirt, make things look better, and follow instructions. Things that are 'DUH!' to us are foreign to them.

    Our cleaning company serviced semi-conductor manufacturing plants, and we had a whole culture of "Don't touch it". We only threw away trash in cans, only dusted specific areas, and when in doubt, left it alone.

    This saved us from any costly mistakes, but things of this nature would crop up all the time, which our customers would tell us about, we would let the staff know, and then it wouldn't happen again.

  • Chris (unregistered) in reply to shadowman

    Cleaners unplugging servers in not apocryphal. One place I worked had this problem. As it was a military site one of the officers decided to guard the problem machine himself (As the cleaners swore blind that they were not switching off the machine). The first night of watching he caught one.

  • oldie (unregistered) in reply to Otis P Criblecoblis
    Otis P Criblecoblis:
    I thought I had purged all COBOL from my brain, but now with your mention of ENVIRONMENT DIVISION, FILE SECTION, and WORKING-STORAGE SECTION it's coming back.

    DATA DIVISION !!!!!!!! PROCEDURE DIVISION !!!!!!!!!

    PERFORM 00190-BEGIN-INITIALIZATION THRU 00190-END-INITIALIZATION !!!!!!!!

    MOVE CORRESPONDING 050-INPUT-RECORD TO 050-OUTPUT-RECORD !!!!!!

    AAAAAAAAAAAAUGH!!!!!!!!!!!!!!!!!!!!!!!

    ADD REALLY-LONG-FIELD-NAME TO ANOTHER-REALLY-LONG-FIELD-NAME GIVING YET-ANOTHER-REALLY-REALLY-LONG-FIELD-NAME-WHICH-BTW-IS-IN-UPPER-CASE.

    ahh happy days!

  • Steve (unregistered)

    Great, a retread of the old "cleaning lady unplugs something important to plug in her vaccuum" saw.

  • (cs)

    What's the deal with "cleaning staff breaking software"? It seems to be this reoccurring theme.

  • oldie (unregistered) in reply to oldie
    oldie:
    Otis P Criblecoblis:
    I thought I had purged all COBOL from my brain, but now with your mention of ENVIRONMENT DIVISION, FILE SECTION, and WORKING-STORAGE SECTION it's coming back.

    DATA DIVISION !!!!!!!! PROCEDURE DIVISION !!!!!!!!!

    PERFORM 00190-BEGIN-INITIALIZATION THRU 00190-END-INITIALIZATION !!!!!!!!

    MOVE CORRESPONDING 050-INPUT-RECORD TO 050-OUTPUT-RECORD !!!!!!

    AAAAAAAAAAAAUGH!!!!!!!!!!!!!!!!!!!!!!!

    ADD REALLY-LONG-FIELD-NAME TO ANOTHER-REALLY-LONG-FIELD-NAME GIVING YET-ANOTHER-REALLY-REALLY-LONG-FIELD-NAME-WHICH-BTW-IS-IN-UPPER-CASE.

    ahh happy days!

    oops, that would of course have to be split over 3 lines, I mean cards.

  • (cs) in reply to DOA
    DOA:
    Cleaning ladies: The bane of IT since the 1960s.

    Ain't the truth? 50% of the WTF stories end the same way.

Leave a comment on “A Training Issue”

Log In or post as a guest

Replying to comment #:

« Return to Article