- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
We're sorry, the first comment has been swept under the rug by the cleaning lady.
Admin
No way the floor got swept every week.
Admin
Sounds like an urban legend to me. Specifically, a variation on the one with the intensive care ward and the Bed of Death.
Admin
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?
Admin
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.
Admin
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.
Admin
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.
Admin
Admin
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...
Admin
So, he checked the numbering on all the cards, but didn't notice cards were missing? Huh?
Admin
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...
Admin
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.
Admin
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?
Admin
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...
Admin
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.
Admin
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.
Admin
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.
Admin
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?
Admin
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?
Admin
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?
Admin
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.
Admin
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.
Admin
Cleaning ladies: The bane of IT since the 1960s.
Admin
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.
Admin
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.
Admin
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.
Admin
Or deleting one record out of a database table at random ...
Admin
Admin
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.
Admin
Isn't this an Urban Legend?
Still funny, though.
Admin
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!
Admin
yep 5 minutes before your comment. Did it really take 5 minutes to write that paragraph???
Admin
The real WTF (tm) is tha
PLEASE PRESS PLAY ON TAPE TO CONTINUE....
Admin
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.
Admin
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!!!!!!!!!!!!!!!!!!!!!!!
Admin
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
Admin
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...
Admin
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.
Admin
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!"
Admin
This story makes me sad.
Admin
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?
Admin
TRWTF is how anything ever got done with punchcards, given how error prone the whole system is :)
Admin
The card stack IS your memory.
Admin
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.
Admin
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.
Admin
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!
Admin
Great, a retread of the old "cleaning lady unplugs something important to plug in her vaccuum" saw.
Admin
What's the deal with "cleaning staff breaking software"? It seems to be this reoccurring theme.
Admin
Admin
Ain't the truth? 50% of the WTF stories end the same way.