• (cs)

    Whenever I see System.out.println(...) as logging solution FRIST I go to the one who committed the code to the VCS and force him/her to commit suicide too.

  • Noddy (unregistered)

    Roll on another Hanzo story.........

  • Czenda (unregistered)

    Why didn't he update the ticket with the information he found?

  • Indifferent (unregistered) in reply to Czenda
    Czenda:
    Why didn't he update the ticket with the information he found?

    I was rather wondering that... it really annoys me when I get back to a user to say "we fixed your issue" to be told that hey found the buy days ago and didn't bother to let us know.

    It always strikes me as the other side of the coin from coders who don't release patches when they know there's a bug and have fixed it in source.

  • Pista (unregistered) in reply to Czenda
    Czenda:
    Why didn't he update the ticket with the information he found?

    Maybe because he was risking a lawsuit for decompiling the vendor's library?

  • fireprooftech (unregistered) in reply to balazs

    Seriously, not cool.

  • (cs) in reply to Indifferent
    Indifferent:
    Czenda:
    Why didn't he update the ticket with the information he found?

    I was rather wondering that... it really annoys me when I get back to a user to say "we fixed your issue" to be told that hey found the buy days ago and didn't bother to let us know.

    It always strikes me as the other side of the coin from coders who don't release patches when they know there's a bug and have fixed it in source.

    Unrelated to this article, but a long time ago, a system I inherited had a serious performance problem that was costing our primary customer millions of dollars. At the time, there was also a pending upgrade that required a whole lot of additional processing that would inevitably slow down the application, exacerbating the performance issue. One of the requirements for the upgrade was that it could NOT make the app run any slower.

    I fixed the bug, but was explicitly instructed to hold it back as this was our hedge against the performance issues of the upgrade.

  • (cs) in reply to snoofle
    snoofle:
    -snip-

    Unrelated to this article, but a long time ago, a system I inherited had a serious performance problem that was costing our primary customer millions of dollars. At the time, there was also a pending upgrade that required a whole lot of additional processing that would inevitably slow down the application, exacerbating the performance issue. One of the requirements for the upgrade was that it could NOT make the app run any slower.

    I fixed the bug, but was explicitly instructed to hold it back as this was our hedge against the performance issues of the upgrade.

    I hate those kind of managers, they just don't realize that if you hold it back now the improvement will never get implemented

  • XXXXXX (unregistered) in reply to Pista

    Why didn't he send them the test case with that invoked their code repeatedly until out of memory. He could have done this in the first place when he submitted the ticket.

  • Sebastian Ramadan (unregistered) in reply to ratchet freak

    Perhaps they think it's a good thing that everyone's talking about "that slow app written by the idiots at Innotech". Word of mouth is good publicity, right?

  • cowardly man (unregistered)

    The real WTF is that debugCache is a String object and not a StringBuilder object.

  • cowardly man (unregistered) in reply to Czenda
    Czenda:
    Why didn't he update the ticket with the information he found?

    I wouldn't do so either. You never know what the response to "I decompiled your code" will be.

    The better thing to do is to go to a prominent coding site that appears in Google search results and say what the problem/fix are anonymously.

  • JW (unregistered)

    "After pouring over the application code..."

    The correct word there is "poring". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

  • Walky_one (unregistered) in reply to Indifferent
    Indifferent:
    Czenda:
    Why didn't he update the ticket with the information he found?

    I was rather wondering that... it really annoys me when I get back to a user to say "we fixed your issue" to be told that hey found the buy days ago and didn't bother to let us know.

    It always strikes me as the other side of the coin from coders who don't release patches when they know there's a bug and have fixed it in source.

    In the delphi community it's rather usual that you get the sources delivered as part of the purchase (if you buy 3rd party components). It has the advantage that you actually can debug into the components in case of problems. However I had multiple "That's not a bug" responses when reporting serious issues (performance bugs, AV's in some special occasions etc). After reporting them a few times and being told that you've no idea what you're doing and that the original code is correct you stop reporting... you just fix them and merge them to the next version if you upgrade (and start looking for a different component vendor if possible)

  • anonymous (unregistered) in reply to Indifferent
    Indifferent:
    Czenda:
    Why didn't he update the ticket with the information he found?

    I was rather wondering that... it really annoys me when I get back to a user to say "we fixed your issue" to be told that hey found the buy days ago and didn't bother to let us know.

    It always strikes me as the other side of the coin from coders who don't release patches when they know there's a bug and have fixed it in source.

    Because fuck you. The coders are on your payroll. You own their work, and they owe it to you to commit their fixes and release the patches. I'm not on your payroll, so I owe you nothing.

    You know the story, $1 to draw the X and $9,999 to know where to draw it. Just because I happen to have the skills to figure out where your problem is doesn't mean I'll necessarily volunteer this information free of charge.

  • Dougie McBuckets (unregistered) in reply to JW
    JW:
    "After pouring over the application code..."

    The correct word there is "poring". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    If I'm trying to find a water leak, I pour water. I don't see how looking for a memory leak is any different.

  • (cs)

    Why do people insist on writing their own loggers? It's surprisingly hard to get right, and there are good implementations for virtually all languages (well, assuming it's a language that you'd use for real work).

  • John (unregistered) in reply to Dougie McBuckets
    Dougie McBuckets:
    If I'm trying to find a water leak, I pour water. I don't see how looking for a memory leak is any different.

    You can pour memory?

    Reminds me of an occasion many years ago when I made a woman scream by pouring light bulbs. I worked in a theatre hire shop and we used to hire out festoons, which took 25W GLS bulbs. Given some in bulbs in one box and some another the quickest way to combine them is to pour them, but it surprises people who aren't used to it. They're actually quite strong and pretty much never broke as a result of doing this.

  • (cs) in reply to cowardly man
    cowardly man:
    The real WTF is that debugCache is a String object and not a StringBuilder object.
    A StringBuilder wouldn't really be correct either. Keeping the stuff around in memory is a bad plan however they store it, but the logically correct data structure in Java for a list of items is List.
  • (cs)

    The problem is in what is using this logger and how.

    In Java, it's normal to use:

    private static final Logger LOG .... 
    

    If this class was instantiated in a normal way, you wouldn't have this leak since the object would be GC'ed. But, since they're reinventing the wheel here, they're fucking things up.

    OTOH, what kind of crap is your company buying? I mean, syso logging? How the fuck am I supposed to control the crap that comes out of your shitty library? Format it? Monitor it? And don't get me started on syso's performance.

  • me (unregistered) in reply to JW

    Yeah, I was going to make a comment along the lines of "What was he pouring? Custard?" :)

  • (cs) in reply to ratchet freak
    ratchet freak:
    snoofle:
    -snip-

    Unrelated to this article, but a long time ago, a system I inherited had a serious performance problem that was costing our primary customer millions of dollars. At the time, there was also a pending upgrade that required a whole lot of additional processing that would inevitably slow down the application, exacerbating the performance issue. One of the requirements for the upgrade was that it could NOT make the app run any slower.

    I fixed the bug, but was explicitly instructed to hold it back as this was our hedge against the performance issues of the upgrade.

    I hate those kind of managers, they just don't realize that if you hold it back now the improvement will never get implemented

    Sadly, the politics of it all kept the upgrade from ever being delivered. I left 6 years later and the fix still hadn't been deployed.

  • Canuck (unregistered) in reply to Dougie McBuckets

    Guy must be American, you know, 'poring' vs. 'pouring', 'color' vs. 'colour'

  • anonymous (unregistered) in reply to Canuck

    People such as yourself are the reason I purposely obfuscate my style.

  • You're a shit businessman. (unregistered) in reply to anonymous
    anonymous:
    Because fuck you. The coders are on your payroll. You own their work, and they owe it to you to commit their fixes and release the patches. I'm not on your payroll, so I owe you nothing.

    You know the story, $1 to draw the X and $9,999 to know where to draw it. Just because I happen to have the skills to figure out where your problem is doesn't mean I'll necessarily volunteer this information free of charge.

    You're the difference between a company that people like to use, and a company that people hate but have no choice but to use. Only one of those types of companies tends to remain successful in the long run.

  • QJo (unregistered) in reply to JW
    JW:
    "After pouring over the application code..."

    The correct word there is "poring". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    Nope, you're completely right -- I picked up on the same point. I would have alerted the world if you hadn't.

  • QJo (unregistered) in reply to pjt33
    pjt33:
    cowardly man:
    The real WTF is that debugCache is a String object and not a StringBuilder object.
    A StringBuilder wouldn't really be correct either. Keeping the stuff around in memory is a bad plan however they store it, but the logically correct data structure in Java for a list of items is List.

    This was a joke. I wondered if anyone would fall for it.

  • (cs) in reply to JW
    JW:
    "After pouring over the application code..."

    The correct word there is "poring". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    I'm not that guy: I'm the guy that dredges up a joke from Reader's Digest circa 1968: Professor walks up as the Fire Department is trying to put out a conflagration at the library, and says "Oh, pouring over old books, huh?"

  • (cs)

    We're having trouble reproducing the issue. Could you please enable logging in our software (instructions are attached) so we can get a snapshot of the issue via a tracelog? This will help us track down the issue.

  • Anon (unregistered) in reply to You're a shit businessman.
    You're a shit businessman.:
    anonymous:
    Because fuck you. The coders are on your payroll. You own their work, and they owe it to you to commit their fixes and release the patches. I'm not on your payroll, so I owe you nothing.

    You know the story, $1 to draw the X and $9,999 to know where to draw it. Just because I happen to have the skills to figure out where your problem is doesn't mean I'll necessarily volunteer this information free of charge.

    You're the difference between a company that people like to use, and a company that people hate but have no choice but to use. Only one of those types of companies tends to remain successful in the long run.

    You missed the point.

    The point is that if I am paying YOU for YOUR supposed "Expertise," then YOU need to learn how to do YOUR FUCKING JOB properly.

    It isn't the CUSTOMER'S responsibility to fix YOUR FUCKING PROBLEMS unless they explicitly signed on for that kind of testing.

    This wasn't an issue on the customer's side, and the customer shouldn't have needed to spend ANY time debugging the vendor's code. The ENTIRE FUCKING POINT of using third-party code is to avoid paying to build, debug, and maintain your own solution. If we're building, debugging, and maintaining the third-party solution, WHY THE FUCK ARE WE PAYING YOU?

  • guestimate (unregistered) in reply to You're a shit businessman.
    You're a shit businessman.:
    You're the difference between a company that people like to use, and a company that people hate but have no choice but to use. Only one of those types of companies tends to remain successful in the long run.
    Tell me, what mechanism do you have/does your company in place for financially dealing with people who do such bugfixing for you ?

    You know, reembursing them for the time, energy and money they spend on finding a solution you/your company was incapable of finding (read TFS), as well as the loss of time/money because of your product not doing its work.

    You have not even considered it ? Than you are the kind of person (businesman?) I do not really want to deal with.

    Financial transactions are a two-way street. If you expect to be payed for your efforts than you should damn well expect to pay others for theirs.

  • Mason Wheeler (unregistered) in reply to Pista
    Pista:
    Czenda:
    Why didn't he update the ticket with the information he found?

    Maybe because he was risking a lawsuit for decompiling the vendor's library?

    TRWTF is using a library without having the source to it. Every place I've worked for as a developer has had a strict policy on third-party libraries: don't use it if there's no source, and I follow the same practice in my private coding projects.

    For open-source libraries, this is trivial. For commercial libraries, sometimes it's included and sometimes you have to pay a little bit extra for it. But you can almost always get it.

  • (cs) in reply to Anon
    Anon:
    You're a shit businessman.:
    anonymous:
    Because fuck you. The coders are on your payroll. You own their work, and they owe it to you to commit their fixes and release the patches. I'm not on your payroll, so I owe you nothing.

    You know the story, $1 to draw the X and $9,999 to know where to draw it. Just because I happen to have the skills to figure out where your problem is doesn't mean I'll necessarily volunteer this information free of charge.

    You're the difference between a company that people like to use, and a company that people hate but have no choice but to use. Only one of those types of companies tends to remain successful in the long run.

    You missed the point.

    The point is that if I am paying YOU for YOUR supposed "Expertise," then YOU need to learn how to do YOUR FUCKING JOB properly.

    It isn't the CUSTOMER'S responsibility to fix YOUR FUCKING PROBLEMS unless they explicitly signed on for that kind of testing.

    This wasn't an issue on the customer's side, and the customer shouldn't have needed to spend ANY time debugging the vendor's code. The ENTIRE FUCKING POINT of using third-party code is to avoid paying to build, debug, and maintain your own solution. If we're building, debugging, and maintaining the third-party solution, WHY THE FUCK ARE WE PAYING YOU?

    Now remember, if someone disagrees with you, just increase the obscenities and the caps, and that will resolve things. It's a lot easier (and more effective) than careful thought!

  • Theatrical pedant (unregistered) in reply to John
    John:
    Reminds me of an occasion many years ago when I made a woman scream by pouring light bulbs.....

    Tsk. If you'd worked in any of the theatres I did, you'd have been berated for calling them 'bulbs'. "Lamps", luvvie, "lamps" ;-)

  • Jeremy (unregistered)

    In my experience this would just get the WONTFIX anyway. Users can set debug to false, therefor there's no issue.

  • C-Derb (unregistered)

    I recently worked with a 3rd party app where we quickly ran into a handful of bugs. Some of them were critical problems, like sorting not working as documented, but others were rather mild, like typos on the UI.

    The typos gave me an indication of their attention to detail, so I wasn't surprised to get a response of "Unable to recreate issue" when I provided clear instructions on how to recreate the problem using their own demo site.

    We are now happier using another product which happens to be free and open-source.

  • Anon (unregistered) in reply to JW
    JW:
    "After pouring over the application code..."

    The correct word there is "pawing". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    FTFY!

  • QJo (unregistered) in reply to C-Derb
    C-Derb:
    I recently worked with a 3rd party app where we quickly ran into a handful of bugs. Some of them were critical problems, like sorting not working as documented, but others were rather mild, like typos on the UI.

    The typos gave me an indication of their attention to detail, so I wasn't surprised to get a response of "Unable to recreate issue" when I provided clear instructions on how to recreate the problem using their own demo site.

    We are now happier using another product which happens to be free and open-source.

    This goes two ways. Whenever I see "An error has occured" on code we deliver, I automatically go in and correct the spelling. Shoddy spelling makes you look to customers like a bunch of ignorant children, consequently compromising their perception of you. So remember: every time you see a spello in your UI, fix it toot sweet or you're in danger of losing another customer.

  • QJo (unregistered) in reply to Anon
    Anon:
    JW:
    "After pouring over the application code..."

    The correct word there is "pawing". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    FTFY!

    No no no -- it's "phwooaring".

  • n_slash_a (unregistered) in reply to Indifferent
    Indifferent:
    Czenda:
    Why didn't he update the ticket with the information he found?

    I was rather wondering that... it really annoys me when I get back to a user to say "we fixed your issue" to be told that hey found the buy days ago and didn't bother to let us know.

    It always strikes me as the other side of the coin from coders who don't release patches when they know there's a bug and have fixed it in source.

    One good reason for that is testing. Anytime we make a code change there is a slew of testing that needs to be done, and usually takes about a month. Therefore, we fix it locally and then wait until we have a very good reason to release an update.

    However, the issue described in the article would be the exact reason to release an update.

  • (cs) in reply to Jeremy
    Jeremy:
    In my experience this would just get the WONTFIX anyway. Users can set debug to false, therefor there's no issue.

    The case where this issue occurs is when debug is set to false.

  • Jeremy (unregistered) in reply to JoeCool
    JoeCool:
    Jeremy:
    In my experience this would just get the WONTFIX anyway. Users can set debug to false, therefor there's no issue.

    The case where this issue occurs is when debug is set to false.

    Well, they can set the debug level to off. The point is the user can set/fix it, so it's a config problem on the user's side, not a bug. WONTFIX - Intended behavior.

  • anonymous (unregistered) in reply to You're a shit businessman.
    You're a shit businessman.:
    anonymous:
    Because fuck you. The coders are on your payroll. You own their work, and they owe it to you to commit their fixes and release the patches. I'm not on your payroll, so I owe you nothing.

    You know the story, $1 to draw the X and $9,999 to know where to draw it. Just because I happen to have the skills to figure out where your problem is doesn't mean I'll necessarily volunteer this information free of charge.

    You're the difference between a company that people like to use, and a company that people hate but have no choice but to use. Only one of those types of companies tends to remain successful in the long run.

    I was playing the part of the customer. You know, the guy who used your company, licensed your software, and then said "hey, this doesn't work". If YOUR software is broken, the expectation is that YOU fix it, not that the customer try to disassemble it and figure out why it's broken.

  • (cs)

    Somebody is making mess on comments page. Alex fix now.

  • Who debug? You debug! (unregistered)

    So if I've reading it right the problem occurs because a debug flag is set - could it be that the original installation or use notes said to set it one way for testing then the other way for production and the user didn't do the second part?

  • Norman Diamond (unregistered) in reply to Anon
    Anon:
    The point is that if I am paying *YOU* for *YOUR* supposed "Expertise," then *YOU* need to learn how to do *YOUR FUCKING JOB* properly.

    It isn't the CUSTOMER'S responsibility to fix YOUR FUCKING PROBLEMS unless they explicitly signed on for that kind of testing.

    Wrong.

    You even know how to prove that you're wrong.

    Are you richer than Bill Gates?

    By the way I agree with you, but that doesn't matter. The world proves that you and I are both wrong.

  • &Hofstadter (unregistered) in reply to Jeremy
    Jeremy:
    In my experience this would just get the WONTFIX anyway. Users can set debug to false, therefor there's no issue.
    But then the bug will never get fixed. How can you find the bug without debugging?
  • Bill C. (unregistered) in reply to Anon
    Anon:
    JW:
    "After pouring over the application code..."

    The correct word there is "pawing". Attention to detail matters in English just as much as in code...

    (Based on precedent, at least one person is going to tell me I'm wrong, after doing no research whatsoever. Don't be that guy.)

    FTFY!
    I made a woman scream too, but what do light bulbs and application code have to do with it?

  • Muphry (unregistered) in reply to QJo
    QJo:
    C-Derb:
    I recently worked with a 3rd party app where we quickly ran into a handful of bugs. Some of them were critical problems, like sorting not working as documented, but others were rather mild, like typos on the UI.

    The typos gave me an indication of their attention to detail, so I wasn't surprised to get a response of "Unable to recreate issue" when I provided clear instructions on how to recreate the problem using their own demo site.

    We are now happier using another product which happens to be free and open-source.

    This goes two ways. Whenever I see "An error has occured" on code we deliver, I automatically go in and correct the spelling. Shoddy spelling makes you look to customers like a bunch of ignorant children, consequently compromising their perception of you. So remember: every time you see a spello in your UI, fix it toot sweet or you're in danger of losing another customer.
    This goes two ways. Frenglish is as offensive as engrish.

  • Jeff Grigg (unregistered) in reply to Czenda
    Czenda:
    Why didn't he update the ticket with the information he found?

    Dittos. Telling them about their problem is a good and sociable thing to do.

    But honestly, don't expect too much. I've always done this for vendors, when I could. Sometimes they appreciate it. Sometimes they just don't care. You may learn something about them by reporting the fix, and watching what they do. :-/

Leave a comment on “Caching Debugs”

Log In or post as a guest

Replying to comment #:

« Return to Article