• Singletonitis (unregistered)

    Well, since COBOL was designed by a woman, what else can you expect. http://en.wikipedia.org/wiki/Grace_Hopper

    Do not take personal.

  • (cs)

    The first clue than I forgot some minor punctuation in my instruction file for a statistics package was when the main frame operator handed me a printout 13 inches thick. --RA

  • (cs) in reply to KattMan
    KattMan:
    SwordfishBob:
    snoofle:
    I think that you aren't really experienced until you've accidentally managed to trash a {mainframe|db server|root file system|network config file|...}
    .. or burnt out a $20,000 motor through poorly planned logic.

    Or how about burning out the handbrake on a $100k Forklift simply because the lever worked opposite from the $30k forklift?

    Having worked for very large companies, on very large projects, I find the dollar figure comparison quite funny. Which is worse, a mistake that costs $15 million on a $20 billion dollar project, or a mistake that costs $100 on a $10,000 project?

    Yeah, the 100 bucks is worse in terms of wasted project resources....

    It's all relative, and all the cost of doing business.... -Me

  • waefafw (unregistered) in reply to It's a Feature
    It's a Feature:
    Where if you want it to do anything, you've got to bundle that process in something known as JCL ("Job Control Language") so that it can run somewhere in the middle of thousands of other processes. Where you'd better brush up on your ability to read hex (and not just so that you can cast one).

    Ah, yes--the mainframe. You ever read "The Hitchhiker's Guide to the Galaxy?" Think of the mainframe as a baby "Deep Thought".

    Ah, JCL. I once spent a few months doing nothing but submitting jobs into a queue for a data transfer. God that was mindless, and so pleasantly stressless. Good times, good times.

  • Mr. Sweetness & Light (unregistered) in reply to A non-e mouse operator

    We had an operator who wanted to purge jobs 1861-1862. He types in 181-1862. Then he tries to stop the CPU like that would help.

    Of course it wiped every report. I and about 10 others spent the next day getting all the reports purged recreated. I spent the evening explaining to the senior operator how to use the TSO console to purge only the two jobs.

    The worst part was that they could have stayed there as they were just S0c7 dumps.

  • RangerNS (unregistered) in reply to KattMan

    Q: How do you make good decisions? A: Through experience.

    Q: How do you get experience? A: By making bad decisions.

  • nobody (unregistered)

    JCL and bugs in trivial programs.

    The way to delete files in jcl was to run a program with a data file that was to be deleted afterwards. Something like //RUN IEFBR15 //DD <some stuff> DISPOSE=DELETE

    (my JCL is seriously rusty, so don't criticize. I haven't used it in around 25 years)

    If you just wanted to delete a file, there was a null program, IEFBR15, which did nothing but return. However, it always returned a failure status because it never cleared the status code.

    So, if you deleted a file and then checked the status, it failed. Leave it to IBM to put a bug in a trivial program.

    And, as has been pointed out, the console commands were obscure, with commas where you'd expect = and other idiotsyncracies (misspelling deliberate) And you had to request the console to be unlocked, but the computer (as has been pointed out) could interrupt your typing anytime; what it had to say was soooo important.

    As for the big error, I once was copying a DECtape (block-structured wide magnetic tape) that contained our source code. I carefully set the write protect switch, and did the copy. Oops - I got the source and destination drives confused, and wiped out the (only) source tape. Fortunately, we had a directory printout, and the copy only erased the directory. I spent the next few hours with an octal editor re-creating it. And then made several copies.

    Captcha: craaazy (need I say more?)

  • imMute (unregistered)

    This happened to me earlier this year while working at my high school performing arts center. I was diddling (as we like to call tinkering with things we shouldnt) with the light board and accidentally did something that caused the board to wipe its patch (the data that tells it what channel controls what light). I didnt realize exactly what happened and I scrambled through the Reset Options until I found "Reset Patch..." CLICK " and Show". The crucial "and show" deleted basically every thing we had on the board. The next 3 days worth of shows to be exact. That was the day I learned about the art of backups and still back up that damn board every time I touch it.

  • (cs) in reply to Maurits

    Someone at my office said exactly the same thing, and he had a sign on his desk reading "Where-clause Engineer" :D (Sadly, he escaped the sinking ship...)

  • ewhac (unregistered) in reply to el jaybird
    el jaybird:
    while(1) { fork(); }
    I had a friend who used to deliberately write code like that, to measure the performance of the system/kernel (this was back in the 4.3 BSD days). He would also have each process allocate a huge chunk of RAM, and then access the pages in the order page[0], page[NUMPAGES-1], page[1], page[NUMPAGES-2], page[2], ... This seemed to be a pessimal access pattern for the swapper, since it assumed either sequential access or completely random access. This "test" program was called 'forker-memget'.

    One day he accidentally let a bunch of these guys get out of hand while running as root. Killing them turned out to be a problem, since the machine was now bogged down and new copies would spring up immediately. I was shoulder-surfing him at the time, and suggested that he 'nice' them all to +20 before trying to kill them. It worked; enough CPU was freed up that the 'kill' command was able to nail them all.

    Schwab

  • Matthew (unregistered) in reply to regeya
    regeya:
    #rm -rf / tmp

    will ruin your whole day.

    That's why I'm always sure to use systems that are too slow to do much damage before I have a chance to hit CTRL-C. Easy fix, really.

  • Linoge (unregistered)

    It´s embarrasing and hard to remember, but several years ago I deleted all my boss`s emails from a fuck*g Microsoft Exchange Server while trying to make a backup (Duh?), I spent almost a month to recover less than the 80% of the email (2GB, I wonder why he kept the mails on the server instead of saving it on his machine like everyone else). When I read histories like this, I can feel the blood pumping to my head and the cold-sweat from horror movies back again.

    PD: Sorry for my poor english.

  • (cs)

    We had core dumps happen often enough that we needed to automatically delete them or we'd run out of space.

    One day our VP of engineering decided that the best name for the directory full of the essential files for his project was "core". Several days later, all his sources were gone. Oops.

  • Ishai Sagi (unregistered) in reply to mdpdb

    Working with Rod today, he actually wrote that article word by word. you will find it in his blog (which I cannot find at the moment).

  • Phil (unregistered) in reply to A non-e mouse operator

    Yep, I had this once (when I was juuust given root on our student dorms main linux router) when I wanted to edit root's crontab which was full of important things.

    I wanted to type crontab -e, but why hit 'e' if the nice and shiny 'r' is so close, which does not mean "edit" but "remove". Yep, whole crontab was gone, and I had to reconstruct it quickly from short-term memory.

    It worked, luckily, and everybody smiled and knew this would never happen to me ever again :-)

  • Bob (unregistered)

    Once worked on an electronic greeting cards system for a major website. Was still learning SQL at the time, and (for want of a WHERE clause) accidentally deleted all of the ecards on the production system. No backups. Oops.

  • Jon (unregistered) in reply to Maurits
    Maurits:
    SQL Reeeeeeeally needs a SET DELETES_AND_UPDATES_REQUIRE_WHERE_CLAUSE 1 option.

    And it should be on by default.

    I'd argue that it should always be required. ("UPDATE ... WHERE true" or whatever should still work.)

  • (cs) in reply to bofh69

    Only if the '*' sorted before any other files in the expansion list. (I start all my files with an '@' sign, don't you???)

    This is why I always use tab-completetion on file names arguments (it auto-escapes them).

  • sys<in (unregistered) in reply to MadPad
    MadPad:
    For a horrible moment I thought the title referred to the magic programming language

    Wow, you seemed to have found the one thing on the planet that does not have a Wikipedia entry! Unless it's that MUMPS dialect called "Magic" (but that deosn't seem to be the case based on the URL you provided)...

  • Konrad (unregistered)

    Allow me to share my first terminal disaster granted this I was 13 at the time and the only thing I lost was Test Drive (version 1) of my own IBM PC XT

    put a floppy disk in

    c:> FORMAT

    Press any Key to begin fromatting C:

    'oh I don't want to do that,' mutters to self.

    [ESC]

    ...

    some time later, 'Dad I think we need to reinstall DOS'

  • Bill (unregistered) in reply to It's a Feature

    Actually, in terms of power, it's more like 1 of them bundled up into a single unit. and even then you'd have to pull most of the memory out.

  • (cs) in reply to SwordfishBob
    SwordfishBob:
    snoofle:
    I think that you aren't really experienced until you've accidentally managed to trash a {mainframe|db server|root file system|network config file|...}
    .. or burnt out a $20,000 motor through poorly planned logic.

    Or caused a global recall. Stupid = instead of |=.

  • Yuriy (unregistered) in reply to Satanicpuppy
    Satanicpuppy:
    That's why you don't run as root, and you only chmod as much as you absolutely have to...733 is your friend.

    Wait a minute, I'm no UNIX/Linux guru, but wouldn't 733 only forbid the non-owners read-access to your files? Everyone would still be able to overwrite/delete and execute them. Or am I missing something?

  • Paul Tomblin (unregistered)

    A long time ago in a mainframe shop far far away, I was having ABENDs on an interactive program. One of the old farts showed me how to do a "SYSABEND OUT=A" or whatever the syntax was so that core dumps would go to the printer. What he didn't tell me was how to turn it off again. So I got my ABEND, went to the print pickup point to pick up my core dump, and then went back to my desk to try some things out. But I must have done 10 or 15 more ABENDs, and the next time I went to the print pickup, our group's box was overflowing with all these core dumps. And every printout came out of our group's budget, along with disk space and cpu time. My boss wasn't a happy camper when the next week's bill came, since I'd used several week's worth of printing on that one day.

  • Crotchety Old Guy (unregistered) in reply to regeya
    regeya:
    #rm -rf / tmp

    will ruin your whole day.

    or:

    #cd #rm -rf *

    Which is what one of my testers did a few years ago. First he blamed my program for failing (when it couldn't find files it was looking for), then later he quietly asked me why the system wouldn't boot.

    Remember Norton Navigator (Pre-windows)? At my first job another new guy was told to clean up a hard drive to free up some space. Norton Navigator allowed him to remove ".." from the C:\ directory. Never did figure out exactly what it did to the root table, but it wasn't pretty. Re-format time and a big note not to do that again.

  • dustin (unregistered) in reply to Bob

    this is why whenever I'm testing anything on the production system I always write this in between my statements.

    begin transaction

    stuff i want to test

    rollback transaction

  • (cs) in reply to Bob
    Bob:
    Once worked on an electronic greeting cards system for a major website. Was still learning SQL at the time, and (for want of a WHERE clause) accidentally deleted all of the ecards on the production system. No backups. Oops.
    When you are fired for this, be sure to exit the room with a cryptic, "My work here is done."
  • Graham C (unregistered)
    grinded to a halt

    WTF?? The past tense of "to grind" is "ground".

  • tieTYT (unregistered) in reply to Maurits

    or maybe some type of transaction control that allowed you to rollback... hmm

    Maurits:

    SQL Reeeeeeeally needs a SET DELETES_AND_UPDATES_REQUIRE_WHERE_CLAUSE 1 option.

    And it should be on by default.

  • Scottford (unregistered) in reply to Crotchety Old Guy
    Crotchety Old Guy:
    Remember Norton Navigator (Pre-windows)? At my first job another new guy was told to clean up a hard drive to free up some space. Norton Navigator allowed him to remove ".." from the C:\ directory. Never did figure out exactly what it did to the root table, but it wasn't pretty. Re-format time and a big note not to do that again.

    DOS FAT drives do not (at least, did not) have . or .. in the root, only in subdirectories.

  • Ken (unregistered) in reply to nobody
    nobody:
    The way to delete files in jcl was to run a program with a data file that was to be deleted afterwards. Something like //RUN IEFBR15 //DD <some stuff> DISPOSE=DELETE

    (my JCL is seriously rusty, so don't criticize. I haven't used it in around 25 years)

    Close, but no cigar. It's IEFBR14.

    The first three letters, "IEF" indicates that it's an OS utility program.

    The 'branch' command in 360 Assembler is 'B'.

    The standard calling convention on the IBM 360 series of mainframes stores the return address in register 14 (aka 'r14').

    Put it all together and you've got 'IEFBR14'.

  • (cs) in reply to snoofle
    snoofle:
    It's a Feature:
    steven22:
    what's a mainframe?
    ...Think of the mainframe as a baby "Deep Thought".

    You, Sir, have a way with words :)

    <edit> Ok, I give up: how do you enter html tags in this new forum software?

    Use BBCode in place of your HTML.

  • MadPad (unregistered) in reply to sys<in
    sys<in:</strong>
    Wow, you seemed to have found the one thing on the planet that does not have a Wikipedia entry!

    Easy enough to create an entry for it...

    If you are ever asked to code in Magic,

    run.... and don't look back

  • Steamer2k (unregistered) in reply to Mikademus
    Mikademus:
    Highly entertaining, but as said above, not a wtf. Perhaps the site should be renamed "The Daily Anecdote From the Past", or maybe a new section (in green?) should be added alongsite the Daily WTF and Daily Code Snippet...

    Captcha: vern (the real WTF is that "Verne" is misspelled, but that's ok, he was never a coder)

    I like Bramster's suggestion of The Daily Oh Sh!t.

  • Steamer2k (unregistered) in reply to Anon
    Anon:
    Like one of my mentors used to say... this is a guy I want to hire because I'm guarenteed he'll never make that mistake again.

    Reminds me of a quote from somewhere, "Why would I fire him? I just spent $10,000 training him."

  • Doodie (unregistered) in reply to TR

    One time this person was coding in SQL and wanted to select all employees from a single table. You can imagine my disbelief at the following SQL request:

    /* Oh, unholy demons of HELL, / SELECT -- the unforgiven seeds and name them each as EMPLOYEE_ID, FIRST_NAME, LAST_NAME, TITLE FROM -- the darkest depths of eternal, uhh, darkness within the CORPORATION WHERE -- their souls have been tainted -- with the blood of the undead with TITLE LIKE '%MANAGER%' / Bring forth thy followers and line them within rows and columns */ ;

    Points for the output of such a query.

  • Mikademus (unregistered) in reply to Steamer2k
    Steamer2k:
    Mikademus:
    Highly entertaining, but as said above, not a wtf. Perhaps the site should be renamed "The Daily Anecdote From the Past", or maybe a new section (in green?) should be added alongsite the Daily WTF and Daily Code Snippet...

    Captcha: vern (the real WTF is that "Verne" is misspelled, but that's ok, he was never a coder)

    I like Bramster's suggestion of The Daily Oh Sh!t.

    That sums it up nicely; also adheres to the KISS principle, so I'm for it!

  • Crotchety Old Guy (unregistered) in reply to Scottford
    Scottford:
    Crotchety Old Guy:
    Remember Norton Navigator (Pre-windows)? At my first job another new guy was told to clean up a hard drive to free up some space. Norton Navigator allowed him to remove ".." from the C:\ directory. Never did figure out exactly what it did to the root table, but it wasn't pretty. Re-format time and a big note not to do that again.

    DOS FAT drives do not (at least, did not) have . or .. in the root, only in subdirectories.

    I know, which made it strange that Norton offered the option, and made the result rather ambiguous as to what Norton thought it was doing in that case.

    Captcha: "dubya" Time to go home and get drunk for the big speech tonight.

  • TimHill (unregistered)

    The real WFT here is that each mainframe message wiped any command he was typing to correct the error -- so the wtf is in the idiotic design of the system. About the same level of thinking as the infamous "Error: No keyboard; press any key to continue" BIOS message.

  • Mike (unregistered) in reply to Steamer2k

    Reminds me of a quote from somewhere, "Why would I fire him? I just spent $10,000 training him."[/quote]

    It's generally attributed to Tom Watson, head of IBM, and it was actually $10,000,000

  • (cs) in reply to TimHill
    TimHill:
    About the same level of thinking as the infamous "Error: No keyboard; press any key to continue" BIOS message.

    Except that message actually makes sense- you can wiggle the connection (or plug a keyboard in if it's missing entirely) and then press F1. Much better than letting Windows (or Linux, for that matter) boot without a PS2 keyboard. Back in the old days (think Win 3.1) the system would often lock up if the keyboard was (un)plugged after the BIOS booted the OS.

  • Miles Archer (unregistered) in reply to snoofle

    Tweedle dee/tweedle dum attack

  • Foo (unregistered) in reply to Yuriy
    Yuriy:
    Satanicpuppy:
    That's why you don't run as root, and you only chmod as much as you absolutely have to...733 is your friend.

    Wait a minute, I'm no UNIX/Linux guru, but wouldn't 733 only forbid the non-owners read-access to your files? Everyone would still be able to overwrite/delete and execute them. Or am I missing something?

    yep....

    744 would be read only to the group and world with read/write/execute for the user.

    I myself prefer in order 740, 770, or 774.

  • (cs)

    Ah, mainframes. I am just learning on a System/390, no programming yet ... but I do know that:

    • In 3270 terminals, cursor position ALWAYS matters. Ow.
    • They use code, instructions and transactions so cryptic that Intel x86 assembly code looks saner
    • One typo might crash everything
    • Your mainframe will be the production mainframe, as they are so expensive.

    It looks like I will have to program on a 390 sometime in the near future. And this is exactly the kind of stuff I fear doing...

    My worst "Sorcerer's Apprentice" experience has been one similar to the one described earlier, just uglier:

    for (i = 0; i <= 1024; i++) { if (fork() == 0) (child code) else (parent code) }

    This code was supposed to spawn 1024 children. Now, you must see where the WTF was ... and why my old Pentium1 croaked shortly after...

  • Cheong (unregistered)

    Actually, the Sorcerer should have told him how to recovery from those disastious situation before he left.

    For one thing, he is retiring so he wouldn't normally be "standby" want something went wrong. For the others, people tend to do insane try-and-error hoping to recover the damage if they have no idea how to properly fix it, and do more damage...

  • SuzieQ (unregistered) in reply to It's a Feature

    Ahh - JCL - I once took a 3 day course in JCL (it was the dummies introduction course but the company thought it was all we needed!). I ended up with a set of 'magic' cards into which I knew where to place my program and where to place my data cards.

    For the next year, all my programs had the same name and they all had to read their data from the cards and print out the result.

    I really had no idea what the "//SYSIN DD *" (hey! I can remember that bit) actually did but at least I got my output!

  • (cs) in reply to Yuriy
    Yuriy:
    Satanicpuppy:
    That's why you don't run as root, and you only chmod as much as you absolutely have to...733 is your friend.

    Wait a minute, I'm no UNIX/Linux guru, but wouldn't 733 only forbid the non-owners read-access to your files? Everyone would still be able to overwrite/delete and execute them. Or am I missing something?

    It depends. Interestingly enough 733 on a directory can help with the accidental rm -r in the wrong place as nonroot (as long as you don't own the directory). So does not setting write privileges, of course, or setting the sticky bit if it has to globally writable (like /tmp). But 733 works because a directory without read permission can still be used, but not listed (ie: ls thedir gives Permission denied but you can cd into it and use any file you know happens to be there just fine - using a file requires exec privs on the directory). So chmod a-r on important directories like /bin, /sbin, source directory for multitrillion dollar project on the main repository server, etc, and rm -r stops dead (at least for that directory) because the directory can't be listed (and rm -r can't remove the dir itself until it's empty, and it isn't going to start guessing filenames either). Of course, this doesn't stop root, and it breaks tab completion because the shell can't list the directory either (possible solutions involving linux capabilities (if those can even be effectively used atm) and sudo or a setuid(NOT root) rm might allow normal use but stop rm -r dead in the same way).

    Of course, this might be system-dependant, but I know at least linux does it that way. I don't have any other unixish system to try it on, but I figure it's probably a sensible thing to assume (as otherwise, +r would be useless and turning it off is harmless, since +x or +w takes care of everything else that you do with a directory).

    Of course he might have meant 744. Which still doesn't save the owner from the ocassional typo.

    And on the subject of accidental oopses, I've posted this once before but should mention the one time I wanted to rm -r a subdirectory named bin, via rm -r ./bin, and guess which character I forgot to type (or tried to type but kbd didn't register and I didn't notice)? Yup, the dot.

  • (cs) in reply to TR
    TR:
    Wtf? These things happen. It's called learning..

    Why he just didn't phone up the sorcerer to check back with him ? They had phones in those day's .... (not mobiles, though)

    No....he had to do it alone.

  • (cs) in reply to Satanicpuppy
    Satanicpuppy:
    TR:
    Wtf? These things happen. It's called learning..

    Today, no big deal. 20+ years ago, he's lucky he kept his job. You're in a situation where you can cripple a system that has no backup, which will cost a literal fortune to repair, and will utterly shut down your business while it is off line...Back then, it wasn't like they could just do their work locally...Every damn machine that connected to that mainframe was a dumb terminal (or a printer), completely worthless without the mainframe.

    It's totally different these days, but back then, you damn well better not be learning on the mainframe if you don't damn well KNOW what you're doing.

    I would think it vice versa: 20 - 30 years ago the mindset was such that mistakes (espsecially with computers) were expected to happen sooner or later - you did something like that and you have gotten off with a (severe) reprimand. Today, everybody needs somebody to be accountable (read: to be blamed) - this guy would have been terminated the next day.

  • operagost (unregistered) in reply to Linoge
    Linoge:
    Microsoft Exchange Server while trying to make a backup (Duh?), I spent almost a month to recover less than the 80% of the email (2GB, I wonder why he kept the mails on the server instead of saving it on his machine like everyone else).

    Perhaps because Exchange is a corporate email and collaboration system, and not an ISP's POP3 server. That being said, 2 GB is out of hand.

Leave a comment on “The Sorcerer's Apprentice”

Log In or post as a guest

Replying to comment #112943:

« Return to Article