• rc4 (disco)

    Frist! :tada:

  • JBert (disco) in reply to rc4

    Second <crash>

  • Tsaukpaetra (disco)

    nods head sagely. Yeah, that would do it.

  • LB_ (disco)

    As usual, TR :wtf: is XML instead of JSON.

    But seriously...who moves a failing file to a backup location that can also be loaded from and deleted?

  • GFK (disco)

    Unclosed XML tag? In an application-generated XML? Was someone trying to actually format XML themselves instead of using a 3rd party library? Or was that 3rd party library so broken that it generated broken XML? Either way...

  • David_Taylor (disco)

    So, um, days before the update was deployed they decided to rewrite their save/load code.

    And they committed the new code to the live tree without bothering to test that it could read the save file it had written?

  • balazs (disco) in reply to GFK
    LB_:
    As usual, TR :wtf: is XML instead of JSON.

    But seriously...who moves a failing file to a backup location that can also be loaded from and deleted?

    There must be a second WTF in this story...

    GFK:
    Unclosed XML tag? In an application-generated XML? Was someone trying to actually format XML themselves instead of using a 3rd party library? Or was that 3rd party library *so* broken that it generated broken XML? Either way...

    ... because the first one is a so common WTF that it should only be referenced from the Great Book of WTFs.

  • dkf (disco) in reply to GFK
    GFK:
    Was someone trying to actually format XML themselves instead of using a 3rd party library?

    It really wouldn't be the first time that's happened. That sort of thing happens too bloody often on the web, and is the only sane reason for using YAML (it has no closing tags/sequence to fuck up).

  • dkf (disco) in reply to balazs
    balazs:
    There must be a second WTF in this story

    Yes. Doing it immediately before a release without testing.

  • balazs (disco) in reply to dkf
    dkf:
    balazs:
    There must be a second WTF in this story

    Yes. Doing it immediately before a release without testing.

    Then we have 3. Btw, I had installed a patch last friday 2 minutes before we started our sprint demo. Everything went fine:)

  • foxyshadis (disco) in reply to David_Taylor
    David_Taylor:
    So, um, days before the update was deployed they decided to rewrite their save/load code.
    That's the least insane management direct I've seen during a death march. If anything, the change requests come faster and furiouser the closer you get to release.
    And they committed the new code to the live tree without bothering to test that it could read the save file it had written?
    Well, it always worked every single time he restored the original testing environment state. If that isn't quality, what is?

    I hope he put "do everything a few more times just in case" to his test suites now.

  • Dlareg (disco)

    This reminds me of the days (1997) when I was a customer service representative for a dutch mobile telecomunications company. (Even I had to pay for my degree). This was at one of the first mass-marketed mobile phone companies in the Netherlands. And in the first few months we got an insane amount of people (mostly elderly) who could only connect at the second try. The powers that be assigned me the task to find the source of these problems. After having sat with network engingeers and other technicians we could not figure where in the network it all went strange. All these phones just had one try to connect and almost (99%) all of those succeded. Then I got a call from an elderly lady (70-ish) who happend to live reasonable nearby, So I got on my bike (did I mention being Dutch) and cycled to her home. I asked her if I could watch her make the call to her daughter. She agreed and then all became clear.

    First she picked up the phone by pressing the green button. Then she dialed the number. Placed the phone to her ear: "See no connection.". Then she picked up the phone again by pressing the green button, dialed the number. et presto she had her daughter on the line.

    After arranging some flowers for the nice lady. I informed all of my co-workers about my findings and we could help these people into the mobile age.

  • JBert (disco) in reply to Dlareg
    Dlareg:
    **costumer** service representative

    I guess you were ironing out all the wrinkles? ;-)


    Filed under: Interesting tyops

    :abc: :badger: - abarker

  • Ben (disco)
    Except there was no XML file to be moved to backup, so the app crashed again.

    I thought the app didn't crash the third time...

  • Dlareg (disco) in reply to JBert

    Always the dysclectic, dicyclic.. I mean words are hard ;)

  • RFoxmich (disco) in reply to balazs
    balazs:
    Then we have 3. Btw, I had installed a patch last friday 2 minutes before we started our sprint demo. Everything went fine:)

    -- And that was the RWTF.

  • TheWayne (disco) in reply to RFoxmich

    Max is the RWTF!

    I think every XML loader crashes if a closing tag is missing. But Max said, he ran the game a million times yesterday and everything was fine. Did he start the game always in the "first run" environment?

  • dkf (disco) in reply to TheWayne
    TheWayne:
    I think every XML loader crashes if a closing tag is missing.

    A pure SAX one might not, which is important for use cases like XMPP.

    Application settings shouldn't be an XMPP stream.

  • mott555 (disco) in reply to TheWayne
    TheWayne:
    Max is the RWTF!

    I think every XML loader crashes if a closing tag is missing.But Max said, he ran the game a million times yesterday and everything was fine.Did he start the game always in the "first run" environment?

    He might have been running it directly through the IDE, or in the IDE's output path, without using save files.

  • Mason_Wheeler (disco)

    Some people, when presented with a problem, think "I know, I'll use XML."

    <Problem:Worsening>
      <Problem:TimeDescription>Now</Problem:TimeDescription>
      <Problem:Posessive>they have</Problem:Posessive>  
      <Problem:Quantity>many, many</Problem:Quantity>
      <Problem:WorseningDescription>more problems</Problem:WorseningDescription>
    </Problem:Worsening>
    
  • Medinoc (disco) in reply to Dlareg

    So the phone actually wasn't compatible with the "old" use-case, and required the number to be typed before "picking up"? Sounds like TRWTF to me.

    Then again, in seems to be the case on today's Android smartphones as well; tapping the green "pick up" button with no number entered just pre-fills with the last one.

  • CoyneTheDup (disco)

    Those multi-cycle bugs can get past testing.

    I once built a new system for billing company store purchases to employee paychecks. The interesting feature was that some payments had to be done in installments, so I had to run through the input charges and create the installments from the inputs.

    I ran that program over and over during testing, but what I didn't realize is I never covered the operation over multiple paychecks; I tested over and over the generation of payments from one set of inputs...the reset and run it again. Worked flawlessly.

    In production, for the first pay period, it ran fine...just like a clock. The second period was another story entirely: see, I had forgotten to set the status flag on the inputs to indicate they were processed (oops). So the program distributed the second period purchases and re-distributed the first period purchases.

    Ever double-billed 13,000 people? On their paychecks? Where, for a few employees, the double-stacking resulted in no paycheck? Oh, yes, there was heat...

    Moral: In a system where one run can influence the more than one period, testing includes running at least two periods in a row.

    (After note: we have a couple of employees who buy expensive items at the company store...so expensive their whole paycheck goes into installment payments. Apparently, they live off their partner's paycheck in the meantime.)

  • rvleshrac (disco) in reply to Medinoc

    I'm so happy I wasn't the only person to see that TRWTF is the UX for cellphones not honouring the pattern established over a century of telephone use.

  • rvleshrac (disco) in reply to mott555

    TRWTF: Software developers. :kissing_heart:

  • Dlareg (disco) in reply to Medinoc
    Comment held for moderation.
  • LB_ (disco) in reply to rvleshrac

    The "pattern established over a century of telephone use" was stupid. How was the phone supposed to know when you were done entering numbers unless you told it? Just hard limiting it is why older phones can't dial to newer, longer numbers that have an extra digit.

  • Developer_Dude (disco)

    It seems to me that a little bit of judicious logging of errors/actions, and a little bit of wise testing would have found the issue before it became a panicky disaster.

  • Quite (disco)

    Dammit Developer_Dude beat me to it: I was going to say: TRWTF was implementing an XML save and restore function which doesn't log its failure to function properly but just swallows its own barf.

  • Medinoc (disco) in reply to LB_

    The phone doesn't need to know that, the central server thingy does. And it knows because like UTF-8, longer phone numbers usually have a different prefix.

    The phone just transmits digits as you type them, and for a while, IIRC, cell phones also did it if you didn't pre-type the number (unless I'm mistaken and they always did "bis" instead; or maybe different brands did different things).

  • rc4 (disco) in reply to JBert

    :checkered_flag:

  • rvleshrac (disco) in reply to LB_

    There's no hard limit as to the size of the phone number. The exchange will take a theoretically infinite number of digits from the dialer. Only poorly-designed handsets store and forward.

    Dialed "011"? That's an international number, wait for X digits. Dialed "1"? That's a NANP long-distance number, wait for Y digits. Dialed any other number? That's a 'local', wait for Z digits.

    For extra-digits, the exchange is easily updated. Dialed area code "234"? Wait for N digits. Dialed area code "567"? Wait for O digits.

  • geoff (disco) in reply to TheWayne

    The story does say one of the other devs is out sick. We don't know if Max had responsibility at all for code related to saving and loading, or if he was responsible for any sort of QA testing. All we know is Max was able to debug the problem. It might have been perfectly okay and reasonable for Max's integration testing not concern itself with the startup conditions.

  • LB_ (disco) in reply to rvleshrac

    That sounds like it could easily get out of date very quickly. Why not just wait for an "I'm done, that's the number" signal?

  • rvleshrac (disco) in reply to LB_

    Because no such tone exists, and every single handset in the world would have to be updated to emit it.

    It also, logically, can't be out of date, because the people managing the exchange system are the only ones who can add digits to phone numbers.

  • Gurth (disco) in reply to LB_
    LB_:
    Why not just wait for an "I'm done, that's the number" signal?
    In addition to being easier to upgrade for the phone company, it’s also more user-friendly: all the user needs to do is pick up the receiver and enter the number, then wait. No other user actions required means less that needs to be explained before the device can be used and fewer things the users can do wrong — which they would then most likely blame on the phone and/or the phone company instead of their own ignorance/incompetence/stubbornness (delete as appropriate).
  • LB_ (disco) in reply to rvleshrac

    Remind me to never work in the telecommunications industry.

  • abarker (disco) in reply to JBert

    You Nazi.<!-- b3fe22f0-a01d-11e4-bcd8-0800200c9a66 -->

    [image]
  • redwizard (disco) in reply to Dlareg
    Dlareg:
    So I got on my bike (did I mention being Dutch) and cycled to her home.

    +1

    That's dedication to the job! :smiley:

  • anotherusername (disco) in reply to Medinoc
    Medinoc:
    The phone just transmits digits as you type them, and for a while, IIRC, cell phones also did it if you didn't pre-type the number
    rvleshrac:
    Only poorly-designed handsets store and forward.

    Not for cellphones; maybe some, when they were still operating on analog channels, but they're not even using DTMF for direct dialing anymore. It's all digital.

    <fewer computers waiting while a dumb, slow meatsack enters digits at a snail's pace is a good thing, imho.>

  • Tsaukpaetra (disco) in reply to redwizard
    redwizard:
    dedication to the job!
    Or perhaps the opposite. If I did that, that's grounds for (almost) immediate termination:
    • Absent without permission / Unexcused absence
    • Physical unauthorized access to customer premises without consent (could be argued)
    • Unacceptable handle time
    • Abandonment of assignment during working hours

    Filed under: I'll just say it was a family emergency and everything will be OK, right?

  • rvleshrac (disco) in reply to LB_

    Oh man, wait until you hear about the { "banking", "finance", "industrial control", "point of sale", "payment processing", "automotive", "energy", "networking", "television", "government", "defence" } industry.

  • YellowOnline (disco)

    Of course you moved to XML. How can you be an enterprise and not use XML?

    [spoiler]That being said: I actually like XML.[/spoiler]

  • dkf (disco) in reply to rvleshrac
    rvleshrac:
    Dialed "011"? That's an international number, wait for X digits.

    You seem to be assuming that X is a constant. You have so much to learn… :smirk:

  • LB_ (disco) in reply to rvleshrac
    rvleshrac:
    defence

    There's a whole industry revolving around removing fences?

  • Dlareg (disco) in reply to LB_

    Oh boy you don't know half of it. THE main problem is that you have groups of people. Let us call them countries who want their fences to stay where they are! And that is when.... :sunglasses:... You bring out the big guns.

  • MRAholeDBA (disco)

    Wait, so they fixed the code live and shipped straight to prod to meet their deadline, without going through a QA cycle even? O.o

  • Tsaukpaetra (disco) in reply to MRAholeDBA
    MRAholeDBA:
    without going through a QA cycle even?
    [image]
  • herby (disco)

    Telephone dialing: 1 then 10 digits (NANP area) (11 digits total) 0 (non 1/0) 10 digits operator assisted call 01 (non 1/0) International call, timeout at end (or wait for #) operator assisted 011 (non 1/0) international call, timeout at end (or wait for #) no operator assistance (2-9) (non 1 1) seven digits total, local area code. (2-9) 11 Special services (411, 911, 611, etc.) three digits total

    So, for everything in North America, it is deterministic. You only need a timeout for international calls which have all sorts of varying number lengths (they vary by country, and even in countries)

    Some land line phones work in similar to cell phones (I have one). You enter the digits, and they press the green button, it dials and you are home free. It is a wireless phone.

  • Tsaukpaetra (disco) in reply to herby
    herby:
    Some land line phones work in similar to cell phones (I have one).
    I have one too, but it still maintains backwards compatibility for those that want to press "dial" first and then a number....

    Filed under: Just sayin'

  • herby (disco) in reply to Tsaukpaetra

    I think this is part of the DECT specification, but I don't know.

Leave a comment on “Run Crash Crash Run”

Log In or post as a guest

Replying to comment #:

« Return to Article