• (cs) in reply to chubertdev
    chubertdev:
    -I can't even tell what that's a picture of
    You need a refresher course in pop culture.
  • (cs)

    I was never fond of that movie. Saw it once 15 years ago, didn't care for it.

  • F (unregistered) in reply to ¯\(°_o)/¯ I DUNNO LOL
    ¯\(°_o)/¯ I DUNNO LOL:
    faoileag:
    If I were Tom I'd leave the company asap. So a developer can submit jar-files but gets away without submitting a single line of source code? This is bad enough in a mom-and-pop-shop, but for an insurance company it is unacceptable.
    But you see, unless you run it through an obfuscator (which Maxime was clearly too incompetent to do), you can simply run a decompiler on the jar files! And as a bonus, all of those useless French-language comments are removed!

    Comments? What comments? This code was written by an expert: no comments needed.

  • Baboon (unregistered) in reply to Rollyn01
    Rollyn01:
    So...
    1. Screw up.
    2. Blame the other guy.
    3. Let other guy fix it.
    4. Convince the boss that the other guy wouldn't have fixed the problem without your contribution.
    5. Suggest promoting the other guy to do the work you should have done right.
    6. Get promoted to do nothing.

    I don't know about you guys, but I can clearly see I've been screwing up all my life.

    +1 to this ...

    I have worked with guys like this. Luckily they were let go ... unfortunately it took 3 years of incompetence :(

    Still it says a lot when the teams actual productivity actually went up without having to fire fight or cover our asses with the blame game :)

  • Murder Isn't Funny, Asshole (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

  • (cs) in reply to Murder Isn't Funny, Asshole
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    What if you murder a clown?

  • FunnyDev (unregistered) in reply to chubertdev
    chubertdev:
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    What if you murder a clown?

    How about a mime in the woods?

  • Murder Isn't Always Funny, Asshole (unregistered) in reply to FunnyDev
    FunnyDev:
    chubertdev:
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    What if you murder a clown?

    How about a mime in the woods?

    Yeah. Forgot about those two. Sorry.

  • (cs) in reply to Murder Isn't Funny, Asshole
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    My GAU-8 is too noticeable in my back pocket, so I stick it down the front, where it sort of gets lost.

  • (cs) in reply to copse1
    copse1:
    Bill Coleman:
    It's not the Peter Principle, but the Inverse Peter Principle. The Peter Principle is that "Everyone rises to their own level of incompetence." The Inverse Peter Principle is "The competent don't rise -- they have to stay where they are to do the work."

    I tend to go with '‘Ah well, they say that the biggest turds always rise to the top of the septic tank’.

    PHB: "The cream always rises to the top." Everyone else: "So does pond scum."

  • (cs) in reply to Charles F.

    Click the in reply to because the comment section sucks.

    We have a universal language already. Hint: What's the only language that Java keywords are in? Hint 2: What's the only language this website is available in?

  • Diogenes (unregistered)

    Here in the Great South Land down under, my first job as a trainee programmer was to fix PL/1 programs written by a long departed Swiss national who used the shortest variable/function name out of french, english, german and italian. I was given a whole directory of source files to be translated (had to have some help from an Italian speaker when I couldn't guess). Needless to say this was in the days when 'gotoless' programming was the rage - no reviews no source control and if you were lucky 1 test run a day.

    CAPTCHA secundum - because that was the first job, the secundum employer was found immediately I finished the translation job.

  • Your Name (unregistered) in reply to FunnyDev
    FunnyDev:
    chubertdev:
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    What if you murder a clown?

    How about a mime in the woods?

    But at least in that case, you can use the MIME Type to identify the body. ;-)

  • Norman Diamond (unregistered) in reply to faoileag
    faoileag:
    the article said:
    The Get method was called exactly zero times.
    Maxime's Cache implementation would have paired nicely with Signetic's Write-Only Memory: http://www.repeater-builder.com/humor/signetics-wom.pdf
    I also laughed when I first heard the phrase "write only memory".

    Then I found two real examples.

    In Windows, some kinds of device contexts can be the destination of a bitblt, but when you try to read the pixels back out of it you get all zeroes (black).

    I have a hard drive with a few bad blocks. Whatever data you write to a bad block, the drive's firmware returns a success result, pretending that it wrote the data.[*] When trying to read, the drive's firmware returns a media error. I presume all the spare blocks for relocations were used up long ago.

    [* Right, I never said that Microsoft is the sole cause of data loss, just the biggest.]

  • Vlad Patryshev (unregistered)

    Naive Europeans.

    Here in Mountain View I saw much more sophisticated Maxims. The ones that, after you fix their leak/deadlock/whatever go ahead and refix it, because your fix is wrong; then go and complain to the manager that your fix was wrong. (That's Stanford School of behavior, I guess.)

  • Andrew (unregistered)

    Tom should have been fired for not being a team player. It's an undocumented unfeature.

  • Late Bloomer (unregistered) in reply to Vlad Patryshev

    CL or it didn't happen.

  • BJ (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    faoileag:
    If I were Tom I'd leave the company asap. So a developer can submit jar-files but gets away without submitting a single line of source code? This is bad enough in a mom-and-pop-shop, but for an insurance company it is unacceptable.
    It probably (depending on the jurisdiction) violates assorted regulatory rules nine ways to Sunday, especially in these days of Sarbanes-Oxley and the like. Not that Belgium is known for a major presence on the World Stage of high finance, but you get the idea...
    Shows you know shit about shit. Some of the most important financial institutions are working from Belgium like Swift (http://www.swift.com/)or Euroclear (www.euroclear.com). Quote from the Euroclear website: "Every 6 days we settle transactions equivalent to the GDP of the EU".
  • Franky (unregistered)

    so, Toms fault for not going absolutely berserk on his boss imo (and fuck CLM, do what you feel is the right thing to do and say what needs to be said).

  • Pero perić (unregistered) in reply to chubertdev
    chubertdev:
    -I can't even tell what that's a picture of
    You probably didn't watch that movie. It's the Mega Maid (mentioned in the article) from Spaceballs.
  • Peter Bouillon (unregistered)

    What else could be done? Maxime is incompetent in producing software but competent in producing vapid phrases. Tom is competent in producing software and less competent in producing vapid phrases.

    If Tom were promoted, he'd spend more time in meetings, blathering phrases, and he'd have less time for producing software, the thing he's really good at. So Maxime is getting the ticket to the executive floor.

    The more competent Tom becomes as a programmer, the more reason for management to keep exploiting his skills instead of letting him climb the career ladder. So Tom will never be promoted and will never get decision power. This is the usual fate of the technically skilled.

    OTOH, what would you have management do otherwise? From their viewpoint, it's the only approach that makes sense. They'd be really stupid to do it the other way round.

  • QJo (unregistered) in reply to BJ
    BJ:
    Steve The Cynic:
    faoileag:
    If I were Tom I'd leave the company asap. So a developer can submit jar-files but gets away without submitting a single line of source code? This is bad enough in a mom-and-pop-shop, but for an insurance company it is unacceptable.
    It probably (depending on the jurisdiction) violates assorted regulatory rules nine ways to Sunday, especially in these days of Sarbanes-Oxley and the like. Not that Belgium is known for a major presence on the World Stage of high finance, but you get the idea...
    Shows you know shit about shit. Some of the most important financial institutions are working from Belgium like Swift (http://www.swift.com/)or Euroclear (www.euroclear.com). Quote from the Euroclear website: "Every 6 days we settle transactions equivalent to the GDP of the EU".

    Quite.

    Isn't Bruxelles the administrative centre of the EU? how much more of a major presence on the world stage for anything do you need to be?

  • QJo (unregistered) in reply to Peter Bouillon
    Peter Bouillon:
    What else could be done? Maxime is incompetent in producing software but competent in producing vapid phrases. Tom is competent in producing software and less competent in producing vapid phrases.

    If Tom were promoted, he'd spend more time in meetings, blathering phrases, and he'd have less time for producing software, the thing he's really good at. So Maxime is getting the ticket to the executive floor.

    The more competent Tom becomes as a programmer, the more reason for management to keep exploiting his skills instead of letting him climb the career ladder. So Tom will never be promoted and will never get decision power. This is the usual fate of the technically skilled.

    OTOH, what would you have management do otherwise? From their viewpoint, it's the only approach that makes sense. They'd be really stupid to do it the other way round.

    What you do is implement two different career paths: Management/Administrational and Technical. You make it possible to rise at least as high (in both salary and kudos) in the Technical path as you can in the Management path.

  • Icarium (unregistered)

    AAAHHHH. Oh. My. God. Don't post stories like that! Even reading about it drains the life from me. I want to punch somebody in the face now. >_< Luckily the world is not always this horrible. shudder

  • (cs) in reply to BJ
    BJ:
    Steve The Cynic:
    faoileag:
    If I were Tom I'd leave the company asap. So a developer can submit jar-files but gets away without submitting a single line of source code? This is bad enough in a mom-and-pop-shop, but for an insurance company it is unacceptable.
    It probably (depending on the jurisdiction) violates assorted regulatory rules nine ways to Sunday, especially in these days of Sarbanes-Oxley and the like. Not that Belgium is known for a major presence on the World Stage of high finance, but you get the idea...
    Shows you know shit about shit. Some of the most important financial institutions are working from Belgium like Swift (http://www.swift.com/)or Euroclear (www.euroclear.com). Quote from the Euroclear website: "Every 6 days we settle transactions equivalent to the GDP of the EU".
    OK, fair point, although I'd argue that neither of them is famous(*) for being *Belgian*, unlike major names in investment banking.

    (*) Nor even well-known.

  • (cs) in reply to QJo
    QJo:
    Quite.

    Isn't Bruxelles the administrative centre of the EU? how much more of a major presence on the world stage for anything do you need to be?

    In English it's normally known as Brussels. And "administrative centre of the EU" != "World Stage of high finance", although some might argue that you'd need to be high to appreciate the finance that goes on in the EU.

  • QJo (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    QJo:
    Quite.

    Isn't Bruxelles the administrative centre of the EU? how much more of a major presence on the world stage for anything do you need to be?

    In English it's normally known as Brussels. And "administrative centre of the EU" != "World Stage of high finance", although some might argue that you'd need to be high to appreciate the finance that goes on in the EU.

    Considering the only major products of western Europe are money and debt, it sort of stands to reason.

  • QJo (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    QJo:
    Quite.

    Isn't Bruxelles the administrative centre of the EU? how much more of a major presence on the world stage for anything do you need to be?

    In English it's normally known as Brussels. And "administrative centre of the EU" != "World Stage of high finance", although some might argue that you'd need to be high to appreciate the finance that goes on in the EU.

    Oh yeah, Brussels, so it is. Sorry, I've been international for so long I sometimes forget the provincial local jargon for stuff.

  • iusto (unregistered) in reply to Peter Bouillon
    Peter Bouillon:
    If Tom were promoted, he'd spend more time in meetings, blathering phrases, and he'd have less time for producing software, the thing he's really good at. [...] So Tom will never be promoted and will never get decision power. [...] OTOH, what would you have management do otherwise?
    Why should producing software and making decisions be mutually exclusive? So many problems are caused by managers who make decisions but aren't responsible for making them happen - it means they don't feel the pain caused by bad decisions, so they won't learn to do better next time.

    Well, maybe I should abbreviate that. So many problems are caused by managers, period.

  • Sir Robin The Not So Brave (unregistered) in reply to QJo
    QJo:
    Steve The Cynic:
    QJo:
    Quite.

    Isn't Bruxelles the administrative centre of the EU?

    In English it's normally known as Brussels.

    Oh yeah, Brussels, so it is. Sorry, I've been international for so long I sometimes forget the provincial local jargon for stuff.

    Actually, Bruxelles is the provincial local jargon in French, it's Brussel in Dutch and Brussels in English.

  • BJ (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    BJ:
    Steve The Cynic:
    faoileag:
    If I were Tom I'd leave the company asap. So a developer can submit jar-files but gets away without submitting a single line of source code? This is bad enough in a mom-and-pop-shop, but for an insurance company it is unacceptable.
    It probably (depending on the jurisdiction) violates assorted regulatory rules nine ways to Sunday, especially in these days of Sarbanes-Oxley and the like. Not that Belgium is known for a major presence on the World Stage of high finance, but you get the idea...
    Shows you know shit about shit. Some of the most important financial institutions are working from Belgium like Swift (http://www.swift.com/)or Euroclear (www.euroclear.com). Quote from the Euroclear website: "Every 6 days we settle transactions equivalent to the GDP of the EU".
    OK, fair point, although I'd argue that neither of them is famous(*) for being *Belgian*, unlike major names in investment banking.

    (*) Nor even well-known.

    They keep low-profile on purpose to avoid becoming targets of the anti-globalists. Funny true story: a few years back, the anti-globalist movement wanted to hold a huge demonstration. So thousands of people where wondering around the financial district in Brussels and then occupied the wrong building :)

    That's how low profile they are.

  • (cs) in reply to SomeGuy
    SomeGuy:
    faoileag:
    Steve The Cynic:
    It probably (...) violates assorted regulatory (...) especially in these days of Sarbanes-Oxley
    Sarbanes-Oxley did come to my mind when I wrote the post, but then it is US legislation and I don't know if similar regulations exist in Belgium. Or, come to think of it, *any* country other than the US.

    Even in the US, depending on the type of company and products sold, SOX compliance my not be required as insurance is not a securities product and therefore not regulated by the SEC.

    Not even for variable life products?

    (I haven't worked in insurance since 2001, so I don't know how much has changed since then.)

  • (cs) in reply to Pero perić
    Pero perić:
    chubertdev:
    -I can't even tell what that's a picture of
    You probably didn't watch that movie. It's the Mega Maid (mentioned in the article) from Spaceballs.

    heh

    chubertdev:
    I was never fond of that movie. Saw it once 15 years ago, didn't care for it.
  • n0x@soul~ (unregistered)

    I used to have a line that I used when firing people (before PC and HR nightmares of having to always be nice)

    I'd promote them. to customers.

  • (cs)

    TRWTF is no code review. Of course, knowing ths company, Maxime would be just put in charge of it anyway...

  • shmosel (unregistered)

    Did no one notice the syntax error in the code? Not to mention the uppercase first letters of the method names... doesn't look like it's the original.

  • Meep (unregistered) in reply to ratchet freak
    ratchet freak:
    Skandranon:
    "The Get method was called exactly zero times."

    Fortunately, Maxime was clever enough to avoid concurrency issues by never actually using the information in the cache, so it wouldn't matter if threads were overwriting each others information.

    doesn't matter the put should also be synchronized, otherwise you can get general map corruption

    It's mostly iterators that are subject to race conditions with writers. And, again, if you never read from the map, no amount of corruption will actually do anything.

    Incidentally, if you are stuck with code like this and want to make a minimal fix:

    HashMap<X,Y> = new LinkedHashMap() {
    @Override
    protected boolean removeEldestEntry(Entry<X,Y> eldset) {
       return size() > LIMIT;
    }
    }
    

    That's a quick and not too dirty way to handle it. And since it's being called by the put() and putAll() method, it works with the Collections.synchronizedMap method.

  • Meep (unregistered) in reply to JiP
    JiP:
    Synchronizing has the additional benefit of slowing down the process even more, especially when called frequently.

    You will always sound like a moron when you talk about "this is slow" or "this is fast."

    For instance, if your disk can only do one thing at a time, it's not the mutex that's slowing things down, it's the disk. The mutex is simply your way of acknowledging that a physical disk head can only be in one place at a time.

    A mutex doesn't "slow down the process." What it does is create a guard around a resource that forces threads to access it sequentially. Blaming the guard for making things "slow" is idiotic; you can't tell a computer "I want you to run fifty threads" and then "but only do one thing at a time" and be surprised when running fifty threads is not faster than one.

  • dolor (unregistered) in reply to Meep
    Meep:
    And, again, if you never read from the map, no amount of corruption will actually do anything.
    Not true, there's no reason to assume that the put method will behave sensibly if the data structures it's working on are invalid. It could quite easily throw an exception or go into an infinite loop.
  • Jason (unregistered)

    And it stories like this that just beg the question, "What compromising information did Maxime have on the boss?"

  • (cs) in reply to shmosel
    shmosel:
    Did no one notice the syntax error in the code? Not to mention the uppercase first letters of the method names... doesn't look like it's the original.

    Probably someone used to .NET writing code in Java.

  • justme (unregistered) in reply to Matt Westwood
    Matt Westwood:
    Murder Isn't Funny:
    Steve The Cynic:
    ...Or you pull the GAU-8 out of your back pocket and lay waste to the other(*) inhabitants of the room.

    (*) The ones who aren't you.

    Fuck you for even posting something like this.

    My GAU-8 is too noticeable in my back pocket, so I stick it down the front, where it sort of gets lost.

    Does it get lost because there is so much room up front ?

  • Buddy (unregistered)

    Have taken over stuff like that. One guy added a LOT of custom Java modules back in the day when Java was new and hip. Each module was equivalent to one or two lines in the native scripting language, which I guess guy didn't like.

    Each comment out of his code was like a victory, and the battle was won when I could finally uninstall Java from the server. Not that I hate Java, just unnecessary complication for the sake of coolness.

  • I don't think so (unregistered) in reply to Charles F.
    Charles F.:
    His variable names and comments were in French, a language spoken by only 40% of Belgians.
    When will people get it? Always comment in Esperanto.

    French would preferable to the stuff I get to read. Most of the Java code was written by a former C programmer who never got the idea of descriptive names, comments (at all), or this whole object oriented and thread-safe stuff.

    __bc is a really descriptive name, especially when exposed via a public static method . . .

  • Paul (unregistered)

    That is presumably in inner class extracted from a large class? (Re 'public static class Cache.) I wonder what the rest of the code looked like.

  • Cody (unregistered)

    My favorite part was the bit at the end where his soul was crushed. If you play it in slow motion you can identify the exact moment where his will to live leaves his body.

Leave a comment on “Visionary Leak”

Log In or post as a guest

Replying to comment #:

« Return to Article