• Bob (unregistered) in reply to F*** for forest
    F*** for forest:
    Aspirant:
    Bob:
    Amateurs!

    #define sizeof(x) (rand() % sizeof(x) + 1)

    So simple, so utterly evil and I would never have thought of it.

    I am awed.

    That still requires the declaration of rand() to be visible though. How about

    #define for(x) {x;}

    They then get errors for code like

    for (int i=0; i<10; ++i) {
    std::cout << i << std::endl; }

    that say "i is not declared" and go totally frenzy. This is less runtime unsharp, but could help to annoy low-level programmers that don't include the standard library.

    captcha: Twats and cunts.

    Fair point, but....

    $ cat bad.c
    #define sizeof(x)   (rand() % sizeof(x) + 1)
    
    int main(void) {
      int i;
      srand(time(0));
      for(i=0; i<10; i++)
        printf("sizeof(int) == %u\n", sizeof(int));
      return 0;
    }
    $ gcc -o bad bad.c
    bad.c: In function 'main':
    bad.c:7: warning: incompatible implicit declaration of built-in function 'printf'
    $ ./bad
    sizeof(int) == 4
    sizeof(int) == 2
    sizeof(int) == 1
    sizeof(int) == 3
    sizeof(int) == 4
    sizeof(int) == 3
    sizeof(int) == 4
    sizeof(int) == 4
    sizeof(int) == 4
    sizeof(int) == 2

    So gcc (or at least the version I happened to try this with) doesn't seem to mind about the lack of stdlib.h (think that'll cover srand(), rand() and time()) but isn't completely happy about the lack of stdio.h (for printf())

    And thanks Aspirant! All the comments about my macro have made me smile :-)

  • mr.asdf qwerty (unregistered) in reply to khane

    corporate passive agressive tactics huh? i'd go for a laxant in his coffee...

  • frits (unregistered)

    Who hasn't done something like this before?

  • anon (unregistered) in reply to J.
    J.:
    Mind == Blown
    Andrei:
    #define private public won't do much harm.
    It will do plenty of harm if the person debugging assumes that an objects internal state can only be modified by means of its public interface.

    Come to think of it, it would probably be a bit similar to debugging a multi-threaded application that does not make use of any synchronization at all.

    Yeah, but you can never assume that in C++, because you don't have runtime encapsulation. Take a look at this:

    class c {
    public: 
    int foo;
    private:
    int bar;
    };
    
    int main() {
    c obj;
    int * ptr = &(obj.foo);
    ptr* = 5;
    ptr ++;
    ptr* = 8;
    return ptr*;
    }
    

    Hey, look at that! I just modified the object's "internal state" without using its "public interface"! That's because in C++, there's no such thing as "internal state", there's just a chunk of memory with data in it, and "private" might as well be a comment. If you start debugging by assuming that private members can only be changed by the class's functions, you'll be in trouble quickly.

  • (cs) in reply to anon
    anon:
    J.:
    Mind == Blown
    Andrei:
    #define private public won't do much harm.
    It will do plenty of harm if the person debugging assumes that an objects internal state can only be modified by means of its public interface.

    Come to think of it, it would probably be a bit similar to debugging a multi-threaded application that does not make use of any synchronization at all.

    Yeah, but you can never assume that in C++, because you don't have runtime encapsulation. Take a look at this:

    class c {
    public: 
    int foo;
    private:
    int bar;
    };
    
    int main() {
    c obj;
    int * ptr = &(obj.foo);
    ptr* = 5;
    ptr ++;
    ptr* = 8;
    return ptr*;
    }
    

    Hey, look at that! I just modified the object's "internal state" without using its "public interface"! That's because in C++, there's no such thing as "internal state", there's just a chunk of memory with data in it, and "private" might as well be a comment. If you start debugging by assuming that private members can only be changed by the class's functions, you'll be in trouble quickly.

    What's the big deal? Reflection allows you to modify private/protected fields and invoke private/protected methods in .Net and Java without resorting to pointer hacks. In my unqualified opinion, access modifiers are tools for use of classes under normal conditions, not some kind of security measure.

  • wtf (unregistered) in reply to wtf
    wtf:
    WTF?

    113 comments, and not a single one references how stupid it is to be putting any password code in the javascript? How would he even update teh database? What happens if they turn off javascript or have GreaseMonkey installed? Your all a bunch of nincompoops who troll this site probably because no one trusts you enough to give you any real work to do.

    Sincerely, wtf

    Ahem.

    That's a different "wtf (unregistered)" than the one you're used to reading. Just so's you know. (wouldn't want that "teh" associated with any writing I do, even anonymously, nor the incorrect use of the possessive "your" or the use of "reference" as a verb - get your fingernails off that chalkboard, you! - or really anything else in this post)

  • DENNIS (unregistered) in reply to Andrei

    From Bash.org.ru?

  • anon (unregistered) in reply to frits
    frits:
    anon:
    J.:
    Mind == Blown
    Andrei:
    #define private public won't do much harm.
    It will do plenty of harm if the person debugging assumes that an objects internal state can only be modified by means of its public interface.

    Come to think of it, it would probably be a bit similar to debugging a multi-threaded application that does not make use of any synchronization at all.

    Yeah, but you can never assume that in C++, because you don't have runtime encapsulation. Take a look at this:

    class c {
    public: 
    int foo;
    private:
    int bar;
    };
    
    int main() {
    c obj;
    int * ptr = &(obj.foo);
    ptr* = 5;
    ptr ++;
    ptr* = 8;
    return ptr*;
    }
    

    Hey, look at that! I just modified the object's "internal state" without using its "public interface"! That's because in C++, there's no such thing as "internal state", there's just a chunk of memory with data in it, and "private" might as well be a comment. If you start debugging by assuming that private members can only be changed by the class's functions, you'll be in trouble quickly.

    What's the big deal? Reflection allows you to modify private/protected fields and invoke private/protected methods in .Net and Java without resorting to pointer hacks. In my unqualified opinion, access modifiers are tools for use of classes under normal conditions, not some kind of security measure.

    I mostly took exception to the idea that you can rely on the internal state of an object to never be corrupted by external factors when debugging C++. All sorts of things can shit on the internal state of an object from outside and create hard-to-track-down bugs; if you've got a big C++ codebase you need to be ready for that when it inevitably happens.

    If you

    #define private public
    , you at least know that you're explicitly asking for trouble; pointer tricks can be less benign.

  • (cs) in reply to anon
    anon:
    I mostly took exception to the idea that you can rely on the internal state of an object to never be corrupted by external factors when debugging C++. All sorts of things can shit on the internal state of an object from outside and create hard-to-track-down bugs; if you've got a big C++ codebase you need to be ready for that when it inevitably happens.

    If you

    #define private public
    , you at least know that you're explicitly asking for trouble; pointer tricks can be less benign.

    I can't disagree with that. I've done much worse things using unitialized pointers. It can be quite confusing when you see dissembled code change before your eyes when single stepping through C++ code.

    Anyway, given the context of the entire thread, I believe I should have drank more coffee and taken less cold medicine before posting.

  • Anonymous (unregistered) in reply to Your mother
    Your mother:
    dposluns:
    ideo:
    May I humbly submit: Malicious Intent.

    I think that's in defiance of Occam's Razor. I've known a lot of eccentric, challenged, and evil-genius type coders in my day, and I have a hard time picturing anyone with the level of competence to write code deliberately that flawed, that would have the kind of motivation to do so instead of just doing their job.

    Occam's razor is "never attribute to malice that which can adequately be explained by stupidity." Now, I think we're stretching the definition of what constitutes an "adequate explanation" here.
    Woah there fella, slow down. Occam's Razor refers to the "law of succinctness" and can be adequately summarised as "the most succinct explanation (or "the simplest explanation") is the most likely".

    "Hanlon's Razor" is not a true "razor" ("Messer" in the native German) but the name was inspired by Occam's Razor. It states that one should "never attribute to malice that which is adequately explained by stupidity".

    Seriously, how do you confuse Occam's Razor with a throw-away phrase popularised by a sci-fi writer? That's just unforgivable.

  • wtf (unregistered) in reply to wtf
    wtf:
    wtf:
    WTF?

    113 comments, and not a single one references how stupid it is to be putting any password code in the javascript? How would he even update teh database? What happens if they turn off javascript or have GreaseMonkey installed? Your all a bunch of nincompoops who troll this site probably because no one trusts you enough to give you any real work to do.

    Sincerely, wtf

    Ahem.

    That's a different "wtf (unregistered)" than the one you're used to reading. Just so's you know. (wouldn't want that "teh" associated with any writing I do, even anonymously, nor the incorrect use of the possessive "your" or the use of "reference" as a verb - get your fingernails off that chalkboard, you! - or really anything else in this post)

    Ignore the imposter.

    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?

  • Andy Capp (unregistered) in reply to wtf
    wtf:
    wtf:
    WTF?

    113 comments, and not a single one references how stupid it is to be putting any password code in the javascript? How would he even update teh database? What happens if they turn off javascript or have GreaseMonkey installed? Your all a bunch of nincompoops who troll this site probably because no one trusts you enough to give you any real work to do.

    Sincerely, wtf

    This new wtf is much less of a language wanker, eh?

    Ahem.

    That's a different "wtf (unregistered)" than the one you're used to reading. Just so's you know. (wouldn't want that "teh" associated with any writing I do, even anonymously, nor the incorrect use of the possessive "your" or the use of "reference" as a verb - get your fingernails off that chalkboard, you! - or really anything else in this post)

  • Andy Capp (unregistered) in reply to wtf
    wtf:
    wtf:
    WTF?

    113 comments, and not a single one references how stupid it is to be putting any password code in the javascript? How would he even update teh database? What happens if they turn off javascript or have GreaseMonkey installed? Your all a bunch of nincompoops who troll this site probably because no one trusts you enough to give you any real work to do.

    Sincerely, wtf

    Ahem.

    That's a different "wtf (unregistered)" than the one you're used to reading. Just so's you know. (wouldn't want that "teh" associated with any writing I do, even anonymously, nor the incorrect use of the possessive "your" or the use of "reference" as a verb - get your fingernails off that chalkboard, you! - or really anything else in this post)

    This new wtf is much less of a language wanker, eh?

    oops!

  • trwtf (unregistered) in reply to Andy Capp
    Andy Capp:
    wtf:
    wtf:
    WTF?

    113 comments, and not a single one references how stupid it is to be putting any password code in the javascript? How would he even update teh database? What happens if they turn off javascript or have GreaseMonkey installed? Your all a bunch of nincompoops who troll this site probably because no one trusts you enough to give you any real work to do.

    Sincerely, wtf

    Ahem.

    That's a different "wtf (unregistered)" than the one you're used to reading. Just so's you know. (wouldn't want that "teh" associated with any writing I do, even anonymously, nor the incorrect use of the possessive "your" or the use of "reference" as a verb - get your fingernails off that chalkboard, you! - or really anything else in this post)

    This new wtf is a lousy writer, eh?

    FTFY

  • ÃÆâ€â„ (unregistered)

    i can haz new wtf?

  • Alex (unregistered) in reply to ÃÆâ€â„
    ÃÆâ€â„:
    i can haz new wtf?
    Be patient--it's not tomorrow yet.
  • ÃÆâ€â„ (unregistered) in reply to Alex
    Alex:
    ÃÆâ€â„:
    i can haz new wtf?
    Be patient--it's not tomorrow yet.
    What is today, but yesterday's tomorrow?
  • Ouch! (unregistered) in reply to ÃÆâ€â„
    ÃÆâ€â„:
    Alex:
    ÃÆâ€â„:
    i can haz new wtf?
    Be patient--it's not tomorrow yet.
    What is today, but yesterday's tomorrow?
    Yesterday's tomorrow looked much better than today, so it's not that but tomorrow's yesterday.
  • Jay (unregistered) in reply to DB
    DB:
    Your mother:
    Occam's razor is "never attribute to malice that which can adequately be explained by stupidity." Now, I think we're stretching the definition of what constitutes an "adequate explanation" here.

    That would be Hanlon's razor.

    I think this code is more an example of Sweeny Todd's razor.

  • cogo (unregistered) in reply to wtf
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    I think they are just experimenting with the idea of theeveryotherdailywtf.com
  • Jay (unregistered) in reply to Ouch!
    Ouch!:
    Af:
    Alex:
    Be patient--it's not tomorrow yet.
    What is today, but yesterday's tomorrow?
    Yesterday's tomorrow looked much better than today, so it's not that but tomorrow's yesterday.

    Yesterday we thought that today would be tomorrow. But now we know better.

  • ÃÆâ€â„ (unregistered) in reply to cogo
    cogo:
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    I think they are just experimenting with the idea of theeveryotherdailywtf.com
    Ugh, first they experiment with gay unicorns and rainbows, and now this?

    I thought you were only supposed to be doing that kind of experimentation in college.

  • (cs) in reply to Jay
    Jay:
    I think this code is more an example of Sweeny Todd's razor.
    Yeah, it was this bit in particularly that disturbed me:
    if (password == null) {
        alert("Error: Unable to read password, just sit tight for a moment!");
        InvokeChairEjectionTrap();
        meatPie.add(user);
        break;
    }
  • Patrick (unregistered) in reply to webrunner
    webrunner:
    Man, I've seen bad code, stupid code, ridiculous code, but purposefully fraudulent code? That is special.
    Not only that, but no matter what password you give it, it will find something wrong with it. There is not a single non-error condition that can come out of that code. Not one.

    Captcha: nulla - you got that right!

  • (cs) in reply to wtf
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    You should demand your money back.
  • Pit Bull, Player Hater (unregistered) in reply to ÃÆâ€â„
    ÃÆâ€â„:
    cogo:
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    I think they are just experimenting with the idea of theeveryotherdailywtf.com
    Ugh, first they experiment with gay unicorns and rainbows, and now this?

    I thought you were only supposed to be doing that kind of experimentation in college.

    Man, you corny!

  • name (unregistered) in reply to Swedish tard
    Swedish tard:
    Andrei:
    Nice one :)) Better yet, there is the classic #define true false // happy debugging suckers !

    Another old fun thing to find in code is #define private public

    Looks liek it could be a valid way to unit test a class without cluttering it with test code.

  • SztupY (unregistered) in reply to Bob

    And without running srand the code is actually deterministic on some configurations.

  • (cs) in reply to hoodaticus
    hoodaticus:
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    You should demand your money back.

    Careful, some people donated around one trillion (Zimbabwean) dollars to this site. You'd think for that kind of dough, you'd expect > 80% uptime.

  • Andrew Gothard (unregistered) in reply to Rob
    Rob:
    Or, as the late Douglas Adams might have noted...

    #define black white

    (and get yourself killed on the next zebra crossing) :)

    original quote

    Apparently, akismet thinks this is spam because I put a URL in here. Well, I guess I just have to keep typing until akismet likes me... :)

    Thing is though, an inability to tell the difference between black and white, per se, does not make one any less safe on a zebra crossing while walking across it. Now if the driver were unable to tell the difference between black and white, they're obviously either in sales/marketing or blind, which could be an issue. But in either case I think they should be denied a licence in the first place.

    One based upon the lack of eyesight, the others on basic lack of clue.

  • (cs) in reply to Markp
    Markp:
    hoodaticus:
    wtf:
    But seriously, didn't I see this same exact article yesterday on thedailywtf.com?
    You should demand your money back.

    Careful, some people donated around one trillion (Zimbabwean) dollars to this site. You'd think for that kind of dough, you'd expect > 80% uptime.

    Nice! I'm going to pirate that and use it as my own.

  • Scooter (unregistered)

    While I agree that the GenerateRandomError() function is nasty, is it ever called? I assume that this part of the code:

    else if (!strong.test(password))

    would always return false, as strong is declared as a variable not a function (unless it's just not been included in the story); ergo, the last else would never be reached.

  • My name (unregistered) in reply to Scooter

    Eh, you don't know javascript do you?

  • wtf (unregistered)

    For you guys across the pond, you missed a truly terrible article today. It had spelling errors, it was likely made up, and it was written in a confusing manner. Due to the number of negative comments, Alex decided it was best if he took the whole story down.

    I would say "sorry," but trust me: you did not want to read that article.

  • James R Curry (unregistered)

    Funny thing is, I read this article, then clicked "Random" and got this one:

    http://thedailywtf.com/Articles/Password-Perplexity.aspx

    I believe we found an end user of this system.

  • fm (unregistered)

    Shouldn't this code be in a business logic layer?

  • luis.espinal (unregistered) in reply to Cidolfas

    Did the development group come clean and explained to users/management the cause of the error? Or did they simply fix it and kept it quiet?

  • (cs) in reply to fm
    fm:
    Shouldn't this code be in a business logic layer?
    ZOMG! Whoever you are, POST MORE COMMENTS! ROFLMAO!
  • (cs) in reply to Scooter
    Scooter:
    While I agree that the GenerateRandomError() function is nasty, is it ever called? I assume that this part of the code:
    else if (!strong.test(password))
    would always return false, as strong is declared as a variable not a function (unless it's just not been included in the story); ergo, the last else would never be reached.
    Is this a joke?
  • Anonymouse (unregistered)

    I find it amuzing that 'password' has been spelled correct and incorrect on the same line.

  • (cs) in reply to hoodaticus
    hoodaticus:
    Scooter:
    While I agree that the GenerateRandomError() function is nasty, is it ever called? I assume that this part of the code:
    else if (!strong.test(password))
    would always return false, as strong is declared as a variable not a function (unless it's just not been included in the story); ergo, the last else would never be reached.
    Is this a joke?
    Could be that, or maybe Scooter isn't familiar with the object.method(parameter) syntax.
  • Duis (unregistered)

    WhereTF is a story for today? What does the "daily" stand for?

  • haero (unregistered) in reply to Duis
    Duis:
    WhereTF is a story for today? What does the "daily" stand for?
    Maybe that *is* today's WTF, smart guy...?
  • Andrew (unregistered) in reply to x-sol
    x-sol:
    I can't make up my mind if this is evil or stupidity in action

    It is simply evil genius at work here. How else can you explain the thought that went into building this random error generator? The developer actually went through the trouble of using the Math.random function to trick the lazy debugger into thinking there's Heisenberg's uncertainty principle at work.

    I hereby vow to use and improve this random error generator and use it somehow in any of my forms! Until all users go mad! Such is the power of the Dark Side! Mwahahaha!!!

    Captcha: sino => the Sino-WTFian relations are improving!

  • Jeremy (unregistered) in reply to Andrew Gothard
    Andrew Gothard:
    Rob:
    Or, as the late Douglas Adams might have noted...

    #define black white

    (and get yourself killed on the next zebra crossing) :)

    original quote

    Apparently, akismet thinks this is spam because I put a URL in here. Well, I guess I just have to keep typing until akismet likes me... :)

    Thing is though, an inability to tell the difference between black and white, per se, does not make one any less safe on a zebra crossing while walking across it. Now if the driver were unable to tell the difference between black and white, they're obviously either in sales/marketing or blind, which could be an issue. But in either case I think they should be denied a licence in the first place.

    One based upon the lack of eyesight, the others on basic lack of clue.

    Don't you know? Drivers are only obliged to stop when the pedestrian is on a white bit. Drivers know this instinctively, but pedestrians are apparently oblivious.

  • Matt Westwood (unregistered) in reply to Anonymous
    Anonymous:
    Your mother:
    dposluns:
    ideo:
    May I humbly submit: Malicious Intent.

    I think that's in defiance of Occam's Razor. I've known a lot of eccentric, challenged, and evil-genius type coders in my day, and I have a hard time picturing anyone with the level of competence to write code deliberately that flawed, that would have the kind of motivation to do so instead of just doing their job.

    Occam's razor is "never attribute to malice that which can adequately be explained by stupidity." Now, I think we're stretching the definition of what constitutes an "adequate explanation" here.
    Woah there fella, slow down. Occam's Razor refers to the "law of succinctness" and can be adequately summarised as "the most succinct explanation (or "the simplest explanation") is the most likely".

    "Hanlon's Razor" is not a true "razor" ("Messer" in the native German) but the name was inspired by Occam's Razor. It states that one should "never attribute to malice that which is adequately explained by stupidity".

    Seriously, how do you confuse Occam's Razor with a throw-away phrase popularised by a sci-fi writer? That's just unforgivable.

    Further notes on the subject, culled directly from the Hanlon's Razor page on Wikipedia:

    General Kurt von Hammerstein-Equord in Truppenführung, 1933: "I divide my officers into four classes; the clever, the lazy, the industrious, and the stupid. Each officer possesses at least two of these qualities. Those who are clever and industrious are fitted for the highest staff appointments. Use can be made of those who are stupid and lazy. The man who is clever and lazy however is for the very highest command; he has the temperament and nerves to deal with all situations. But whoever is stupid and industrious is a menace and must be removed immediately!"

    Now mentally divide your co-workers into those four categories.

  • Anonymous (unregistered) in reply to Matt Westwood
    Matt Westwood:
    Anonymous:
    Your mother:
    dposluns:
    ideo:
    May I humbly submit: Malicious Intent.

    I think that's in defiance of Occam's Razor. I've known a lot of eccentric, challenged, and evil-genius type coders in my day, and I have a hard time picturing anyone with the level of competence to write code deliberately that flawed, that would have the kind of motivation to do so instead of just doing their job.

    Occam's razor is "never attribute to malice that which can adequately be explained by stupidity." Now, I think we're stretching the definition of what constitutes an "adequate explanation" here.
    Woah there fella, slow down. Occam's Razor refers to the "law of succinctness" and can be adequately summarised as "the most succinct explanation (or "the simplest explanation") is the most likely".

    "Hanlon's Razor" is not a true "razor" ("Messer" in the native German) but the name was inspired by Occam's Razor. It states that one should "never attribute to malice that which is adequately explained by stupidity".

    Seriously, how do you confuse Occam's Razor with a throw-away phrase popularised by a sci-fi writer? That's just unforgivable.

    Further notes on the subject, culled directly from the Hanlon's Razor page on Wikipedia:

    General Kurt von Hammerstein-Equord in Truppenführung, 1933: "I divide my officers into four classes; the clever, the lazy, the industrious, and the stupid. Each officer possesses at least two of these qualities. Those who are clever and industrious are fitted for the highest staff appointments. Use can be made of those who are stupid and lazy. The man who is clever and lazy however is for the very highest command; he has the temperament and nerves to deal with all situations. But whoever is stupid and industrious is a menace and must be removed immediately!"

    Now mentally divide your co-workers into those four categories.

    This fills me with pride, clever and lazy are my two main attributes (but not in that order, unfortunately).

  • Jeremy (unregistered) in reply to Anonymous
    Anonymous:
    Matt Westwood:
    Anonymous:
    Your mother:
    dposluns:
    ideo:
    May I humbly submit: Malicious Intent.

    I think that's in defiance of Occam's Razor. I've known a lot of eccentric, challenged, and evil-genius type coders in my day, and I have a hard time picturing anyone with the level of competence to write code deliberately that flawed, that would have the kind of motivation to do so instead of just doing their job.

    Occam's razor is "never attribute to malice that which can adequately be explained by stupidity." Now, I think we're stretching the definition of what constitutes an "adequate explanation" here.
    Woah there fella, slow down. Occam's Razor refers to the "law of succinctness" and can be adequately summarised as "the most succinct explanation (or "the simplest explanation") is the most likely".

    "Hanlon's Razor" is not a true "razor" ("Messer" in the native German) but the name was inspired by Occam's Razor. It states that one should "never attribute to malice that which is adequately explained by stupidity".

    Seriously, how do you confuse Occam's Razor with a throw-away phrase popularised by a sci-fi writer? That's just unforgivable.

    Further notes on the subject, culled directly from the Hanlon's Razor page on Wikipedia:

    General Kurt von Hammerstein-Equord in Truppenführung, 1933: "I divide my officers into four classes; the clever, the lazy, the industrious, and the stupid. Each officer possesses at least two of these qualities. Those who are clever and industrious are fitted for the highest staff appointments. Use can be made of those who are stupid and lazy. The man who is clever and lazy however is for the very highest command; he has the temperament and nerves to deal with all situations. But whoever is stupid and industrious is a menace and must be removed immediately!"

    Now mentally divide your co-workers into those four categories.

    This fills me with pride, clever and lazy are my two main attributes (but not in that order, unfortunately).

    Are you short and fat with fat stubby fingers?

  • (cs) in reply to Matt Westwood
    Matt Westwood:
    Further notes on the subject, culled directly from the Hanlon's Razor page on Wikipedia:

    General Kurt von Hammerstein-Equord in Truppenführung, 1933: "I divide my officers into four classes; the clever, the lazy, the industrious, and the stupid. Each officer possesses at least two of these qualities. Those who are clever and industrious are fitted for the highest staff appointments. Use can be made of those who are stupid and lazy. The man who is clever and lazy however is for the very highest command; he has the temperament and nerves to deal with all situations. But whoever is stupid and industrious is a menace and must be removed immediately!"

    Now mentally divide your co-workers into those four categories.

    Thanks for that! The best programmers are in fact clever and lazy. They write the simplest and most maintainable of all code.

  • (cs) in reply to Anonymouse
    Anonymouse:
    I find it amuzing that 'password' has been spelled correct and incorrect on the same line.
    I find it amusing that you used correct and incorrect grammar and spelling in the same post. Though, as is tradition among all written language criticisms, I must now recursively repeat this same class of errorr.

Leave a comment on “The Password Reset Façade”

Log In or post as a guest

Replying to comment #:

« Return to Article