• wcwedin (unregistered) in reply to Paul Neumann
    Paul Neumann:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?

    And Knuth said unto the people, "Premature optimization is the root of all evil." And the people did not listen, and loops were unrolled and code was obfuscated and the number of threads was too many.

  • BillR (unregistered)

    Put out a new release on a Friday, and you get what you deserve.

  • Tom (unregistered)

    "Tneth" is the new "frist".

  • (cs)

    This is the configuration management equivalent of "it worked on my machine."

  • Chuck (unregistered) in reply to csrster

    +1 for featured comment :)

  • Chuck (unregistered) in reply to csrster
    csrster:
    The real WTF is putting anything into production on a Friday.

    Let's try this again >:\

    That would be a great featured comment.

  • PseudoBovine (unregistered) in reply to Mark
    Mark:
    Luke: How do I do this?

    Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out.

    Luke: That sounds too much like thinking. Just give me the answer.

    Matthew: Nobody gave me the answer.

    I'm sure you think that's sage wisdom, but how about we flip it around a bit?:

    Matthew: What is this application that you want me to program supposed to do?

    Matthew's Boss: 1. Understand the environment. 2. Understand the problem. 3. Figure it out.

    Matthew: How can I make sure the program functions correctly if I don't know the requirements?

    Matthew's Boss: Nobody told me the requirements.

    Yeah, not so fun when it's on the other foot.

    Similarly, if code can arrive at the right value every time, you wouldn't need a config.

    Alternatively, it could be that making the program determine the correct setting automatically was "too much like thinking", so the programmer got lazy and skipped making an auto-determination function.

    This crap:

    Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out.

    Is basically equivalent to this:

    Matthew: I don't really understand the tool myself, and only vaguely understand the domain of problems it covers. If I actually knew anything constructive, I could come up with some guidelines to give you, or heck, just code the guidelines into the application itself. But I'm not going to tell you that most of the time I'm just guessing what the setting should be and crossing my fingers that it's going to work. Instead, I'll cover my insecurities by pretending that I possess intuitive and mystic knowledge that transcends words, and pretend you're the deficient one for admitting this setting is capricious and arbitrary.

    Oh, and if you can put the process by which you decide the setting into words "Nobody gave me the answer" is just crap. If you can't be bothered to pass on hard-won knowledge to make the lives of the people around you easier, than just die - which you probably will do shortly when you starve to death as you forgo any future use of StackOverflow, the internet in general, instruction manuals and other books, your university and grade school education, directions from random passersby to the soup kitchen, etc.

  • Chuck (unregistered) in reply to wcwedin

    No no no. Feature this guy! (comment 403299)

  • gnasher729 (unregistered) in reply to faoileag
    faoileag:
    Correct me if I'm wrong, but even a blocked thread will be switched to, if only to see that the resource is still not available.)

    You are wrong, as long as you use a decent operating system. Blocked threads use up no resources except for their address space, until they are not blocked anymore.

  • gnasher729 (unregistered) in reply to dkf
    dkf:
    [TRWTF is using threads to handle IO-bound problems, but many programmers have been making that one for a long time.

    It can be quite counter productive when you use spinning hard drives to hold your data. Especially if you use one spinning hard drive to hold the data. Multiple threads usually need data in different areas of the drive, so the drive head will be going forth and back all the time. If the tasks are really I/O bound, it may be substantially faster to have one thread do task 1, then task 2, than having two threads trying to perform both tasks simultaneously.

  • (cs) in reply to Steve
    Steve:
    If you promote friday, and the reality is production issues don't show up until monday morning because no matter how much you've tested there's always that guy who does something you really didn't expect. Well, you've lost the weekend as an opportunity to fix things without impacting users.

    So instead you're into monday, and you may lose tuesday as well... Twice I observed deployments which took the Oracle database offline for a day... something about a cascading trigger storm consuming all resources. So it took two days to roll it all back.

    Now imagine you work for a company that has to be available 24x7... and think about all the work that needs to go into making everything resilient.

    Now recall that the one effort that absolutely, positively could not have its go-live date changed in any way, Y2K, happened to fall on a Saturday.

  • not the consultant (unregistered)

    I knew of a guy who wanted to replace a mainframe library system (target 100 concurrent users over 5 million records) with a single 486 running OS/2. Test case was 2 people searching 20 records: "Results came back in less than 2 seconds" made me laugh and was a friction point with my future boss.

  • (cs)

    10,000 customers. 10,000 desktops. 5,000,000 threads. 0ne 1 GHZ database server. Priceless.

  • urza9814 (unregistered) in reply to Zemm
    Zemm:
    csrster:
    The real WTF is putting anything into production on a Friday.

    Indeed, it is policy at my place to never deploy anything large on a Friday. We even avoid Thursday if we can help it.

    Depends what the business is. I'm doing data management software for a national retail chain, and all our deployments, no matter how large or small, are done over the weekend. That's the only time when traffic is low enough that we can afford to bring systems down. I mean it's a robust system with multiple layers of redundancy perfectly capable of handling downtime, but not everything can get handled in offline mode, and you wouldn't want to rely on that during peak hours anyway. Plus you DEFINITELY don't want to be trying to push software updates to the stores and bringing them down in the middle of a weekday.

    Of course, we also send everything through multiple layers of testing, including heavy stress testing with larger than expected data sets, and develop detailed rollback plans so if there is a serious issue Monday morning we can drop back to the previous release ASAP. I'm not aware of those ever being used though. The test environment used here sounds less comprehensive than what we use as developers before our code even officially enters testing. That's TRWTF.

  • (cs) in reply to csrster
    csrster:
    The real WTF is putting anything into production on a Friday.

    And the better option would be...? You'd rather deploy on a Monday and then have to explain why all production stopped for two days while you isolated the bugs?

    IT work is a thankless job. You do your major overhauls at night or on weekends to keep the rest of the world turning during core business hours.

  • Jazz (unregistered) in reply to Paul Neumann
    Paul Neumann:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?

    No, no, in the bible the story goes like this:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Paul: Good point, Luke. I think I'll write a bunch of letters to everyone telling them what to think and what answers to come to, so that they don't have to apply critical thought to the social ills of their time. But how will I get everyone, everywhere, to read my letters for the next few thousand years? Peter: I think I can help you with that last part...

  • Michael (no, not that one, the other one...) (unregistered) in reply to Jazz
    Jazz:
    Paul Neumann:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?

    No, no, in the bible the story goes like this:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Paul: Good point, Luke. I think I'll write a bunch of letters to everyone telling them what to think and what answers to come to, so that they don't have to apply critical thought to the social ills of their time. But how will I get everyone, everywhere, to read my letters for the next few thousand years? Peter: I think I can help you with that last part...

    ...proving once again that you can count on highly-logical programmers to poke fun at and openly mock religion.

  • Mike (unregistered) in reply to csrster

    The precise reason that it sucks for us is the exact reason why the org wants it: if it breaks you have all weekend to fix it. Try selling "we'll upgrade on Tuesday. Oh and if it goes to hell it might take a couple days to get it working properly". The first thing out of the managers mouth will be "do it on a Friday/weekend". Heck they might even recommend the next long weekend as the ideal time to do changes.

  • Mike (unregistered) in reply to dkf

    Exactly. Thinks change. Say the DB server gets more ram so the available cache for the 200M rows grows. Now you can get quicker responses back so don't need as many threads waiting in the pool. Or the opposite you start doing more complex stuff which needs more CPU time, the data grows etc etc. Not everything that needs to be tunable will live on only one server.

  • Anonymous Paranoiac (unregistered) in reply to Paul Neumann
    Paul Neumann:
    Anonymous Paranoiac:
    My guess is they were all equally "valid".

    This also reminds me of the php/mysql listserver application we use at work. It's a disturbingly popular open source application that was written buy a guy who seems to think that about two hundred emails is a 'large list' and the code base is absolutely stuffed with WTFs. Things like doing ereg_replaces (yes, ereg*, not preg*) on constant values when str_replace or str_ireplace are more than sufficient and doing them on values that will never be needed. Also things like if and while blocks that run several hundred lines and dead code wrapped in if (0) tests or testing to see if a value is numeric like this:

    if ($val == sprintf('%d', $val))
    Oh, and injection attacks galore. It would crash repeatedly on email lists larger than 10-20k. A co-worker and I have at least re-factored if not almost completely re-written every major component of the application yielding orders-of-magnitude performance increases (and security).
    And where are your commits to the original project of these improvements? If you care to take from F/OSS and care not to return on the time investment others have extended for you, FOAD.

    Seriously, if you can't be bothered to upstream improvements just fucking die. Write your own shit, from scratch, in ASM. If your project or employer won't allow for upstream patching, go with a commercial solution. You don't get to complain that you refactored if not almost completely re-written something you got for FREE.

    First, you're being presumptuous in assuming I have not made contributions back to the project. I submitted many fixes which the author/maintainer mostly ignored (or completely misunderstood). I also was a frequent poster on the support forums for a few years, helping people solve problems and making suggestions (and also posting patches/mods/plugins).

    Second, you're being illogical. Even if I completely re-wrote the entire product, submitted the code and it was accepted as the new version, that wouldn't alter the fact that the original code was crap.

    Third, you're wrong. I didn't choose the software I was just told to make it work, so I have every right to complain about it. Even if I didn't, I still have every right to complain about it, just like you have every right to troll.

  • Pat (unregistered) in reply to Michael (no, not that one, the other one...)
    Michael (no:
    you can count on highly-logical programmers to poke fun at and openly mock religion.
    It needs to be mocked. It is a profoundly stupid idea that just won't die, despite there being not the faintest hint of proof whatsoever for its ridiculous claims. Belief is a contagious mental illness.
  • Harrow (unregistered) in reply to Anonymous Paranoiac
    Anonymous Paranoiac:
    I have to admit I'm curious - how exactly did they 'stress' test with 200 records?
    They were extremely clingy and whiny records.

    -Harrow.

  • (cs) in reply to Valued Service
    Valued Service:
    Nagesh:
    OzPeter:
    Stupid Pratik .. you start partying once the customer is happy .. not when you think that you are done.

    Agree completely. one of our in-house memo state this, do not drink and party immediately after release.

    To which I replied. Pay me overtime.

    Business should learn to stop butting into my personal life unless they at least acknowledge that they are doing so.

    If the owner thinks that it's ok because he's 24/7, then maybe he should consider handing out part-ownership.

    You can't expect to take up my entire life without offering anything more than a salary. At least a 24/7 daycare!!!

    They will give you compensatory off, if you stay in your senses. 3 releases = 1 compensatory off. Also not to forget you're called only if there is real issue. In that case, you don't have 3 releases applicable anymore. You get immeidate off if you get called.

  • (cs) in reply to Nagesh
    Nagesh:
    They will give you compensatory off, if you stay in your senses. 3 releases = 1 compensatory off. Also not to forget you're called only if there is real issue. In that case, you don't have 3 releases applicable anymore. You get immeidate off if you get called.
    MsgBox("An error has occurred. Please contact technical support.");
    

    "Uhhh, yeah, a service just needed to be restarted. So, about that day off..."

  • The Captain (unregistered) in reply to wcwedin
    wcwedin:
    Paul Neumann:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?

    And Knuth said unto the people, "Premature optimization is the root of all evil." And the people did not listen, and loops were unrolled and code was obfuscated and the number of threads was too many.

    Give a man a thread and he will run his work. Give a man a thread factory and he will clog the server.

  • (cs) in reply to Michael (no, not that one, the other one...)
    Michael (no:
    Jazz:
    Paul Neumann:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?

    No, no, in the bible the story goes like this:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Paul: Good point, Luke. I think I'll write a bunch of letters to everyone telling them what to think and what answers to come to, so that they don't have to apply critical thought to the social ills of their time. But how will I get everyone, everywhere, to read my letters for the next few thousand years? Peter: I think I can help you with that last part...

    ...proving once again that you can count on highly-logical programmers to poke fun at and openly mock religion.

    Sure thing. Do you have one that needs mocking? Given a long enough run-up it can be comprehensively torn to pieces as it fucking deserves.

  • (cs)

    You have a problem. You use threading, and now you have 500 problems.

  • IN-HOUSE-CHAMP (unregistered) in reply to chubertdev
    chubertdev:
    You have a problem. You use threading, and now you have 500 problems.

    Stop quoting guys who thought they were smarter.

    There's nothing wrong with regex. Nothing.

  • Tharg (unregistered)

    The real WTF's (yes, I do mean plural) are:-

    1 The employer assuming that it's ok to trample on employee's private time. If you ain't paying me, I'm not there. This abuse is rife in the IT industry, and is usually glossed over with the term "professionalism" or some such. I'll occasionally go the extra mile (as we all do) but have to dig heels in when it becomes systematic.

    2 Management ok'ing testing on a non-representative data set. If this is so important, then it justifies a duplicate of production, on which to test - no excuses. If it isn't that important, then weekend working is not required.

    3 If a brazilian bank is fined for down time, then doesn't that make the business case for good thorough testing?

    I'm just so bored and tired of hearing this over and over again.

  • IN-HOUSE-CHAMP (unregistered) in reply to chubertdev
    chubertdev:
    Nagesh:
    They will give you compensatory off, if you stay in your senses. 3 releases = 1 compensatory off. Also not to forget you're called only if there is real issue. In that case, you don't have 3 releases applicable anymore. You get immeidate off if you get called.
    MsgBox("An error has occurred. Please contact technical support.");
    

    "Uhhh, yeah, a service just needed to be restarted. So, about that day off..."

    There's more than one way in which this can be exploited.

  • (cs) in reply to IN-HOUSE-CHAMP
    IN-HOUSE-CHAMP:

    Stop quoting guys who thought they were smarter.

    There's nothing wrong with regex. Nothing.

    The problem with regex is the same as any computer problem: users.

  • Paul Neumann (unregistered) in reply to Anonymous Paranoiac
    Anonymous Paranoiac:
    First, you're being presumptuous in assuming I have not made contributions back to the project. I submitted many fixes which the author/maintainer mostly ignored (or completely misunderstood). I also was a frequent poster on the support forums for a few years, helping people solve problems and making suggestions (and also posting patches/mods/plugins).

    Second, you're being illogical. Even if I completely re-wrote the entire product, submitted the code and it was accepted as the new version, that wouldn't alter the fact that the original code was crap.

    Third, you're wrong. I didn't choose the software I was just told to make it work, so I have every right to complain about it. Even if I didn't, I still have every right to complain about it, just like you have every right to troll.

    First, you didn't. It may seem like "The Right Thing" to say you "tried" to patch, but lying is never right. You didn't submit anything to the mailing lists. You didn't apply for commit rights. You sent maybe one or two cryptic emails with a few lines of patch and NO explanation.

    Second, I'm not being illogical. OSS is only as good as it's producers. If you can produce better code, please contribute it. If you are incapable of having a mature conversation, pay someone for the displeasure of having to interact with your princess ass.

    Third, your employer may have chosen the software however, you chose your employer. You were paid for your time according to the agreements you entered into at the beginning of your employment. You have no right to complain.

  • (cs) in reply to Mark
    Mark:
    Luke: How do I do this?

    Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out.

    Luke: That sounds too much like thinking. Just give me the answer.

    Matthew: Nobody gave me the answer.

    Shouldn't that be: Luke: How do I do this?

    Matthew: Use the source, Luke!

  • Moses (unregistered) in reply to Paul Neumann
    Paul:
    Mark:
    ... This is closely related to:

    Luke: How do I do this? Matthew: 1. Understand the tool. 2. Understand the problem. 3. Figure it out. Luke: That sounds too much like thinking. Just give me the answer. Matthew: Nobody gave me the answer.

    Jesus Christ! Now we are quoting the bible here?
    No, we're writing new strings for old characters.

  • Curtis P (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    faoileag:
    Back in the good ole days (tm) of 8086 machine coding lab in college we were forced to count the cyles per instruction cycles to determine the time a loop would take to complete, and basically something like this would apply here as well:
    8086 or 8088?

    It makes a difference. Apart from oddities like MUL and DIV, most instructions on an 8088 take longer to fetch from memory than they take to execute - a typical Reg->Reg arithmetic instruction will take two bytes = 2 memory cycles = 8 clocks to fetch, and three or four clocks to execute. While it is executing, the next instruction is being fetched, so an 8088's memory subsystem is active almost 100% of the time, except when some lunatic executes MUL or DIV, which are monstrously slow, and the execution subsystem normally doesn't manage more than 50% utilisation.

    The 8086 can load two bytes at a time, if they are at an even address and the next higher odd address, so the balance is less uneven than on an 8088, but it is easy to get an odd program counter, at which point you are back in the 8088 situation...

    Counting the strict execution clock cycles is a waste of time on these chips, as it is on anything after the 486, although for different reasons.

    That's why I do all my coding on a 6502.

  • Lester Moore (unregistered)

    Didn't we just talk about this last week? 4 shots from a 44 weren't enough? Or they were too many? Now I'm a zombie, so let's try again.

    Emacs is Vim. Firefox is Internet Explorer. C# is Java.

  • Darth Paul (unregistered) in reply to Paul Neumann
    Paul Neumann:
    Seriously, if you can't be bothered to upstream improvements just fucking die. Write your own shit, from scratch, in ASM. If your project or employer won't allow for upstream patching, go with a commercial solution. You don't get to complain that you refactored if not almost completely re-written something you got for FREE.

    While seeing the point being made, I think we also need to get away from the crap reasoning that's out there that giving away something for free absolves you from responsibility for doing a good job and not wasting everyone's time and money (unless you admit up front that your code is poor quality). If it eats away your resources to make it work, it is not free.

  • (cs) in reply to IN-HOUSE-CHAMP
    IN-HOUSE-CHAMP:
    chubertdev:
    You have a problem. You use threading, and now you have 500 problems.

    Stop quoting guys who thought they were smarter.

    There's nothing wrong with regex. Nothing.

    I used to have nothing, then I used a regex so now I have 2 nothings.

  • J (unregistered) in reply to Pat
    Pat:
    Michael (no:
    you can count on highly-logical programmers to poke fun at and openly mock religion.
    It needs to be mocked. It is a profoundly stupid idea that just won't die, despite there being not the faintest hint of proof whatsoever for its ridiculous claims. Belief is a contagious mental illness.
    Which is why athiests (the ones that say 'there is no X') are the worst. They usually don't have enoug intelligence to recognize that they only believe what they say, they don't know. Their side has just as much proof as the other. I call them the religion of No.
  • Pat (unregistered) in reply to J
    J:
    Pat:
    Michael (no:
    you can count on highly-logical programmers to poke fun at and openly mock religion.
    It needs to be mocked. It is a profoundly stupid idea that just won't die, despite there being not the faintest hint of proof whatsoever for its ridiculous claims. Belief is a contagious mental illness.
    Which is why athiests (the ones that say 'there is no X') are the worst. They usually don't have enoug intelligence to recognize that they only believe what they say, they don't know. Their side has just as much proof as the other. I call them the religion of No.
    I quite agree. You can never prove "X does not exist". You can only say there is not the faintest hint of proof that X does exist. Which is pretty much what I said.
  • Anonymous Paranoiac (unregistered) in reply to Paul Neumann
    Paul Neumann:
    First, you didn't. It may seem like "The Right Thing" to say you "tried" to patch, but lying is never right. You didn't submit anything to the mailing lists. You didn't apply for commit rights. You sent maybe one or two cryptic emails with a few lines of patch and NO explanation.

    Second, I'm not being illogical. OSS is only as good as it's producers. If you can produce better code, please contribute it. If you are incapable of having a mature conversation, pay someone for the displeasure of having to interact with your princess ass.

    Third, your employer may have chosen the software however, you chose your employer. You were paid for your time according to the agreements you entered into at the beginning of your employment. You have no right to complain.

    Yes, thanks to your impeccable logic and flawless array of supporting evidence, I bow to your arguments. I am clearly an evil-doing doer-of-evilness. I can only hope to one day grow up to be as thoughtful and reasonable as you. You are a prince of a man. I heart ya.

  • (cs) in reply to J
    J:
    Which is why athiests (the ones that say 'there is no X') are the worst. They usually don't have enoug intelligence to recognize that they only believe what they say, they don't know. Their side has just as much proof as the other. I call them the religion of No.
    At least they know how to spell atheists.
  • (cs) in reply to Paul Neumann
    Paul Neumann:
    If you are incapable of having a mature conversation, pay someone for the displeasure of having to interact with your princess ass.
    I'm confused; weren't you the one that wished someone else would die, just because they complained about some piece of software? Yet he's the one incapable of holding a mature conversation?
  • Simon (unregistered) in reply to Sly
    Sly:
    For me the WTF is calling someone a Sunday morning for a preproduction bug.

    Those can usualy wait for Monday. If the window for preproduction was only the week-end than this is the WTF : pre-production cycle take way longer than 2 days !

    For an example of where I've seen that happen, it's that deploying into production will take long enough that it can only be scheduled for when a public holiday gives a three-day weekend to work with.

    As a result, a few days of delay in pre-production can result in several months being added to the go-live, just because it had to be re-scheduled for the next long weekend.

  • Mr.Burns (unregistered) in reply to csrster
    csrster:
    The real WTF is putting anything into production on a Friday.

    Yes SIR!! Winner !!

  • (cs) in reply to J
    J:
    Pat:
    Michael (no:
    you can count on highly-logical programmers to poke fun at and openly mock religion.
    It needs to be mocked. It is a profoundly stupid idea that just won't die, despite there being not the faintest hint of proof whatsoever for its ridiculous claims. Belief is a contagious mental illness.
    Which is why athiests (the ones that say 'there is no X') are the worst. They usually don't have enoug intelligence to recognize that they only believe what they say, they don't know. Their side has just as much proof as the other. I call them the religion of No.

    It's a popular argumentum ad hominem to trash the opposing point of view by claiming they are stupid. It is usually offered by those who themselves are so stupid they haven't got a clue how boneheaded they really are. This one is a prime example - it can't even spell.

  • (cs)

    Unrealistically small test sample, inadequate deployment document. I blame the developer.

  • (cs) in reply to dkf
    dkf:
    TRWTF is using threads to handle IO-bound problems, but many programmers have been making that one for a long time.

    Hear, hear!!

  • (cs) in reply to chubertdev
    chubertdev:
    You have a problem. You use threading, and now you have 500 problems.
    You have a problem. You think, "I know, I'll use threading!" have you problems. five Now hundred
  • (cs) in reply to csrster
    csrster:
    The real WTF is putting anything into production on a Friday.
    Good thing it was only the pre-production environment, then.

Leave a comment on “Less is More”

Log In or post as a guest

Replying to comment #:

« Return to Article