• (cs)

    I was running final test on a brand new survey software for a large hotels franchise here in Mexico. I was 21, was my first employ, and my first assignment. The sistem have to save some information into a sql database. date and time included.

    Since all my tests were fine, we deployed nationwide, at the beginning of february or so. The sistem seemed to work fine until february 13th. With "no reason", the application crashed when it supouse to store data. But when I tried to reproduce the error in my development machine, all seemed to work just like the day before. When I analize the data, realize that all hotels were saving data not daily, but monthly. The reason? Date format. My development server had installed SQL server in english, but the production server had a spanish installation. The diference, appart of languaje, was that the english default date format is mm-dd-yy, but spanish one is dd-mm-yy. So, I was saving January 2nd, February 2nd etc. instead february 1st, february 2nd... and of course, there is no 13th month.

    The real WTF was that I have to phone hotel by hotel, and explain how to solve the problem step by step. Many hotels do not have IT department, so I have to explain to very low trained people (some of them not even knew where the start button were) how to unregister a dll, download a new one and re-register it.

    The good thing is that i learned a lot about date formats, testing and deployment. But I still feel chills when the phone rings.

    As you probably noticed, I'm from Mexico and not english native speaker. Sorry for my mistakes.

  • Wene Gerchinko (unregistered) in reply to SnatchAndGrab
    SnatchAndGrab:
    My boss one day:

    Update tPalletData set iLanePosition = 2

    16,000 pallets of cheese logically placed into the second position of a storage rack. Not a pretty thing.

    No, your boss obviously found a way to optimize storage. Obcheesezation.

  • tamosius (unregistered)

    shouldn't watchdog be sending "ok, ok, ok , ok... Oy! not ok! alert! alert! panic! panic!", so when ok, ok... is not received, receiving end would go into "alert! panic!" mode by default? At least that's how I would do... but what do I know? I am NOT an EXTREMELY well paid consultant ;-)

  • Wene Gerchinko (unregistered) in reply to GalacticCmdr
    GalacticCmdr:
    I still keep some of those bearings in my desk to remind me of that.

    So, you're the Captain Queeg of software development, eh?

  • Rafael Larios (unregistered) in reply to dp.design

    I had a similar "problem" back i the day when a i was a junior programer:

    I was working in a module that processed updates for all the costumers in a big health organization (millions of them). Most of the time the updates where minimal but some times the updates culd inform the system that the pacient could have medical attention or not.

    the code in this module was like this:

    package.processTasks(); package.processUpdates(); package.finishTasks();

    I was working in the tasks modules, and the processUpdates method was the biggest and most time consuming. So i decided to comment the processUpdates methods so I could debug and test the Tasks Module faster.

    I forgot to Uncomment the line and commited the changes.

    Next day I received a call:

    "There is something wrong with the software, someone almost died yesterday because his profile wasn't updated, and the system told us that the person in cuestion could'nt receive medical attention. Thank god he had the receipts that showed us that he could receive such attention."

    Thats rigth, I forgot to uncomment one single line.... and someone almost died.

    Now I'm against shipping software without extensive QA.

  • Anonymous (unregistered)

    My worst production failure:

    I once wrote a custom installer/uninstaller for Win95. We installed our app to Program Files\Company Name\Product Name. On uninstall we deleted the directory we attempted to delete both the Company Name and Product Name folders.

    Well one enterprising user decided to customize the install directory to C:\Product Name. When our uninstall code tried to delete the parent folder of Product Name we ... well ... wiped his entire hard drive.

    Lesson learned: remove directory IFF empty

    And on a final note -- the user got a brand new computer from us out of the deal.

    CAPTCHA: stinky

  • Franz Kafka (unregistered) in reply to Kev
    Kev:
    Mine was a missing WHERE clause in a certain DELETE query that resulted in the deletion of all 6,000+ rows instead of just

    I've often thought that WHERE clauses should be compulsory, and that they should introduce a WHEREVER keyword, pronounced similarly to "whatever!" as spoken by kids today (bah humbug, bring back national service).

    that's what commit is for. If you expect to update one row and it says 6000, back up.

  • bramster (unregistered) in reply to FreemanAMG
    FreemanAMG:
    I was running final test on a brand new survey software for a large hotels franchise here in Mexico. I was 21, was my first employ, and my first assignment. The sistem have to save some information into a sql database. date and time included.

    Since all my tests were fine, we deployed nationwide, at the beginning of february or so. The sistem seemed to work fine until february 13th. With "no reason", the application crashed when it supouse to store data. But when I tried to reproduce the error in my development machine, all seemed to work just like the day before. When I analize the data, realize that all hotels were saving data not daily, but monthly. The reason? Date format. My development server had installed SQL server in english, but the production server had a spanish installation. The diference, appart of languaje, was that the english default date format is mm-dd-yy, but spanish one is dd-mm-yy. So, I was saving January 2nd, February 2nd etc. instead february 1st, february 2nd... and of course, there is no 13th month.

    The real WTF was that I have to phone hotel by hotel, and explain how to solve the problem step by step. Many hotels do not have IT department, so I have to explain to very low trained people (some of them not even knew where the start button were) how to unregister a dll, download a new one and re-register it.

    The good thing is that i learned a lot about date formats, testing and deployment. But I still feel chills when the phone rings.

    As you probably noticed, I'm from Mexico and not english native speaker. Sorry for my mistakes.

    Your English is fine. But, the real WTF is the USA date format.

  • Franz Kafka (unregistered) in reply to PseudoNoise
    PseudoNoise:
    And BTW, it -is- a complete pain to try to debug with a watchdog timer running. You only get one breakpoint, and as soon as you resume the system resets.

    what about setting the watchdog to a prod-only build, or allowing it to be disabled on debug builds?

  • Franz Kafka (unregistered) in reply to RobertJohnK
    RobertJohnK:
    I've done the DELETE/UPDATE without a WHERE myself, although it was never an oversight but accidently hitting Enter before finishing typing.

    Lesson learned though, I now always force myself to first type the WHERE clause or use a SELECT first to change it into a DELETE only when I'm sure it's operating on the records I need.

    funny, I always do my deletes like this:

    delete from table where stuff = bad;

    1 row updated

    commit;

  • squibble (unregistered) in reply to tamosius
    tamosius:
    shouldn't watchdog be sending "ok, ok, ok , ok... Oy! not ok! alert! alert! panic! panic!", so when ok, ok... is not received, receiving end would go into "alert! panic!" mode by default?
    The watchdog is the receiving end. If there is no receiving end there is nothing reacting to the lack of "ok" messages and panic mode won't happen.
  • (cs) in reply to bramster
    bramster:
    Your English is fine. But, the real WTF is the USA date format.

    Well, I forgot to tell. I did write some functions to manage date format. The function's output format was mm-dd-yy for some reason (I can't remember why), and that's how I was enetring data to SQL. worked fine in english installation, but no in spanish. The real WTF should be: Why did they give me such project for me ALONE if I had such inexperience?

  • Turbine FE (unregistered)

    I actually installed gas turbines, and can tell you that just ONE turbine can take out half of a steel mill with a hiccup like this. Not just flaming metal, but:

    (300psi of Natural Gas) + (Flame) = Hiroshima

  • Rafael Larios (unregistered) in reply to FreemanAMG
    FreemanAMG:
    Why did they give me such project for me ALONE if I had such inexperience?

    Mananging dates doesn't require experience... it will allways be a pain in the ass.

    Captcha: kungfu, the skills that everyone need to work with dates!!!!!

  • scott2718281828 (unregistered)

    I have a reverse-steel mill disaster story. A continuous casting machine in a local mill was severely damaged because of a setup error by the supervisor (or so claimed all the union workers). To save face he had to blame the control software, so I was hired on a short contract to rewrite some of the graphics routines used by the control system. The status display had nothing to do with machine control, it was even on a different computer. But he got to cover his ass and I got to be the Big Bucks Consultant for a few weeks.

    It was a fun job, every time I ran a test several football fields full of huge equipment woke up and get busy. No molten steel was involved, but when you're in the control room by yourself with all that under your control you can't help but let out a little Mad Scientist cackle now and then.

  • diaphanein (unregistered) in reply to el jaybird
    el jaybird:
    GalacticCmdr:
    This ejector plate moved on 2 rails - which had large metal stops at the end. In a split second that ejector plate was moving so fast that it blew right through those stops, flew out the back end of the machine, past the open walkway behind the machine where it was eventually stopped when it slammed into some empty lockers (about 4-5 meters from the end of the rails).

    Not to be outdone some of the bearings packed into the rig were moving fast enough that they acted as shotgun pellets into the lockers as well. Thankfully everyone was a lunch so nobody got hurt.

    Wow, that's like a scene straight out of an action movie.

    But the real WTF is the lack of a check for invalid slopes that would have prevented a lot of grief.

    So this is that "undefined behavior" I keep hearing about in C++.

  • iToad (unregistered) in reply to Bishoy
    Bishoy:
    this is a real WTF, this so called consultant is crazy to do this mistake in a mission-critical system

    and another WTF is that there is no QA involved or simulation tests to make sure everything is ok before production or deployment.

    It sounds like this application ran on a PLC, instead of a computer. This means that the application was probably written in one of the IEC61131-1 programming languages, such as Structured Text or (gulp) Ladder Logic.

    On the one hand, a very large percentage of the types of applications which can wreck millions of dollars of equipment, or kill someone, run on PLCs.

    On the other hand, you would be appalled at how primitive some of the software design and development environments are for PLC programming.

    I could easily see how something like this could happen.

  • (cs) in reply to Bean
    Bean:
    The watchdog is there to prevent problems with the control system's failure, but who watches the watchdog? This also shows that even if the watchdog sent out a heartbeat, it still could have this same detection stuff commented out and "appear" to act properly even though it doesn't.
    I've done some PLC-based automation work in the past. Sometimes, the HIMs (Human Interface Modules) on the network would crash due to the limitations in the proprietary language used in the RAD suite used to create their software (we were really pushing the runtime VM to its limits, and then some). So, a watchdog system was implemented directly on the PLC. The PLC would increment a counter by one every second for X seconds (configurable value stored in separate PLC variable) for each HIM installed on the network. After the allotted time had passed, the PLC tripped a hard-wired emergency stop that would cut power to the entire system (sans the PLC itself, and the HIMs were on redundant UPS backups). Each HIM would monitor its heartbeat counter and reset the counter back to 0, so if the HIM wasn't crashed, its counter would never be incremented above 1.

    Occasionally, during testing at remote sites, we would just unplug the ethernet cable on one of the HIMs during testing just to screw around with the QA team. We were all going to be there, anyway, so we didn't care about the delays. We'd all just scratch our heads and end up blaming it on one of the QA guys, who were always seemingly in a rush. We'd all have a few laughs. Including the QA guys. Good times.

  • rgz (unregistered) in reply to moe

    Word. In College they actually said this out loud, pieces most be made with the lowest acceptable quality.

  • Mefanwe (unregistered) in reply to Franz Kafka
    Franz Kafka:
    RobertJohnK:
    I've done the DELETE/UPDATE without a WHERE myself, although it was never an oversight but accidently hitting Enter before finishing typing.

    Lesson learned though, I now always force myself to first type the WHERE clause or use a SELECT first to change it into a DELETE only when I'm sure it's operating on the records I need.

    funny, I always do my deletes like this:

    delete from table where stuff = bad;

    1 row updated

    commit;

    I use MySQL. What's this "commit" thing I hear people talking about?

    (grinning, ducking, and running)

  • epsalon (unregistered) in reply to totolamoto
    totolamoto:
    In the same vein, I did for i in *; do cd $i; rm -r *; cd ..; done last week. Fortunately the backup of my home directory was only two days old.

    PS: For the shell challenged, the cd $i fails if it encounters a regular file and the "cd .." will climb up one level in your directory. The rm -r * will destroy everything then.

    Lesson: Always use &&

  • d33mb33 (unregistered)

    This was before by time but a company I worked for supported warehouse control software for a large perfume distributor.

    Ninety bottles of perfume made up a box and nine boxes made up a crate. Each bottle retailed for about $50 each.

    The warehouse was completely automated and loading and unloading stock was performed by loaders without any manual intervention.

    In fact.. everything relied on the stock control system to know which slots in the warehouse are free and which are occupied.

    I don't remember the reason now but the stock control database needed to be restored from backup. But instead of loading the end of day backup, a backup from the previous week was restored instead...

  • (cs) in reply to el jaybird
    el jaybird:
    GalacticCmdr:
    This ejector plate moved on 2 rails - which had large metal stops at the end. In a split second that ejector plate was moving so fast that it blew right through those stops, flew out the back end of the machine, past the open walkway behind the machine where it was eventually stopped when it slammed into some empty lockers (about 4-5 meters from the end of the rails).

    Not to be outdone some of the bearings packed into the rig were moving fast enough that they acted as shotgun pellets into the lockers as well. Thankfully everyone was a lunch so nobody got hurt.

    Wow, that's like a scene straight out of an action movie.

    But the real WTF is the lack of a check for invalid slopes that would have prevented a lot of grief.

    No, I think the real WTF is that somebody built a stamping machine that can hurl a hurl a huge piece of metal like a railgun would. What's wrong with taking a few seconds to move across a beam?
  • whicker (unregistered) in reply to iToad
    iToad:
    Bishoy:
    this is a real WTF, this so called consultant is crazy to do this mistake in a mission-critical system

    and another WTF is that there is no QA involved or simulation tests to make sure everything is ok before production or deployment.

    It sounds like this application ran on a PLC, instead of a computer. This means that the application was probably written in one of the IEC61131-1 programming languages, such as Structured Text or (gulp) Ladder Logic.

    On the one hand, a very large percentage of the types of applications which can wreck millions of dollars of equipment, or kill someone, run on PLCs.

    On the other hand, you would be appalled at how primitive some of the software design and development environments are for PLC programming.

    I could easily see how something like this could happen.

    Alternatively, some people would be amazed at the power of some IEC 61131-3 development environments.

    And to put it another way, would you trust your life and other people's lives with control software running on a Windows based PC?

    But I sometimes do see first-hand what you are hinting at (vintage wtf worthy ladder-logic rungs).

  • (cs) in reply to Rafael Larios
    Rafael Larios:
    I had a similar "problem" back i the day when a i was a junior programer: ... Thats rigth, I forgot to uncomment one single line.... and someone almost died.

    Now I'm against shipping software without extensive QA.

    What kind of a "big health organization" admits patients but refuses to treat them? Where do live, New York?

  • Anonymous User (unregistered)

    No, the real WTF is that the production system will turn on without the watchdog enabled. The systems I’ve worked that had a watchdog timer require that you disable the watchdog in software and set a hardware jumper. Otherwise either the startup tests will fail because the watchdog doesn't generate a reset signal, or hardware doesn't let the mechanical parts of the system start up because the watchdog hasn't started checking in.

    There isn’t much point in having a failsafe if you don’t bother to test it.

  • AndrewB (unregistered)

    I've only been a professional programmer for 5 months. No big snafus for me yet. Yay.

  • (cs) in reply to triso
    triso:
    el jaybird:
    Wow, that's like a scene straight out of an action movie.

    But the real WTF is the lack of a check for invalid slopes that would have prevented a lot of grief.

    No, I think the real WTF is that somebody built a stamping machine that can hurl a hurl a huge piece of metal like a railgun would. What's wrong with taking a few seconds to move across a beam?

    Ah, you have never worked in the manufacturing arena - for a high-cycle machine like injection molders every second does matter. If you can shave off even a few seconds that can add several thousand more products made each day.

    You can really say the same things about cars - why make any car go faster than 20mph - what is wrong with taking some extra time to get across town. The reason is that there is an advantage to getting somewhere faster.

  • (cs) in reply to RobertJohnK
    RobertJohnK:
    I've done the DELETE/UPDATE without a WHERE myself, although it was never an oversight but accidently hitting Enter before finishing typing.

    Lesson learned though, I now always force myself to first type the WHERE clause or use a SELECT first to change it into a DELETE only when I'm sure it's operating on the records I need.

    Yea, that's what I do...I like to scroll through the select and make sure that what I see is what I want...I'm paranoid though, and I'm always afraid I've made some glaring SQL error if I don't double check it.

  • iToad (unregistered) in reply to whicker
    whicker:
    iToad:
    Bishoy:
    this is a real WTF, this so called consultant is crazy to do this mistake in a mission-critical system

    and another WTF is that there is no QA involved or simulation tests to make sure everything is ok before production or deployment.

    It sounds like this application ran on a PLC, instead of a computer. This means that the application was probably written in one of the IEC61131-1 programming languages, such as Structured Text or (gulp) Ladder Logic.

    On the one hand, a very large percentage of the types of applications which can wreck millions of dollars of equipment, or kill someone, run on PLCs.

    On the other hand, you would be appalled at how primitive some of the software design and development environments are for PLC programming.

    I could easily see how something like this could happen.

    Alternatively, some people would be amazed at the power of some IEC 61131-3 development environments.

    And to put it another way, would you trust your life and other people's lives with control software running on a Windows based PC?

    But I sometimes do see first-hand what you are hinting at (vintage wtf worthy ladder-logic rungs).

    When the hardware really has to run, and the software really cannot be permitted to fail, then your first choice should probably be a PLC. Everything else is just a PC.

    However, a lot of PLC software is written by engineers, not programmers. PLC software design is chock full of traps for the unwary. The applications are massively concurrent. They are basically Dijkstra Guarded Command Language programs on steroids. I have actually had a great deal of success modeling them using UML diagrams, and checking designs with the SPIN model checker, instead of fixing the race conditions and deadlocks with timers.....

  • (cs) in reply to el jaybird
    el jaybird:
    GalacticCmdr:
    This ejector plate moved on 2 rails - which had large metal stops at the end. In a split second that ejector plate was moving so fast that it blew right through those stops, flew out the back end of the machine, past the open walkway behind the machine where it was eventually stopped when it slammed into some empty lockers (about 4-5 meters from the end of the rails).

    Not to be outdone some of the bearings packed into the rig were moving fast enough that they acted as shotgun pellets into the lockers as well. Thankfully everyone was a lunch so nobody got hurt.

    Wow, that's like a scene straight out of an action movie.

    But the real WTF is the lack of a check for invalid slopes that would have prevented a lot of grief.

    Well we had less than 1M of space for the actual logic code. Thus you cannot go around checking every variable because then you would have no room to actually do anything. Those variables we did check where those considered far more dangerous. The flying ejector plate was fixed by reinforcing the end stops.

  • (cs)

    On one of the larger projects I worked on, on of the smaller teams was in another city. They had a guy on their team that everyone down there loved and everyone up here hated.

    About midway through the product cycle, he checked some code in, using an API a buddy of mine wrote. This guy then asked my buddy about a problem he was having. My buddy wasted an entire day trying to figure out what the problem was. Based on the code that was checked in, an assert should have been firing. But it wasn't. My buddy finally figured out, that this dude had TURNED OFF the assert system for the entire product. Because his code was asserting, and he couldn't figure out why. And the rule was you couldn't check code in that was asserting.

    A few months later, another friend of mine was fuming. He just spent several weeks fixing up code. Turns out someone turned off the memory leak detector for the entire system. My friend spent two weeks fixing up all the memory leaks that had been introduced after the detector was turned off. Yeah you guessed it, the same dude turned off the leak detection, when he created a memory leak and couldn't figure out how to fix it.

    Thankfully these problems were caught before we shipped. But unfortunately both were caught by accident.

  • PseudoNoise (unregistered) in reply to Franz Kafka
    Franz Kafka:
    PseudoNoise:
    And BTW, it -is- a complete pain to try to debug with a watchdog timer running. You only get one breakpoint, and as soon as you resume the system resets.

    what about setting the watchdog to a prod-only build, or allowing it to be disabled on debug builds?

    Disabling in debug can be a bad idea if your testing is 98% on debug and 2% on release (admittedly, such a testing profile is a bigger WTF). And I guess I just wouldn't like side-effects like that as part of the difference between debug & non-debug, but I don't feel too strongly about it.

    Having a method to disable in debug is the way we actually do it.

  • PseudoNoise (unregistered) in reply to GalacticCmdr
    GalacticCmdr:
    Well we had less than 1M of space for the actual logic code.
    A whole meg! Whoa!

    (anybody else here in the under-256k-club?)

    =) Everything's relative. But needless to say I'll reinforce your point: our run-time error checking is probably 1/4th yours.

  • (cs) in reply to AndrewB
    AndrewB:
    I've only been a professional programmer for 5 months. No big snafus for me yet. Yay.

    That you know of. ;)

    Some say the first one is the worst. That first time you look in the code and you see exactly what you did wrong. That there's nobody else responsible. It's all you. Ah, that email to production, "Priority: Stop all work on model 123, " just before running down there to make sure they go the message. You'll never forget your first.

    And sometimes, late at night, even years later, you'll wake up wondering about how you could have done such a damn stupid thing.

    I'd say the second time is the worst. Anyone can make one mistake. Sure, two mistakes are normal too. Over the course of your career, you're sure to make a couple of doozies. At least that's what you'll tell yourself.

    But you start to wonder...

    "Is it...me? Am I the fuckup? Do I know what I'm doing, or am I just wearing the juice?"

    Then you realize that almost everybody is a fuckup, just in different ways.

    Everybody.

  • (cs) in reply to PseudoNoise
    PseudoNoise:
    GalacticCmdr:
    Well we had less than 1M of space for the actual logic code.
    A whole meg! Whoa!

    (anybody else here in the under-256k-club?)

    Hah, I'm in that club. Believe it or not, you're still getting new members. PIC 10F202

    750 BYTES of Flash 24 BYTES of RAM

    That's not k.

  • AndrewB (unregistered) in reply to themagni
    themagni:
    AndrewB:
    I've only been a professional programmer for 5 months. No big snafus for me yet. Yay.

    That you know of. ;)

    Some say the first one is the worst. That first time you look in the code and you see exactly what you did wrong. That there's nobody else responsible. It's all you. Ah, that email to production, "Priority: Stop all work on model 123, " just before running down there to make sure they go the message. You'll never forget your first.

    And sometimes, late at night, even years later, you'll wake up wondering about how you could have done such a damn stupid thing.

    I'd say the second time is the worst. Anyone can make one mistake. Sure, two mistakes are normal too. Over the course of your career, you're sure to make a couple of doozies. At least that's what you'll tell yourself.

    But you start to wonder...

    "Is it...me? Am I the fuckup? Do I know what I'm doing, or am I just wearing the juice?"

    Then you realize that almost everybody is a fuckup, just in different ways.

    Everybody.

    sniff that was touching.

  • Markku Uttula (unregistered)

    Hmm... considering your DELETE without a WHERE... Sometimes I just love Oracle:

    delete from very_important_data;
    commit;
    insert into very_important_data select * from very_important_data as of timestamp(sysdate-(1/1440));
    commit;
    

    ...and the table is just the way it was just one minute ago :)

  • gumby H-W (unregistered) in reply to bramster
    bramster:
    My customer asked "Who's going to pay for this?". I replied, it's my fault, I'll pay.
    This is a perfect example of why all programmers must be licensed.

    bramster owned up and took responsibility for his mistake. This is utterly unlike the standard practice in the industry..... and must be aggressively stamped out before it becomes a trend!

    State of the art is to blame the victim, and it's worked well for decades. Why change now?

  • Rafael Larios (unregistered) in reply to triso
    triso:
    What kind of a "big health organization" admits patients but refuses to treat them? Where do live, New York?

    It's the law in my country... you have to pay a percentage of your salary to receive medical attention, if you are unemployed.. you still have medical attention... but it is not the kind of medical attention you want.

    Sorry for my horrible grammar.

  • Erik (unregistered)

    This is exactly the reason why we have professional Software Engineers in Alberta. You get your iron ring exactly the same way a civil engineer or a mechanical engineer or whatever would, and you are held to the same code of moral responsibilities that, if one violates, causes you to lose your license to practice engineering.

    This guy would be in serious trouble if he was a Software Engineer, and all the people who let this software get into a production situation where lives are at risk without sufficient testing would also be in some big crap.

  • Pecos Bill (unregistered) in reply to tamosius
    tamosius:
    shouldn't watchdog be sending "ok, ok, ok , ok... Oy! not ok! alert! alert! panic! panic!", so when ok, ok... is not received, receiving end would go into "alert! panic!" mode by default? At least that's how I would do... but what do I know? I am NOT an EXTREMELY well paid consultant ;-)

    Not to mention a TWO-WAY communication? If nobodyListening then shutdown; -- alternatively an alarm with countdown to shutdown.

  • Pecos Bill (unregistered) in reply to bramster
    bramster:

    Your English is fine. But, the real WTF is the USA date format.

    And the European one (DD-MM-YY). The only logical is ISO: YYYY-MM-DD.

  • Matt (unregistered) in reply to Beo-wolfe

    How does an error in the tenths digit of longitude correspond to about 800m? 170.5 degress is different from 170.0 degrees by about 500km. Did you mean tenths digit of the minutes, or something?

  • Matt (unregistered) in reply to Matt
    Matt:
    How does an error in the tenths digit of longitude correspond to about 800m? 170.5 degress is different from 170.0 degrees by about 500km. Did you mean tenths digit of the minutes, or something?
    Typo - about 50km. And this is in response to the tiger guy.
  • Matt (unregistered) in reply to bramster
    bramster:
    FreemanAMG:
    The diference, appart of languaje

    Your English is fine.

    WTF?

  • The Photon (unregistered) in reply to tamosius

    The watchdog is the thing that has to listen for the "ok ok ok", and then kick something when it stops coming.

  • (cs) in reply to Mefanwe
    Mefanwe:
    Franz Kafka:
    RobertJohnK:
    I've done the DELETE/UPDATE without a WHERE myself, although it was never an oversight but accidently hitting Enter before finishing typing.

    Lesson learned though, I now always force myself to first type the WHERE clause or use a SELECT first to change it into a DELETE only when I'm sure it's operating on the records I need.

    funny, I always do my deletes like this:

    delete from table where stuff = bad;

    1 row updated

    commit;

    I use MySQL. What's this "commit" thing I hear people talking about?

    (grinning, ducking, and running)

    I have no idea.

  • Mark (unregistered)

    This pales in comparison to some of your stories.... but:

    I accidentally deleted most of my department's website (a badly typed rm, and ctl-c'ed it after I realized it was taking entirely too long), shortly after starting a web programming job at my university.

    No big deal, just restore from a backup right? (the important, and frequently changing data was safely unharmed in a database) I went to the network admin and asked where the tape drive is. "What tape drive?" The backups? "What backups?"

    The sweat started to pour... but when I calmed down I had an epiphany. The poor man's backup: GOOGLE CACHE to the rescue :)

    Needless to say, we now have a backup system and policy, a dev system mirroring the production server, and source control.

  • wtf (unregistered)

    My worst failure was renaming my popular site to some lame gibberish, and covering with an even lamer story about not wanting to offend my grandma. Seriously. I couldn't just make something up when I talked to my grandma, I had to rename the website.

Leave a comment on “//TODO: Uncomment Later”

Log In or post as a guest

Replying to comment #:

« Return to Article