Slashdot Mirror


Linus Rants About C Programming Semantics (iu.edu)

jones_supa writes: "Christ people. This is just sh*t," begins Linus Torvalds in his message on the Linux Kernel Mailing List. Torvalds is grumpy because some new code added to the IPv6 subsystem has created conflicts. "The conflict I get is due to stupid new gcc header file crap," he writes. "But what makes me upset is that the crap is for completely bogus reasons." The new improved code uses fancy stuff that wants magical built-in compiler support and has silly wrapper functions for when it doesn't exist. Linus provides an alternative that contains a single and understandable conditional, which looks cleaner and generates better code.

345 of 576 comments (clear)

  1. Linus rants about EVERYTHING by NotDrWho · · Score: 2, Insightful

    Film at eleven

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
    1. Re:Linus rants about EVERYTHING by Anonymous Coward · · Score: 2, Funny

      ...except systemd, which will soon become linuxd.

    2. Re:Linus rants about EVERYTHING by Anonymous Coward · · Score: 1

      I just got a funny image in my head of him walking up and down the aisles at a grocery store, cursing and ranting about what Kraft has done to macaroni and cheese and why Charmin should have never added extra quilting to their toilet paper.

    3. Re:Linus rants about EVERYTHING by keko · · Score: 2

      If you follow the thread to the end, it's poor David Miller begging for someone to review any changes.

    4. Re:Linus rants about EVERYTHING by Anonymous Coward · · Score: 1, Funny

      Hopefully systemd will absorb Poettering soon, and the whole sorry mess will vanish up its own backside.

    5. Re:Linus rants about EVERYTHING by gstoddart · · Score: 5, Insightful

      "But what makes me upset is that the crap is for completely bogus reasons." The new improved code uses fancy stuff that wants magical built-in compiler support and has silly wrapper functions for when it doesn't exist.

      You know, ranting about pointless language additions which add to complexity for no real purpose is something Linus should be ranting about.

      Shiny code for the sake of shiny code produces bloat, and frequently quit bad code.

      His post goes on to describe the code that angered him as "A shiny function that we have never ever needed anywhere else, and that is just compiler-masturbation." complete idiotic crap "anm [sic] idiotic unreadable mess." "a f*cking bad excuse for that braindamage."

      I'm sure most coders have known someone who always put in 'clever' code which was far less good than the author thought it was.

      This looks distinctly like code which is too clever for its own good.

      --
      Lost at C:>. Found at C.
    6. Re:Linus rants about EVERYTHING by AmiMoJo · · Score: 1

      This looks distinctly like code which is too clever for its own good.

      Not at all. It looks like someone who isn't confident that they can write good, reasonably secure code so tries to rely on a macro to do security for them. Or perhaps they feel that using a framework of macros is better in principal, e.g. because it is known secure code, which again seems naive.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:Linus rants about EVERYTHING by Big+Hairy+Ian · · Score: 1

      I'd rather have somebody adding shiny code than somebody endlessly copying and pasting bits of code they don't fully understand. Or even worse the "can you just show me how to do that again" programmers who don't actually write a bean of code themselves because they don't know how to do it themselves but always seem to convince the upper management that they are some kind of expert

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    8. Re:Linus rants about EVERYTHING by mysidia · · Score: 3, Informative

      ...except systemd, which will soon become linuxd.

      He already ranted about SystemD code.

      "Key, [sic] I'm f*cking tired of the fact that you don't fix problems in the code *you* write, so that the kernel then has to work around the problems you cause," Torvalds fumed
      ....
      ....

      For his part, Sievers appeared unmoved by Torvalds' outburst. After posting a tongue-in-cheek status update to Google+, he reposted a missive by Lennart Poettering explaining that the systemd developers would address the issue with a software patch.

    9. Re:Linus rants about EVERYTHING by ArmoredDragon · · Score: 2

      So systemd is insidiously taking over the world while the majority are unaware?

    10. Re:Linus rants about EVERYTHING by Rob+Y. · · Score: 1

      What makes you think coders don't copy/paste the shiny bits too without understanding them? In fact, if they're hard to understand, it's more likely that they will be blindly copy/pasted.

      My rule of thumb is that no structure to solve a problem should be more complex than the original problem itself. I used to see coders devising these complex Rube Goldberg mechanisms of table driven functions that let you 'code something in a few lines'. That's potentially a good idea if it's well implemented, well documented and gonna be used over and over again - but all too often these things were used exactly once and ultimately supported forever.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    11. Re:Linus rants about EVERYTHING by TechyImmigrant · · Score: 1, Offtopic

      He seems to have a temper tantrum at the littlest of things. Difficult childhood by the sounds of it.

      No he had a temper tantrum at the biggest of things.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    12. Re: Linus rants about EVERYTHING by chaboud · · Score: 4, Informative

      I have to agree. I was ready to read a melodramatic rant over slightly new semantics, but I instead found a completely justified and reasonable criticism of horribly unreadable (and kind of broken) code. With some extra swearing thrown in for Linusness.

      Remember, coders, if you're doing anything with code that will be used by others or reused by you, readability is crucial. I'm not talking about comments unless the code itself needs to be less readable (e.g. Performance in a hot spot). I mean the code itself.

      And, by code that others may use or you may re-use, I mean all code.

    13. Re: Linus rants about EVERYTHING by rickb928 · · Score: 2

      "if you want boxed mac-n-cheese"

      You're doing it wrong.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    14. Re:Linus rants about EVERYTHING by Tran · · Score: 1

      For better or worse, Annie's always come out flavorless and watery as opposed to Kraft. Kind of a Pita.
      So i find it better and easier just to get mac-n-cheese pre-made, home-style, in our local grocery store. Competitively priced to the boxed versions.
      When I want really good Mac-n-cheese I make it myself, but more often than not the store made version is more than good enough and saves time.

    15. Re:Linus rants about EVERYTHING by fahrbot-bot · · Score: 2

      ...except systemd, which will soon become linuxd.

      ... and will also include a C compiler.

      --
      It must have been something you assimilated. . . .
    16. Re:Linus rants about EVERYTHING by GrahamCox · · Score: 1

      Shiny code for the sake of shiny code produces bloat

      Like C++ templates? *cough, cough*

    17. Re:Linus rants about EVERYTHING by interval1066 · · Score: 2

      Macro or C script; known secure is known secure, if Torvalds produced a more elegant solution for the problem at hand, well, just because rants a lot doesn't mean he's wrong. He's annoying, but not wrong.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    18. Re:Linus rants about EVERYTHING by Grishnakh · · Score: 1

      Those brands are full of nasty artificial ingredients and hydrogenated oils. You've got to be kidding. Trans fats are proven to be extremely unhealthy, which is why the FDA is banning them.

    19. Re:Linus rants about EVERYTHING by Grishnakh · · Score: 1

      Try making it with olive oil, and less milk. As for watery, it sounds like you added way too much milk.

      I hate the "home-style" mac-n-cheese at grocery stores. The macaroni is terribly overcooked to the point of being mush, and the cheese is tasteless and tastes like processed cheese. Nasty.

    20. Re:Linus rants about EVERYTHING by Tran · · Score: 1

      Hard to mess up 3 Tablespoons of milk... I made it again tonight as part of dinner (I have a couple of boxes left from a 6 pack) I dunno, still came out watery. And flavorless (as usual). So we added some crispy breadcrumbs and parmesan to make it more palatable.

      Never have the problem with Kraft. Not sure why the difference. Never watery, never tasteless - probably more flavorful xxx (cheese?) (and sodium).

      Our grocery store's Mac-n-Cheese - yeah, macaroni is a bit overcooked, but the cheddar cheese they use is pretty good, plus they crisp the top a bit with cheese as I would at home. True, overall it can get a bit mushy sitting in the case all that time - but like at home left over mac-n cheese, just needs to be warmed up correctly. I guess we are just lucky here, though their rotisserie chicken is awful - not sure how one messes that up.

    21. Re: Linus rants about EVERYTHING by Lumpy · · Score: 1

      Just linux based on redhat and Debian. Slackware has said, FUCK YOU to systemd.

      --
      Do not look at laser with remaining good eye.
    22. Re:Linus rants about EVERYTHING by Grishnakh · · Score: 1

      This is probably coming down to a difference in taste. I can't imagine putting crispy breadcrumbs and parmesan in mac-and-cheese. In fact, I would instead add some cheddar. I also hate having the cheese crisped on top.

      Also, I usually don't even eat the actual mac-and-cheese from Annie's, I normally eat the yellow cheddar shells-and-cheese (in an orange box). Try that if you've never had it; I like it a lot more than the blue-box mac-and-cheese. I'll also have the purple-box white cheddar shells-and-cheese sometimes.

      As for 3 tablespoons of milk, that doesn't sound like much. Are you straining all the water out completely? Are you putting in too much butter? Also, don't be afraid to deviate from instructions. I normally use a small pat of butter, probably around 2 tablespoons of extra virgin olive oil, maybe a tablespoon or two of milk.

      That's really weird about the chicken: that's something that most grocery stores have which is consistently good. Someone in their kitchen doesn't know what they're doing.

    23. Re:Linus rants about EVERYTHING by Z00L00K · · Score: 2

      What's worse - he's often right in his rants.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    24. Re:Linus rants about EVERYTHING by barbariccow · · Score: 1

      For better or worse, Annie's always come out flavorless and watery as opposed to Kraft. Kind of a Pita.

      If you like the taste of Kraft but want the "organic", cut your cheese with about 40% flour.

    25. Re:Linus rants about EVERYTHING by lsatenstein · · Score: 1

      Film at eleven

      The man is certainly not a happy person. Imagine living with a @#\±@€ character. One can always correct things that are broken, and one can simplify things without @#\±@€ words

      --
      Leslie Satenstein Montreal Quebec Canada
  2. Not programming semantics, but the coder by QuietLagoon · · Score: 4, Insightful
    Gawd, that code was ooogly.

    .
    Such code is the result of coders who rely on the compiler too much, and their brains too little.

    .

    "You and I learned C when it was programmers, not compilers, which had to be intelligent."

    - - - Terry Lambert

    1. Re:Not programming semantics, but the coder by thedonger · · Score: 1, Interesting

      .Such code is the result of coders who rely on the compiler too much, and their brains too little.

      I work in .Net -- *ducks* -- and it happens quite often that people rely on Intellisense and the fact that their code compiles as validation it is correct. We don't have to allocate memory, so we don't think about how we use objects that require database calls; we don't think about scope; there's a plug-in that will refactor code for you, so there's another crutch to give us more time to think about what we will be doing when we get off work.

      Also, get off my lawn.

      --
      Help fight poverty: Punch a poor person.
    2. Re:Not programming semantics, but the coder by Damouze · · Score: 3, Funny

      Reminds me of a friend of mine who used to check if a pointer was NULL, then if it was not and finally for other cases:

      if(!p)
      { ...
      }
      else if(p)
      { ...
      }
      else
      { ...
      }

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      --
      And on the Eighth Day, Man created God.
    3. Re: Not programming semantics, but the coder by O('_')O_Bush · · Score: 1

      When you start getting creative with where you are stomping on memory, you can end up in that else. That is a bug between the ears, not with the compiler, though.

      --
      while(1) attack(People.Sandy);
    4. Re: Not programming semantics, but the coder by John+Allsup · · Score: 1

      C for intuitionists who reject the law of the excluded middle.

      --
      John_Chalisque
    5. Re:Not programming semantics, but the coder by DrXym · · Score: 1
      Well it could happen if there was a race condition (e.g. p is shared with another thread) and p changed from not-NULL to NULL between the first test & else jump. But if that were the case then there is something seriously screwed up with code, starting with the person who wrote it.

      More ordinarily you have assume that the compiler generates correct code and if it doesn't, particularly on something as trivial as an if-else then really you shouldn't be using that compiler.

    6. Re:Not programming semantics, but the coder by wonkey_monkey · · Score: 4, Funny

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      That's why all my variables are upper case and only use vowels. One day there might be a bug with lower case consonants, and then all you suckers will be laughing on the other side of your faces!

      --
      systemd is Roko's Basilisk.
    7. Re:Not programming semantics, but the coder by cdrudge · · Score: 1

      If only Slashdot had some type of crutch to tell you when you didn't properly close your <blockquote>.

      I've done it too so I'm not innocent either, but sometimes even people who do use their brains can benefit from relying on tools to help them out from time to time.

    8. Re:Not programming semantics, but the coder by swillden · · Score: 2

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      Well, I'll give him one thing: Any compiler that accepts this code without at least giving a warning about dead code does have a bug (unless p is volatile). So it does detect buggy compilers.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    9. Re:Not programming semantics, but the coder by Sigma+7 · · Score: 2

      Modern compilers won't notice the pointer changing between those two conditionals, with it being loaded into a register that won't be modified in another thread. Some compilers may realize that it's impossible to enter the third block, and simply purge the code. In either case, the third block is pure fluff that should be removed.

      If you're in the rare situation where said pointer can change suddenly, then you should:

      • Declare the pointer as volatile.
      • Copy the pointer to a non-volatile variable
      • Use synchronization to ensure that you have exclusive access to the pointer
      • and/or, not play around with data types without knowing how they work.

      Also, the person writing the code mentioned that the compiler had a bug - but if such a trivial bug did exist, it would either be fixed by now, or the company making the compiler would be laughed out of existence. besides, paranoid individuals can use a debugger to disassemble a compiled executable and verify that the write code is generated.

    10. Re:Not programming semantics, but the coder by thedonger · · Score: 2

      They do -- it's called the "preview" button. But it only works when the user looks at the preview prior to pressing "submit."

      --
      Help fight poverty: Punch a poor person.
    11. Re:Not programming semantics, but the coder by T.E.D. · · Score: 1

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      Back when I was coding for a NASA job, we used to jokingly refer to code like this as a "cosmic ray check". I think there were memory tests purposely doing stuff like that which got carried out at idle. But if you did it yourself, its ridicule time...

    12. Re:Not programming semantics, but the coder by Grishnakh · · Score: 1

      Even better is having an "Undo" button (or in the case of a forum like this, an "Edit" button).

      Computers have had "undo" functionality for decades now, because even the smartest people make hasty mistakes all the time. There's zero technical reason why an "undo" function can't be added to almost any software system, except for purely idiotic ideological reasons.

    13. Re:Not programming semantics, but the coder by geantvert · · Score: 2

      To be honest, this is something I would also do on slightly more complex sequence of if-then-else-if that are supposed to try all possibilities. Similarly, I always try to enforce the 'default:' on switch statement even if I know that all possible values are tested.

      That may be unnecessary at the time I write the code but that can save my ass if someone decides to make a small 'harmless' change in a few months or years.

      The funny thing is that in C++, it is actually possible to reach the final 'else' assuming that 'p' is not a pointer but of a type that overloads 'operator bool' and 'operator !'.

    14. Re:Not programming semantics, but the coder by c · · Score: 1

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      Compiler bugs have a way of making you question your sanity, and you never completely regain the trust; I can only imagine the sort of nasty bug that led to him adopting that behaviour.

      --
      Log in or piss off.
    15. Re:Not programming semantics, but the coder by tnk1 · · Score: 1

      I believe there is a wooosh sound I just heard.

    16. Re:Not programming semantics, but the coder by Cederic · · Score: 1

      No, just the good ones.

    17. Re:Not programming semantics, but the coder by luis_a_espinal · · Score: 1

      Reminds me of a friend of mine who used to check if a pointer was NULL, then if it was not and finally for other cases:

      if(!p) { ... } else if(p) { ... } else { ... }

      His reasoning: the compiler could have a bug and this way you would catch that bug.

      Holy mother of Baal. How would a reasonable compiler would had a bug on that???? I've seen compiler bugs (mostly on floating point arithmetic), A very, very, very rare type of thing. Someone who think there is a reasonable expectation that the compiler would fuck up something so basic, I would put that person in the same category as the "Jade Helm" conspiracy nuts!

    18. Re:Not programming semantics, but the coder by Tablizer · · Score: 1

      His reasoning [for the long way]: the compiler could have a bug and this way you would catch that bug.

      I had a somewhat similar experience where the chief coder forbid comments in database query code because the compiler allows certain optimization hints in comments, and once a comment was mistaken for such by the compiler and created a really slow query that took a while to troubleshoot. Therefore, he forbade ALL query comments.

      I tried to argue that the cost of no comments was greater in general than an occasional optimization mistake, and that if the small set of query coders simply learns what not to put in comments, the risk is small.

      But, he accused me of being argumentative so I gave in and did it the stupid way. Debate on something as important as comments shouldn't be dismissed. He came from the military and believed hierarchical yes-manning was the "proper way". That's probably why they order $500 hammers.

    19. Re:Not programming semantics, but the coder by edtice1559 · · Score: 1

      If the value of the pointer could change in the first block, it's actually possible to execute the third one.

    20. Re:Not programming semantics, but the coder by edtice1559 · · Score: 1

      p doesn't have to be volatile here, only the possibility of it changing in the first block!

    21. Re:Not programming semantics, but the coder by wwalker · · Score: 1

      That's why I never write C code. The compiler could have a bug. Assembler all the way!

    22. Re:Not programming semantics, but the coder by HiThere · · Score: 1

      I frequently wish there were some decent way to do tri-state logic. Possibly because my original language was FortranIV which didn't have a logical if, only the tri-state arithmetic if. But there's no variable type that's good for storing tri-state variables. (Yeah, I could code it for byte, but that always feels like such a waste.) And what I really want is a suite of tri-state operations.

      As a compromise I usually substitute "yes, no, maybe, error", (in some order), but often either "maybe" or "error" is unreasonable.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    23. Re:Not programming semantics, but the coder by HiThere · · Score: 1

      Compiler bugs are one thing, but I once ran on a computer that had occasional transient memory errors. Just *TRY* to track that one down. The only thing I could do was try running the program multiple times...and we paid for time by the second.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    24. Re:Not programming semantics, but the coder by HiThere · · Score: 1

      No. The $500 hammer was because the vendor didn't want to do the paperwork to sell just one hammer, and the purchaser wasn't footing the bill. So the vendor charged enough to make it worth his while to do the paperwork.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    25. Re:Not programming semantics, but the coder by Garfong · · Score: 1

      I used to think that too, but then I learned assemblers and even machine code can have bugs. Now I write all my software on the cloud!

    26. Re:Not programming semantics, but the coder by grcumb · · Score: 4, Funny

      Even better is having an "Undo" button (or in the case of a forum like this, an "Edit" button).

      The reason for not having UNDO should be obvious:

      Someone writes a post saying, 'Bieber is such a dick! Post below if you agree.' Hundreds do.

      Then the OP edits the post to read, 'Dick tastes great! Post below if you agree.'

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    27. Re:Not programming semantics, but the coder by Khashishi · · Score: 1

      That's why a reasonable forum will show:
      'Dick tastes great! Post below if you agree.'
      Edited 1 time on 2 Nov 2015 at 15:20 UTC

    28. Re:Not programming semantics, but the coder by swillden · · Score: 1

      p doesn't have to be volatile here, only the possibility of it changing in the first block!

      No, if the first block is executed, neither of the others will be, regardless of what happens in that block.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    29. Re:Not programming semantics, but the coder by Grishnakh · · Score: 1

      Every well-designed forum, as another poster noted here, shows explicitly when a most was modified.

      In addition, if the first poster can edit their post, the responders can also edit theirs to match, or delete theirs.

      Also, there's always the compromise position, which is to only allow editing within a certain time period after posting. Even if it's only a few minutes, that would be sufficient for most cases where someone posted too hastily.

    30. Re:Not programming semantics, but the coder by Grishnakh · · Score: 1

      You must be talking about another forum. Slashdot doesn't send replies to your comments to your email. It sends a notification that you got a reply, but not the text of the reply.

    31. Re:Not programming semantics, but the coder by gweihir · · Score: 1

      Indeed. Completely unreadable. That is an accident waiting to happen. Or an opportunity to slide in a backdoor. In fact, the code is so bad I consider it a real possibility it was a test for the second thing. (I do not know the involved people though, it may also just have been stupidity.)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    32. Re:Not programming semantics, but the coder by goose-incarnated · · Score: 1

      That's why a reasonable forum will show: 'Dick tastes great! Post below if you agree.' Edited 1 time on 2 Nov 2015 at 15:20 UTC

      Doesn't help. No one reads in chronological order, everyone reads in the order it is presented.

      --
      I'm a minority race. Save your vitriol for white people.
    33. Re:Not programming semantics, but the coder by serviscope_minor · · Score: 1

      The funny thing is that in C++, it is actually possible to reach the final 'else' assuming that 'p' is not a pointer but of a type that overloads 'operator bool' and 'operator !'.

      Try writing it in C with p as a float and p=NaN. You'll get the same result you're complaining about from C++.

      --
      SJW n. One who posts facts.
    34. Re:Not programming semantics, but the coder by cdrudge · · Score: 1

      Doesn't seem to be a problem on most forum software out there, Facebook, Discus, etc. Even if it only let you edit your post for 5-15 minutes would go a extremely long way of fixing one major missing feature.

    35. Re:Not programming semantics, but the coder by toddestan · · Score: 1

      With C99, there is something kind of like that with the 'restrict' keyword. But it's only for pointers, and really just tells the compiler that the pointer won't be aliased.

  3. Re: Not saying I disagree with Torvalds by Anonymous Coward · · Score: 5, Informative

    It's literally just a few rants out of thousands of friendly messages per year - and Linus only rants if crappy code comes from someone who is trusted by Linus (such as the networking maintainer here) and who should really know better.

  4. Title of his biography? by willworkforbeer · · Score: 1

    Linus Rants.

    --
    Pretending this is my office full of bitter coworkers..
    1. Re:Title of his biography? by willworkforbeer · · Score: 1

      Linus Rants.

      I would honestly love to see a biography that was based around his rants. It'd be an awesome read, I'm sure.

      I would honestly love to see a biography that was based around his rants. It'd be an awesome read, I'm sure.

      True enough. Besides, there's not enough material for a book, "Linus Calmly & Respectfully Discusses."

      --
      Pretending this is my office full of bitter coworkers..
    2. Re:Title of his biography? by fisted · · Score: 1

      Stop repeating shit you overhear elsewhere and maybe actually read the LKML for a while. It would make you appear much less stupid.

    3. Re:Title of his biography? by Zaiff+Urgulbunger · · Score: 1

      Linus Rants.

      I would honestly love to see a biography that was based around his rants. It'd be an awesome read, I'm sure.

      "A Torrent of Tirades" surely?

    4. Re:Title of his biography? by willworkforbeer · · Score: 1

      Stop repeating shit you overhear elsewhere and maybe actually read the LKML for a while. It would make you appear much less stupid.

      I'm comfortable in my moron status. Feel all better now?
      But that doesn't change the negative effect on project contributors caused by treating them like human garbage. Some may disagree, and perhaps they suffer from a similar rage-based egocentric personality disorder. Life's too short to work with them on purpose.

      There are other ways to lead, and better ways to promote excellence in a group. "Asshole-centric Leadership-by-Insult" is a non-starter, possibly a non-sequitur, for many.

      --
      Pretending this is my office full of bitter coworkers..
    5. Re:Title of his biography? by fisted · · Score: 1

      Good grief.

  5. Not many people could get away with saying that... by Anonymous Coward · · Score: 1

    Having read his rant (I know, I know) and agreeing with the points he is making, what struck me is that many programmers on the receiving side of that would have tried to imply that Linus isn't smart enough to understand their work of art.

    Obviously, that doesn't work directed at Linus.

  6. Probably done by a C++ programmer. by Anonymous Coward · · Score: 1, Funny

    They tend to write unreadable code.

  7. GOOD. He's doing his job by Anonymous Coward · · Score: 3, Insightful

    Linus is doing his job, making sure that the Linux kernel code continues to maintain quality and supportability. I read the thread, the code is shit, and Linus called it out. I don't care about his language or the tone of his message. He's right. Linus could stomp kittens flat and I wouldn't care, as long as that kitten-stomping was in the pursuit of making the Linux kernel better. Enough of this fake controversy about Linus and his communication style, already.

    1. Re:GOOD. He's doing his job by plover · · Score: 2

      Linus could stomp kittens flat and I wouldn't care, as long as that kitten-stomping was in the pursuit of making the Linux kernel better.

      To be fair, next Thursday is Finland's national Kitten Stomping Day, so it might not be purely in pursuit of improving the kernel.

      --
      John
    2. Re:GOOD. He's doing his job by mrchaotica · · Score: 1

      Put your Viking helmet on! Spread that mayonnaise on the lawn!

      Oh wait, you said kittens, not weasels...

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    3. Re:GOOD. He's doing his job by jcochran · · Score: 5, Insightful

      Nope.

      Frankly, the purpose of the rant was to cause that piece of excrement to be replaced with something reasonable AND to give notice to other programmers that that kind of sloppy shit is not acceptable. As for those who complain that his rant was unnecessary and hurt someone's feelings, I have to ask you "Who submitted the sloppy code?" I don't see any names in the rant. Yes, I know that one could take a look at the commit logs to determine who it was, but in all honestly, I seriously doubt that anyone will. So the idiot who committed that piece of shit wasn't called out by name or publically humiliated.

    4. Re:GOOD. He's doing his job by TuringTest · · Score: 1

      I'm pretty sure much less people would have heard about the incident.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    5. Re:GOOD. He's doing his job by DNS-and-BIND · · Score: 1

      No it wouldn't. I've heard this referred to as a "precision F-strike" and it refers to an ordinarily mild-mannered man losing his shit and screaming for a moment in order to make his point crystal-clear for everyone. When all you do is say fuck/shit/bitch all day long, you can't make an impression this way, but when you do it once or twice a year, people remember why you did it.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    6. Re:GOOD. He's doing his job by Austerity+Empowers · · Score: 1

      Kitten stomping sounds unnecessarily cruel. However exploding kittens has a beat we can dance to.

    7. Re:GOOD. He's doing his job by radarskiy · · Score: 1

      As you note, that requires an ordinarily mild-mannered man. However, you fail to note that in this context all we have is Linus.

    8. Re:GOOD. He's doing his job by plover · · Score: 1

      OFF TOPIC: I was thinking weasels, too!

      It was also kind of weird typing "kitten stomping day" into google (fearing there might already be one) and guessing at which kinds of watch lists I've no doubt been added to as a result.

      --
      John
    9. Re:GOOD. He's doing his job by Marginal+Coward · · Score: 1

      I once heard that a sudden change of personality is taken by mental health professionals as a strong sign of mental illness. In that vein, any sudden use of polite constructive criticism in place of his usual ranting and cursing could be construed as a strong indication that he had really gone off his nut. So that would actually be the most unkindest cut of all.

    10. Re:GOOD. He's doing his job by gweihir · · Score: 1

      Many people have completely lost sight of what is important these days. It is pathetic. Linus is entrusted with keeping the most used OS kernel working. Any way he manages to do this is acceptable.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    11. Re:GOOD. He's doing his job by bingoUV · · Score: 1

      If he suddenly stops ranting, people wouldn't think such code is unacceptable.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    12. Re:GOOD. He's doing his job by goose-incarnated · · Score: 1

      If Linus has simply said "do it this way, it's clearer, and the custom stuff caused build problems", wouldn't that have had the same effect?

      No. That sends the message "I'm willing to fix your fuckups". The message he (apparently) wanted to send was "You fucked up and now I shall spread that pain around."

      The most people-efficient places (armed forces, ER's, etc) have a chain of command such that a superior can call you out in almost any way and in any language that they feel like, and you have no recourse but to suck it up and try to fuck up less next time. It's a proven method :-)

      --
      I'm a minority race. Save your vitriol for white people.
    13. Re:GOOD. He's doing his job by goose-incarnated · · Score: 1

      Considering that he has been ranting for years, two decades in fact, the claim that he needs to do it to give notice to others that such code isn't acceptable doesn't seem to stand up to scrutiny. Clearly the last two decades of ranting did not prevent this submission being made.

      It is precisely because he hardly ever does it that it makes news when he does. If he threw verbal abuse regularly it wouldn't be news when he does it the next time. It's news because roughly 1 in every thousand of his "corrections" is a rant.

      --
      I'm a minority race. Save your vitriol for white people.
  8. It's Justified by MagickalMyst · · Score: 1, Troll

    So he rants and raves and bitches and moans... It shows that he is passionate and serious about what he does.

    Now, if only Bill Gates would learn to rant and rave passionately about the quality of his product - instead of counting his coins and pretending to be a philanthropist.

    --
    Political correctness is really just herd psychology pushed by insecure people who desperately seek social conformity.
  9. I wonder if... by m.alessandrini · · Score: 2

    ... all the other people over there could use such a language, even for "legitimate" reasons, and get away with it.

  10. Have a Snickers Linus by CMOS4081 · · Score: 5, Funny

    You turn into Steve Jobs when you are hungry.

    1. Re:Have a Snickers Linus by Marginal+Coward · · Score: 1

      Looks like The Great Pumpkin never showed up - again...

  11. Linus is right. by Anonymous Coward · · Score: 5, Insightful

    It's horrible, horrible code.

    I'm not a C developer, but I know C and have been developing for 20+ years in various other C like languages. The thing Linus is ranting against is absolutely true. The first example is very clear what it does. Assign a variable. The second (new) code is fucked up, and completely unclear what's going on. Check some kind of boundary condition, then some weird shit going on that I don't understand?

    The 3rd example is back to clarity. Check some boundary conditions, then assign the variable. I'd have never guessed the 2nd example does that without reading the 3rd.

    I also happen to agree with Linus about not "toning it down". There's other ways to manage the kind of stupid bullshit that goes on in software development, but one effective way is going apeshit over shit like this. Linus's way isn't the ONLY way, but it does work. Developers tend to be filled with prima-donnas that think everything they produce is gods gift to coding. Sometimes the only way to get through is just yelling at the top of your lungs about shitty fucking code.

    We live in an increasingly hyper-sensitive society where some people want to control speech in a fascist way. I'm so tired of all this bullshit about how it's "disrespectful to women", or other such crap. That seems to be the garbage dump reason for everything someone doesn't like that doesn't fit somewhere else. Just claim rascism, sexism, etc, even when it totally doesn't fit.

    Oh, and please stop with the "The LEFT is trying to silence us.. blah blah blah" nonsense. This isn't "The Left" any more than the westboro babtist church are christians, or the nutjobs that open carry guns into Starbucks is "The Right". All of those are just radical elements of the political divide that have inserted themseves where they get the least criticism for their crazy ideas.

    1. Re:Linus is right. by RobinH · · Score: 2

      ...also, I'm not saying that Linus was out of line here. He didn't specifically attack the programmer, just the code, which is great. The fact that he used a few swear words is not a big deal. It was fucking terrible code.

      --
      "I have never let my schooling interfere with my education." - Mark Twain
    2. Re:Linus is right. by Dog-Cow · · Score: 1

      When did acting "professionally" come to mean acting against ones nature? Why is it "professional" for Linus not to swear?

    3. Re:Linus is right. by Polizei · · Score: 4, Informative

      Not to state the obvious, but here's the definition of `overflow_ubus`

      static inline bool overflow_usub(unsigned int a, unsigned int b,
      unsigned int *res)
      {
      *res = a - b;
      return *res > a ? true : false;
      }


      So the 2 conditionals from the patch are completely idiotic and wrong.
      `overflow_ubus` not only makes an unnecessary assignment to `mtu`, but does a check after that assignment, and then you need another check for it outside of `overflow_ubus`.

      In general, the proposed patch conditionals could be rewritten as

      unsigned int oldmtu = mtu;
      mtu -= hlen + sizeof(struct frag_hdr);
      if (mtu > oldmtu || mtu <= 7)
      goto fail_toobig;


      Now that's ugly!

    4. Re:Linus is right. by 91degrees · · Score: 1

      I've often wished that languages other than assembler would support an overflow flag.

      I guess the probable is working out semantics for something that does have very limited use.

    5. Re:Linus is right. by AmiMoJo · · Score: 1, Insightful

      Why is that so hard to understand?

      Screw it, I've got karma to burn.

      Some people feel that they should be able to say anything, and as long as it is basically correct everyone else should be fine with it. The language used is irrelevant, or nearly so. People should not be offended by words, and someone else's offence is no reason not to say something, and any consequences are a violation of freedom of speech. Even worse, anyone who does complain is a weakling pussy who should just get the hell out, because this is real men being real men here.

      Of course, they are more diplomatic in the office, or maybe they are just unemployed. But this must be resisted, it's the slow creep of feminism and pussification into everything, our children will grow up to be sissies... Won't somebody think of the children?!

      For me it's really simple. Freedom of speech is not freedom from consequences. If you are not willing to be civil, face the consequences. In the case of Linus, it means fewer people will contribute to the kernel he maintains. Clearly he judges the benefits of being extremely harsh with contributors to be greater than the benefits of being a bit nicer (but still firm). Of course, that's up to him.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    6. Re:Linus is right. by ArsonSmith · · Score: 3, Interesting

      Much more understandable, ignored and forgotten about. Fuck that, at least his way is getting some attention which may get the shit fixed.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    7. Re:Linus is right. by Procrasti · · Score: 2

      > I don't see why being professional is so complicated:

      Why is everyone trying to change linus? He's the god that gave us this fucking kernel, but everyone thinks they have the right to change how he communicates with the people he works with on his kernel?

      If you don't like linus, or the way he communicates, fine... don't listen to him, ignore him, don't work with him, go make your own kernel and mailing lists etc... why does every PC idiot out there think they have the right to tell others how to communicate... especially someone who's communication and technical style and ability have created one of free softwares best examples.

    8. Re:Linus is right. by CrashNBrn · · Score: 1
      What you are talking about has nothing to do with sic "professional", perhaps you meant polite and politically correct.

      but "you're a fucking moron and my gramma is smarter than you" is not OK (for several reasons).

      What reasons? You're a cow and if someone doesn't massage your feelings it wont be nice? How about just replying back, to Linus, "I know right! I AAAAM a fucking moron, but I'm pretty sure I'm smarter than your grandma..." No best not to do that, best cry about someone being so mean, and complain to HR. Don't stand up for yourself though, we wouldn't want that.

      professional [prfeSH()n()l/]
      adjective: professional
      1. of, relating to, or connected with a profession.
      2.(of a person) engaged in a specified activity as one's main paid occupation rather than as a pastime.
      having or showing the skill appropriate to a professional person; competent or skillful.
      noun: professional; plural noun: professionals
      1. a person engaged or qualified in a profession.

    9. Re: Linus is right. by Bing+Tsher+E · · Score: 1

      Not hardly. Linux might possibly fork after Linus passes away. But open source code is convergent: it keeps getting better as the code base grows. So the root code base at the point of any fork will be broad based and well designed, so it won't die as an effect of being forked.

    10. Re:Linus is right. by jeremyp · · Score: 1

      Some languages do. The standard arithmetic operators in Swift, for example throw fatal errors if they overflow (there are "overflow allowed" versions of the operators too).

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    11. Re:Linus is right. by PRMan · · Score: 1

      Given Linus' experience, which I can assume none of us share, what if the nice way gets you 200 bad submissions a week but Linus' way gets you 2. You'd start doing it yourself to cut down all the nonsense check-ins.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    12. Re:Linus is right. by PRMan · · Score: 1

      Because professional businesses take everyone's contributions without tearing people down, but instead they build them up. This results in the best, most skilled workforce.

      But Linus has only volunteers and the only way to keep the inmates from overrunning the asylum is to act this way.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    13. Re:Linus is right. by Pinky's+Brain · · Score: 1

      It's perfectly possible that his brash attitude attracts people, or at least people that matter.

    14. Re:Linus is right. by RobinH · · Score: 1

      I'm hardly trying to change Linus (as I said, I don't think he did anything wrong), but the GP seems to think this is about the right to call someone names when they make a mistake (something Linus specifically did *not* do).

      --
      "I have never let my schooling interfere with my education." - Mark Twain
    15. Re:Linus is right. by Rinikusu · · Score: 1

      I don't give a fuck what you think.

      --
      If you were me, you'd be good lookin'. - six string samurai
    16. Re:Linus is right. by cfalcon · · Score: 1

      Throwing an error is likely going to be handled different from checking an overflow flag, because you have to "catch" it, right?

      On most (all these days?) processors, you get a carry flag and an overflow flag to reflect the state of the thing you just did. There's a lot of cases where the correct thing is to check the overflow flag, which you can't do in most high level languages, C included. The options are to inline assembler it if it matters that much, or to go through hoops, and the latter option is almost always chosen in practice.

    17. Re:Linus is right. by 0xdeadbeef · · Score: 1

      Stupidity has to hurt, or people don't learn. Better it happen this way then with a bug that compromises billions of devices.

      As the article points out, he didn't call out the author of that code, so they weren't publicly shamed (which, ironically, is the preferred tactic of his critics), but you know they were ashamed, and rightly so.

      Fear of becoming the cause of a Linus rant is part of the quality control of Linux, and it is highly effective.

    18. Re:Linus is right. by jdavidb · · Score: 1

      I'm decidedly not fascist, and I believe in freedom of speech. I don't believe government should regulate it in any way, and I think you should be able to use your press to print what you want.

      But I also believe that an angry outburst is temporary insanity, and in my experience there are very few problems in life that are made better by going temporarily insane. I became a much better problem solver when I took effective anger management and learned to stop having angry outbursts in response to my problems. By learning to avoid the habit of angry outbursts, my brain literally grew new connections for new problem solving habits instead of putting its energy into the temporary insanity habit. People started to like me a lot better, too.

      I enjoy a rageful, disrespectful rant as much as the next guy, and I support your right to have one. But I don't ever stick around to listen when they are directed at me any more, and my life is so much better since I learned to stop having them myself.

    19. Re:Linus is right. by 91degrees · · Score: 1

      Useful, but a fatal error feels a bit heavy handed.

      An obvious application to me would be a bigint library where, when you have an overflow, you simply want to add one to the next element.

    20. Re:Linus is right. by squiggleslash · · Score: 1

      Absolutely, some people pay big money to professional dominatrices for those kinds of services.

      --
      You are not alone. This is not normal. None of this is normal.
    21. Re:Linus is right. by dinfinity · · Score: 1

      If you are not willing to be civil, face the consequences.

      The discussion is about the consequences, not whether people are ready to face them.

      I've seen first hand that telling somebody things in a 'professional' way allows them to dismiss it and fuck up almost identically the next time. Get angry at them and they sure as hell will remember. Now if you get angry without good reason, they will remember you for being an unreasonable asshole. If you get angry with good reason, they tend to get their shit together because they will try to prevent people from being angry at them when it is demonstrably their fault and something they can reasonably change.

      Anger and strong wording conveys importance very primitively and directly. It is up to the speaker to decide what amount of power should be put into his/her message. I believe this is the thing that most often goes wrong. Things that aren't that important are too often brought as if they are, with the associated amount of verbal and emotional power. In addition to that, the speaker and listener have different associations of how powerful certain words and phrasings are. Fuck is a word that means little to me (dare I say fuck-all), but some people get really offended by it. This is more of a shared responsibility, as both speaker and listener need to garner an understanding of what certain words mean for the other.

      Alternatively, you could approach this from the 'real men' (I prefer 'confident adults') side: in my experience, the people who don't throw a hissyfit about being talked to strongly are definitely the most reliable and capable people, willing to change their ways. These are people who care about the reasoning, not the words. About the function and not the form. The extreme ones are almost completely impervious to and unmoved by any swearing whatsoever. I see that as a huge asset.

    22. Re:Linus is right. by HiThere · · Score: 1

      Even more to the point, if you have just reason and get mad at someone, and they do the same thing again, and you get mad again, they are likely to leave of their own free will. As long as you have more people trying to join your group than you can handle, this will lead to an increasingly skilled group, as the ones who remain will be skilled, and able to learn to avoid repeating stupidities.

      But for best results you've got to be good enough to not get wrong incorrectly, and if (when) you do to be willing to apologize in public.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    23. Re:Linus is right. by GrahamCox · · Score: 1

      So I call:

      if( overflow_usub( a, b, NULL )){...

      whoops.

    24. Re:Linus is right. by SharpFang · · Score: 1

      So we have two typical team development models:

      - A developer of a complex project can, and does use abusive language in case of bad screw-up. If you fucked up, you may expect some bad tongue-lashing. It's clear who screwed up. If they don't improve nevertheless, they are expunged.

      - Nobody on the team is allowed to use abusive language no matter what the situation and how badly the other party fails, and keeps failing; only mild and sensitive criticism is allowed and can be ignored without consequences. Violation of the good behaviour rules regardless of the situation results in disciplinary consequences including expulsion. Blame for project failure is shared equally between members of the team; nobody gets singled out and called out on specific reason for failure; everyone suffers the same consequences, usually related to finances and promotions.

      Are you claiming the former situation will drive more developers away than the latter?

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    25. Re:Linus is right. by SharpFang · · Score: 1

      Some people are willing to cope with co-workers using strong language if it means they don't need to watch their own language every turn and feel safe to joke about forking someone's repository or using dongles, without fear of being fired, their technical merit notwithstanding.

      The "friendly, gentle and safe" environment envisioned by the feminists and the likes turns out to be quite oppressive to a number of professionals, with need to think twice before you choose to speak your mind, lest you offend some sensitive ears and face disciplinary action for violation of code of conduct.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    26. Re:Linus is right. by SharpFang · · Score: 1

      Oh, but what about consequences? If the other party felt offended by your assertions, they can file a complaint and regardless of merit of the argument, the side that (allegedly) offended the other is facing consequences.

      Just try to publish performance comparison at specific technical jobs between male and female employees. No matter how much scientific scrutiny you have applied to accuracy of the comparison, your career has just ended, you sexist swine.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    27. Re:Linus is right. by SharpFang · · Score: 1

      Back in the 1800's people were way more professional/courteous. Then it appeared that common workers want to be considered "people" too (look! How funny, he thinks he's people!) and the 1800's ended with some more or less bloody revolutions.

      Your politeness is not a measure of your professionalism.
      Your politeness is not a measure of your humanity.
      Your politeness is not a measure of your value comparing to other people.

      Your politeness only affects the superficial aesthetic impression you cause. And people, who value others by the superficial aesthetic expression are definitely not professional.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  12. Incorrect headline by Dog-Cow · · Score: 4, Informative

    Not that this will surprise much of anyone, but the headline is wrong. Linus did not rant about C programming semantics. He ranted about a specific C function and the style used to perform a sanity check.

  13. When create the most used operating system by duckintheface · · Score: 1

    on the planet you have, criticize Linus can you.

    --
    "He took a duck in the face at 250 knots." -- William Gibson, Pattern Recognition
    1. Re:When create the most used operating system by Anonymous Coward · · Score: 1

      When create the most used operating system on the planet you have, criticize Linus can you.

      Or, you know, just hit Reply and criticize it. Your choice.

      * And for the love of fuck, please all stop starting posts in the Subject line..

    2. Re:When create the most used operating system by SQLGuru · · Score: 3, Funny

      * And for the love of fuck, please all stop starting posts in the Subject line..

      I never understood why people do that. It's the equivalent of having the first line of your letter be on the outside of the envelope.....or the first line of your e-mail be in the subject line......

      Oh wait --- car analogy required.....
      It's like having the ignition switch located on the hood of your car.

    3. Re:When create the most used operating system by gstoddart · · Score: 4, Interesting

      What the hell do you expect, "Dear Sir"?

      Look, in emails, and all the way through Usenet and frigging dial up BBS systems ... the start of a thread IS the subject line.

      I don't get this bitching about actually using the damned subject line for exactly what they've been used for 30+ years.

      Do you expect some random salutation or other piece of text completely unrelated to the body?

      We don't need a damned car analogy, we need to stop having a bunch of whiny idiots trying to redefine WTF the subject line is there for, and how it's been used for decades.

      --
      Lost at C:>. Found at C.
    4. Re:When create the most used operating system by tepples · · Score: 1

      The problem comes when the comment cannot be understood or <quote>d without its subject. Try to read a comment started in the subject line out loud: "When create the most used operating system, score one by duckintheface on November second at 9:17, on the planet you have, criticize Linus can you."

      A comment subject should summarize the comment to give the reader an idea of whether to expand a comment whose score is between the "abbreviated" and "full" threshold.

      Subject: How popular is your OS?

      When create the most used operating system on the planet you have, criticize Linus can you.

    5. Re:When create the most used operating system by Barsteward · · Score: 1

      i think its about changing the subject line part of the way down the thread instead of starting a new thread

      --
      "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
    6. Re: When create the most used operating system by rickb928 · · Score: 3, Informative

      Do or not do. There is no criticize.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    7. Re:When create the most used operating system by Rakarra · · Score: 1

      Look, in emails, and all the way through Usenet and frigging dial up BBS systems ... the start of a thread IS the subject line.

      Eh, in emails, Usenet, BBS, pretty much every place with separate subject and message, the subject line is the subject. A topic. Not the first half of the first sentence of the message. Those are two different things. Hell "When create the most used operating system" isn't even a full thought. It's almost meaningless without the punchline in the message.

      I personally don't care as much because I read most things on Slashdot in collapsed form, but if I didn't, it'd probably get annoying and old, really fast.

    8. Re:When create the most used operating system by Everything+Else+Was · · Score: 1

      Bingo! Damn right... it's just laziness. The author can't be bothered coming up with a proper subject line. If that's the case, just leave the default "Re: ..." subject.

      --
      My other account has mod points!
    9. Re:When create the most used operating system by msauve · · Score: 1

      "* And for the love of fuck, please all stop starting posts in the Subject line.."

      Linus, is that you?

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
  14. Microaggressions by Anonymous Coward · · Score: 2, Funny

    I have NO IDEA who this Linus guy is, but his microaggressive behavior will not be tolerated in the Open Source community. I doubt he was much of a contributor to Open Source, but we need to ban him as he is creating a toxic environment in my safe space. No big loss.

    1. Re:Microaggressions by mazevedo · · Score: 1

      Bravo! Still laughing!

      --
      mazevedo
  15. Is there a use for overflow_usub? by 91degrees · · Score: 4, Insightful

    Seems that overflow_usub() will always be less readable than a condition then a subtraction. It's a pretty obscure function - searching for it reveals most of the discussion is about this specific patch. It will save an instruction or two with appropriate compilers, by using the JC instruction rather than a CMP/JZ and in really performance critical code this will matter, but most code benefits more from readability than that extra instruction.

    1. Re:Is there a use for overflow_usub? by T.E.D. · · Score: 1

      instruction or two with appropriate compilers, by using the JC instruction rather than a CMP/JZ and in really performance critical code this will matter, but most code benefits more from readability than that extra instruction.

      More to the point, if that single instruction is so all-fired important, fix the dang compiler to recognize that case! Don't uglify the source code.

    2. Re:Is there a use for overflow_usub? by Anonymous Coward · · Score: 3, Informative

      http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0103r0.html

      I guess the compiler developers and the IETC are all just idiots.

      We use these functions in HFT all the time. Too bad it's too "complicated" for kernel developers to understand...

    3. Re:Is there a use for overflow_usub? by PRMan · · Score: 1

      So the guy is trying to save a single opcode on CPUs that typically run billions of opcodes a second? Talk about premature optimization...

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    4. Re:Is there a use for overflow_usub? by 91degrees · · Score: 1

      Ah yes, of course. Because HFT is so broadly useful to society that programming languages should be specifically designed to accommodate it.

      And it's not that it's too complicated. It's that outside of some very specific niches, counting individual instructions just isn't worth the extra complexity for less readable code. Quite frankly I'm surprised it is worth it even for HFT.

    5. Re:Is there a use for overflow_usub? by GabeGhearing · · Score: 1

      instruction or two with appropriate compilers, by using the JC instruction rather than a CMP/JZ and in really performance critical code this will matter, but most code benefits more from readability than that extra instruction.

      More to the point, if that single instruction is so all-fired important, fix the dang compiler to recognize that case! Don't uglify the source code.

      This builtin IS the fix. Most architectures have a register that flips when overflow happens and this builtin is how you can agnostically access it. http://stackoverflow.com/quest...

      The only real problem with the original code is that it's hard to read and the performance benefits better be worth making the code more cumbersome. If the code is in a loop that runs millions of times, then Linus may be wrong here(I didn't look deep into this).

    6. Re:Is there a use for overflow_usub? by shutdown+-p+now · · Score: 1

      HFT may not be useful to society, but it's irrelevant here. HFT is very useful for the people who do it, and who therefore hire developers to write code to do it better. And those people don't look kindly at overflow bugs that might cost them a fortune.

      The fact is, integer overflow is a constant source of bugs, eclipsed only by buffer overflow. Adding things to programming languages that encourage safe handling of overflow is a good thing.

    7. Re:Is there a use for overflow_usub? by 91degrees · · Score: 1

      The only real problem with the original code is that it's hard to read and the performance benefits better be worth making the code more cumbersome. If the code is in a loop that runs millions of times, then Linus may be wrong here(I didn't look deep into this).

      It's network code. I presume "mtu" is maximum transfer unit and "hlen" is header length. So this is something that will be done at most for every packet (this is the maximum. It's possible that it's only called once). Either way, while you may want to be pretty efficient here, we're not really at a cycle counting levels of speed requirements.

    8. Re:Is there a use for overflow_usub? by rcase5 · · Score: 1

      It will save an instruction or two with appropriate compilers, by using the JC instruction rather than a CMP/JZ and in really performance critical code this will matter...

      Not necessarily. Just because a snippet of machine code contains fewer instructions doesn't mean it will be faster. Case in point, (and I apologize in advance because this was 25 years ago and it's been a while since I've delved into Assembly code, so I may not remember the fine details exactly) the 80486 (I think) introduced an instruction which handled hand-off of a function call. This meant that what used to have to be done with 5 instructions could be done with just one. The problem was that the new instruction took 35 clock ticks to perform it's magic while the 5 instructions took 10. This is why Microsoft compilers at the time stayed with the old way of passing off to a function call, but Borland (the other big player in compilers at the time) went to the new way. No surprise, Microsoft-generated code was faster than Borland-generated code.

  16. Re:Linux is for Cows by frup · · Score: 1, Funny

    apt-get moo
                     (__)
                     (oo)
               /------\/
              / |    ||
             *  /\---/\
                ~~   ~~
    ..."Have you mooed today?"...

  17. Anyone have a link to source code? by trout007 · · Score: 1

    Just curious what it looks like in context.

    --
    I love Jesus, except for his foreign policy.
    1. Re:Anyone have a link to source code? by Anonymous Coward · · Score: 1
      Here's the commit where they revert the change, and the commit comment for your reading pleasure:

      Revert "Merge branch 'ipv6-overflow-arith'"
      Linus dislikes these changes. To not hold up the net-merge let's revert
      it for now and fix the bug like Linus suggested.

      This reverts commit ec3661b, reversing
      changes made to c80dbe0.

      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: David S. Miller <davem@davemloft.net>

      -- Walking The Walk (posting anon so I can keep moderating this story)

    2. Re:Anyone have a link to source code? by Dog-Cow · · Score: 1

      Here. There's lots of source code available.

  18. Re:Not the case. by halivar · · Score: 1

    I bet assembly gives you an aneurysm.

  19. Re:Linux is for Cows by Schmorgluck · · Score: 3, Funny

    Oooh, good! That joke was getting old. Nice way to milk it.

    --
    There's nothing like $HOME
  20. Wow, that does look terrible. by Ihlosi · · Score: 1
    Cramming a simple conditional into a weird, side-effect-producing function is just horrible.

    And next thing, someone who doesn't know about short circuit evaluation in C will swap the two conditionals.

    1. Re:Wow, that does look terrible. by fisted · · Score: 1

      someone who doesn't know about short circuit evaluation in C will

      be unlikely to write kernel code, much less submit upstream

    2. Re:Wow, that does look terrible. by fisted · · Score: 1

      your meds, apk, your meds.

    3. Re:Wow, that does look terrible. by Ihlosi · · Score: 1
      be unlikely to write kernel code, much less submit upstream

      The ignorance can be temporary, caused by simple things like lack of caffeine or lack of sleep.

  21. goto is perfectly fine here. by Ihlosi · · Score: 1
    ... while ignoring that ugly "goto".

    It's not ugly if it's used in this context (usually involving breaking out of several levels of loops/conditionals, and/or go to one specific error handling code snippet from several points in the function).

    1. Re:goto is perfectly fine here. by Ihlosi · · Score: 1
      In 20 years of c/c++ programming, I've never once used goto.

      Neither have I, but I haven't needed lots of error-handling code or breaking out of deeply-nested loops/conditionals. I can see the usefulness and simplicity of a goto there, though.

      Also, in C++ you'd probably use try/catch blocks for a similar purpose.

    2. Re:goto is perfectly fine here. by david_thornley · · Score: 1

      In C++, ideally the cleanup is in the destructors, In most cases, I'd use exceptions for error handling, but in something like the kernel that may well not be a good idea.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    3. Re:goto is perfectly fine here. by coats · · Score: 3, Informative
      Donald Knuth agrees with you, by the way.

      Part of the reason is this: while it's provable that you can use ifs and whiles to eliminate all gotos, the proof also demonstrates that code-length may grow exponentially in the number of gotos eliminated.

      --
      "My opinions are my own, and I've got *lots* of them!"
    4. Re:goto is perfectly fine here. by cfalcon · · Score: 1

      > In 20 years of c/c++ programming, I've never once used goto.

      It's possible you've never run into a situation where it's the better way to code it. It's also possible that you have and did it in a lesser fashion.

    5. Re:goto is perfectly fine here. by cfalcon · · Score: 1

      It also depends on how often you expect the failure case to occur. If catch fires a reasonable amount in code where performance matters, that can be bad. You can still use goto in C++, of course.

    6. Re:goto is perfectly fine here. by gweihir · · Score: 1

      Very, very true. Also, the original statements by Djikstra have to be seen in context: Back then people used "goto" and "if" for all looping constructs, creating horrible messes.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  22. Re:Not saying I disagree with Torvalds by GuB-42 · · Score: 3, Interesting

    This is someone you wouldn't want to work for.

    Actually, I don't mind working with people who rant often, as long as they have good reason to do so.
    In fact I'd rather work with people yelling at me about how shitty my code is and telling me why than a whole pasture of cows mooing about how good I am no matter what I do.

  23. Disagree with the language used... by mseeger · · Score: 2, Insightful

    Two points:

    a) I agree with him on the code, but I am not a competent coder myself.

    b) I disagree with the form of communication and that is an area where I am competent.

    As Linus expects others to write proper code, I expect people to conduct proper communication.

    Same rules apply: If it does not improve the flow of information, it does not belong in the email. Some swearwords don't bring any points across that could not be covered by "professional english" subset ;-). I think "sh*t" and "crap" may be considered validly applied here. But beyond that, it generates an unnecessary conflict at rc7 time. ï

    1. Re:Disagree with the language used... by mseeger · · Score: 1

      Look in the mail Linus wrote ;-).

    2. Re:Disagree with the language used... by mseeger · · Score: 1

      As I wrote, i don't complain about "sh*t" or "crap".

      But he writes the author is "incompetent and out to lunch" and accuses him to do things for "compiler-masturbation".

      My main point is: this serves no purpose. It does not make anything clearer or help the discussion (rather to the contrary).

      I don't want to have every sentence corrected by ten people and checked for gluten ;-). I just think, even a genius can afford a bare minimum of civility.

    3. Re:Disagree with the language used... by phantomfive · · Score: 1

      b) I disagree with the form of communication and that is an area where I am competent

      OK, so here's a serious question. The reason Linus communicated in such a rude way was to prevent people from using those functions ever again in his codebase, and I think it will probably work. What would you have done to reach that same goal?

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Disagree with the language used... by mseeger · · Score: 1

      What I would have written (example):

      "and nobody will think that the above is (a) legible (b) efficient (even with the magical compiler support) or (c) particularly safe."

      "A shiny function that we have never ever needed anywhere else, and that is just used as showcase for a compiler feature."

      The sentence "And itâ(TM)s a f*cking bad excuse for that braindamage" would have been scratched completely by me, as it does not contain any message.

    5. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      Your response fails to communicate two emotions Linus is trying to get across. Anger and shame. Now, you may disagree that Linus should be communicating that he is angry, or that the other person should feel shame, but this is clearly what he is doing and your translation misses this content.

    6. Re:Disagree with the language used... by mseeger · · Score: 1

      If he wishes to convey that, he can write "I am angry." But I would advise against that.

      Because there is another point, that one should be aware of. There is a huge "power differential" between the sender and the recipient of the mail.

      If I were to say "Puff_Of_Hot_Air posts a lot of cr*p online" this might not be nice, but it would not impact his life much (but perhaps our relationship). Our levels of "power" are roughly same.

      Should I write the same about an employee of my company, this might make that person fear for his job. That is because in that context, I wield a lot of power. The effect is there, even if I do not intend to do any harm.

      Linus is a very powerful person. Not formalized power, but probably more powerful than the average politician. Others may socially or otherwise harm the person dissed in that post. Not because Linus wants it to be done, but just because those persons admire Linus. There are probably a lot of admirers in the area the recipient is working in.

      The excessive use of such explicit language will lower the barrier that prevents others from taking a negative action.ï

    7. Re:Disagree with the language used... by T.E.D. · · Score: 1

      As a moderator on a StackExchange stack, I spend an inordinate amount of my free time deleting posts very much like Linus'. Regardless of whether there was a legit point in there, or nothing beyond being insulting, we have a "Be Nice" imperative, and content that can't manage to flop itself over that eensy little bar of civility will get toasted.

      All this defense of the insults, well I see more of my free time flashing before my eyes.

    8. Re:Disagree with the language used... by nomadic · · Score: 1

      "The reason Linus communicated in such a rude way was to prevent people from using those functions ever again in his codebase, and I think it will probably work."

      Why do you think it would probably work? Over-the-top insults and tantrums typically don't work; it creates resistance and anger, and is a very unproductive way to deal with things. It kills loyalty, it saps motivation, and it causes resentment. More importantly in terms of whether the mistake is going to be made again, it makes it more likely that it will happen again than if a softer approach had been taken, due to cognitive dissonance. The recipient of this kind of attack is more likely to think that the attacker is wrong in some way; the brain looks for a reason, and will probably find one. If the complaint had been conveyed more gently, in an explanatory rather than an accusatory claim, the coder would be far more likely to realize the error and not make it again.

      Also just as a practical matter, it's not a great survival trait; one of these days Linus might very well mouth off to the wrong person and get a broken jaw in return.

    9. Re:Disagree with the language used... by mjr167 · · Score: 1

      The whole argument that it is acceptable for Linus to convey his anger and shame seems to boil down to developers should "suck it up" and detach emotionally from their code. If that is true, should not Linus also detach emotionally? Or is he the only one who gets emotions?

      Can I talk to my kids the way Linus talks to developers? Can your kids talk to you that way? If you don't want your kids talking that way, why is it ok for you or Linus? Anytime you find a situation where there are different standards for different groups, you should ask yourself why. Sometimes the double standard is appropriate. Sometimes it's not. We should still take a moment to ask ourselves which standard is right and is the difference valid.

    10. Re:Disagree with the language used... by nine-times · · Score: 1

      Same rules apply: If it does not improve the flow of information, it does not belong in the email. Some swearwords don't bring any points across that could not be covered by "professional english" subset ;-).

      I do think there's a little complexity here, and I'm not sure exactly how it works in this situation. What I have in mind is that, honestly, I might swear and say "unprofessional" things when communicating with coworkers. If I'm talking to someone who I work closely with on a daily basis, it's possible that I'd see something I thought was stupid and say, "Oh my god, that's so f#*^king stupid. What the hell was that guy thinking. If he does that again, I'm going to put my foot up his a$%." But that's in speaking to a guy that I know well, that I work with every day. I wouldn't say that on my company's twitter account.

      So I do wonder, is there some disconnect in understanding what this mailing list is? I don't know, just putting the idea out there. Maybe Torvalds thinks he's talking to coworkers, and the rest of us are reading it as though it's a professional public communication.

    11. Re:Disagree with the language used... by Cederic · · Score: 1

      What the fuck is wrong with swearing?

      It's just words. Shit, it's not even targeted - unlike your personal attack on Torvalds.

      I'd rather employ someone competent with a full range of vocabulary than some fuckwit that thinks swearing is somehow a bad thing.

    12. Re:Disagree with the language used... by mseeger · · Score: 1

      If you do this and say "You moron" to your coworker, you both are on the same power level. But probably nobody except him will ever hear it and he might not even take it serious (because he knows you).

      But now imagine that the boss of your boss of your boss says the same about you on an official company meeting in front of all other employees. Even if meant as joke, as most people don't know him personally, it will be taken seriously.

      Linus is a very powerful person. Though he did not try to achieve that, he wields an incredible amount of power. He must be very careful wielding it.

      There is a reasons that medieval kings usually spoke most polite. Because when Henry II once uttered "Who will rid me of this troublesome priest?", Thomas Beckett died. Probably Henry did not intend to command murder (historians are divided about that), but it happened nonetheless.

      Luckily we live in better times and probably (and I am sorry to have to include that qualifier) nobody will kill anyone else due to a diss by Linus. But if Linus shows anger, this may cost people their job and career.

    13. Re:Disagree with the language used... by bsolar · · Score: 2

      As Linus expects others to write proper code, I expect people to conduct proper communication.

      Linus expects proper code from those who contribute to his project: what you do in your own project is your business. Similarly, you are free to expect people to conduct "proper communication" within the communities *you* control, but not to force your expectations to communities *other people* control.

    14. Re:Disagree with the language used... by mseeger · · Score: 1

      If I wish to scare a recruit sufficiently to obey me and charge into near certain death at some point in the future, I may chose that approach. And it works only with a certain type.

      Should I rely on the recruits intellectual work, that approach would be very counter-productive. Believe me, pointing out a stupid mistake in a very discrete manner can achieve a much better effect.

      P.S. Went through army training (15 months) and really can't remember a single thing of what was yelled at me back then.

      P.P.S. If you want people to change their ways, exposure or coverage actually damages the cause. Because people remember the shaming much stronger than the cause. It may have an effect on others as well then, but such is called "making an example of" and I truly hope Linus is above that.

    15. Re:Disagree with the language used... by phantomfive · · Score: 1

      Why do you think it would probably work?

      Mainly because of the empirical evidence of it having worked for Linux in the past.

      --
      "First they came for the slanderers and i said nothing."
    16. Re:Disagree with the language used... by nine-times · · Score: 1

      But now imagine that the boss of your boss of your boss says the same about you on an official company meeting in front of all other employees. Even if meant as joke, as most people don't know him personally, it will be taken seriously.

      Yeah, but this is part of what I was thinking. And I'm stressing that I don't follow these things and I don't know, but it sounds plausible that it'd be sort of like if the boss of your boss of your boss did that at a company meeting in front of other employees, and then was like, "What? That was just a friendly meeting and we're all friends here." Like maybe it's not as much about being completely antisocial, and more about horrifically misreading the situation.

    17. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      But this what it really boils down to isn't it? It's not how Linus is communicating, it is what he is communicating. When people say he should be more "professional", what they are asking for is that the emotion be removed from the communication. Linus doesn't want to remove the emotion, he wants it to be plain and clear. I'm not sure which side of the fence I fall on this one; I don't think there is a clear right or wrong answer, but it hits people in that "belief" area, hence the emotion in response! Forthwrite communication is absolutely essential to a successful technical enterprise, so I think some emotion needs to be there. I'm just glad I work in an environment where most of my communication is verbal and not scrutinised by huge numbers of people.

    18. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      Well, I'm not sure people can detach emotionally, and I'm not sure the fact that a brutal attack on their code will be taken as an attack on them means that you can't attack the code. Linus is very suspicious of the word "professional", I am very suspicious of the word professional. The outcome that we seek in a technical environment is that the best technical solution is found and used. But individuals always invest part of themselves into any creative work, and will not be able to unbiasedly evaluate it, especially after it has been written. It is much easier to move away from a bad idea while it is still just an idea, than it is to admit that a function, feature, or product is simply bad or a bad fit. You still need to do it though. In normal work, I think how this should translate is that every idea should be savaged, attacked, (or if you prefer, refined) so that the problems are rectified before people have invested too much time or "self" into it. But getting back to your point; it's a war, it's always a war, and you can't always be nice when you're in a war.

    19. Re:Disagree with the language used... by TsuruchiBrian · · Score: 1

      What about a competent person who said the n-word all the time?

    20. Re:Disagree with the language used... by mseeger · · Score: 1

      30+ years in the business, been there, seen that :-(

    21. Re:Disagree with the language used... by mjr167 · · Score: 1

      Why are we at war? What are we destroying? Bad code? Why is the elimination of bad code so violent?

      There is a difference between attacking a person and critiquing their work. There is an art to constructive criticism. As soon as you start swearing you turn it from a critique into an attack. By making personal attacks, you make it personal. I frequently tell my coding minions that their code is bad and they need to rewrite it, but I don't call them names or swear at them. Instead I tell them "this is unacceptable and why." Either they defend themselves (sometimes they have a reason) or they fix it, but we don't get emotional. I don't call them stupid. I don't swear. I don't take them out back and beat them.

      "Professional" does not mean we sit around a campfire singing songs and telling each other how much we love each other. It means we treat each other with respect. Everyone has bad ideas and everyone writes bad code. We don't need to get emotional about it and attack each other.

    22. Re:Disagree with the language used... by Cederic · · Score: 1

      It's important to be able to say 'no' in a professional environment.

      Or did you mean 'nigger'? That's a very emotive term heavily laden with racial meanings, and generally deemed inappropriate for work use.

      Definitely one for HR to deal with.

    23. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      It's always a war, because we are always competing. As soon as we stop, we die. As to your other point, if you tell your minions that their code is "bad" and they need to rewrite it, what difference if you swear or not? You seem to think that the harm is in the words used rather than the act. I'd suggest that there is no difference at all.

    24. Re:Disagree with the language used... by TsuruchiBrian · · Score: 1

      I meant "nigger". It does have a lot of baggage. Which is why I am curious if your "it's just words" statement still holds, or whether there are some exceptions to this rule. "Fuck" is generally deemed inappropriate for work use as well.

    25. Re:Disagree with the language used... by Cederic · · Score: 1

      I hear 'fuck' a lot. 'Fuck off' or 'fuck you' is aggressive and personal, and that's no better than 'you incompetent disgrace', you try and avoid it.

      'Fuck it', 'fuck me' or 'lets fix this fucking thing' however.. that's pretty commonplace.

    26. Re:Disagree with the language used... by elgatozorbas · · Score: 1

      As Linus expects others to write proper code, I expect people to conduct proper communication.

      While I agree completely with what you say, Linus may be more important that you are and therefore his expectations may be more important than yours as well (in internet-slang: may be given more fucks about than yours).
      Mozart. McEnroe. Maria Callas... Their game, their terms.

    27. Re:Disagree with the language used... by mseeger · · Score: 1

      I don't expect him to read it here... ;-)

    28. Re:Disagree with the language used... by mjr167 · · Score: 1

      Are you telling me there is no difference between "Please pass the salt" and "Give me the fucking salt, dumb-ass!"? In the end, I'm just asking for salt. It's just words and words don't matter...

    29. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      Well, if said dumb-ass had just submitted some obviously shit code and shoulda known better ;) My point was that for many a programmer (me!), being told your code needs to be re-worked is about the most abusive thing you could ever do, the language you choose to use being rather immaterial. Still, if I had fucked up in a lazy obvious way; well I'd feel the sting as a well deserved sting. The code is much more important than people's feelings, and most (good!) programmers I have worked with feel the same way. Constructive confrontation I think it's called. Swearing is not about respect, unless the sweared at would view it that way; in fact I only swear at colleagues that I both respect and trust. I think a great deal of this is cultural, and that culture will vary from group to group. Still, if you come from the outside, you should respect the culture your entering, even if you disagree with it. (I once worked in another country where swearing at each other was simply not done, don't you know, and I managed to adapt).

    30. Re:Disagree with the language used... by TsuruchiBrian · · Score: 1

      I guess it depends on your culture. I was just trying to find out whether all words are "just words", or whether some words go beyond being "just words" for you.

    31. Re:Disagree with the language used... by gnasher719 · · Score: 1

      Why do you think it would probably work? Over-the-top insults and tantrums typically don't work; it creates resistance and anger, and is a very unproductive way to deal with things.

      To repeat that kind of code, you would have to argue that it was anywhere near acceptable. And you can't. I looked at the three versions of the code on theregister, and the first version is a serious bug which needed fixing, the second that the rant was about is an absolute WTF, and the third is absolutely clean and obvious and what I would expect any sane programmer to write.

      Ok, this is a serious rant. If it gets you upset and you are so upset that you insist on continuing to write that kind of code, you are not only incompetent, but also childish.

    32. Re:Disagree with the language used... by mjr167 · · Score: 1

      I grew up in the US and was raised to not swear, does that mean that I do not belong in the american coding culture? What does that say about our culture? Are you then going to complain about the lack of respect today's youth shows towards authority as well?

      If you are willing to acknowledge that different cultures have different methods of dealing with conflict, then why do we settle on an obviously hostile culture and then say "adapt! It's my culture!" when challenged on it? Are you telling me that someone from that other country would not be welcome where you work?

    33. Re:Disagree with the language used... by nomadic · · Score: 1

      What empirical evidence is that? Most people don't understand the idea of the regression to the mean (check out the Kahneman quote here at a href="https://en.wikipedia.org/wiki/Regression_toward_the_mean#Regression_fallacies">here if you want a good example of why punishment seems to improve performance, but doesn't really). Also, as a long-time Linux user (since 1994) I have to say that as much as I like the OS, its success has been largely based on the fact that it was mostly the only game in town in terms of free UNIX systems at the time it came out, and was able to capitalize on that momentum since. The free BSD variants were having legal issues that a lot of people thought would sink them, Minix wasn't really a full OS, and everything else that would run on x86 software (and there weren't many) cost money. But at the end of the day Linux isn't uniquely well-designed or superior as compared to say, OS X. If other modern OSes can get by without a tantrum-throwing diva like Linus, I think it's safe to say it's not a necessary part of the development cycle.

    34. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      Well, I am not American and have never worked in the states; but I imagine if I did I'd adapt to your culture as necessary. But yes, if you came and worked with me I'd expect you to adapt to the culture of my group (which is very different, but influenced by the culture of the country it may be in). Also I would point out that my current company is extremely international with less than about 1/3 being from the country in which it is hosted. Nobody seems to mind the swearing, but I think you are wrongly associating swearing with hostility; it is never used in such a way (and if it is, it's clearly perceived as crossing the line). Not to say that people do not vent their frustrations using interesting language; in this workplace it's not considered an issue to swear and curse when passions are high. I have worked in groups where it was worse (swearing wise) and much more restrained. I come from an engineering background and am a little older, so perhaps norms are changing.

    35. Re:Disagree with the language used... by Puff_Of_Hot_Air · · Score: 1

      Actually, just to add, I have worked with American and Canadian groups at various times (in fact I am right at the moment), so I'm not oblivious to the fact that american's (particularly from the south I think?) are much more sensitive to issues of courteous speech. Intra-group communication is invariably formal and courteous at any rate, but it's not a huge surprise to learn that this might be desired within a team as well. It's also my view that many Americans are blinkered in their understanding of the huge amount of variation in cultural norms; if you work in a French team or a Russian team, you will see very different dynamics to a British team for example. I try to take it all in my stride when I've worked in these teams (although it can take time to adapt), but I expect the same from others joining our team.

    36. Re:Disagree with the language used... by phantomfive · · Score: 1

      Seriously? That's your point? That I don't understand the "Regression to the mean?" You need to get a few more hours of sleep.

      --
      "First they came for the slanderers and i said nothing."
    37. Re:Disagree with the language used... by gnupun · · Score: 1


      if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), ...
      goto fail_toobig;

      and anybody who thinks that the above is

      (a) legible
      (b) efficient (even with the magical compiler support)
      (c) particularly safe

      is just incompetent and out to lunch.

      Your quote:

      I frequently tell my coding minions that their code is bad and they need to rewrite it, but I don't call them names or swear at them. Instead I tell them "this is unacceptable and why."

      Other than the "incompetent and out to lunch," Linus does explain the "unacceptable code and why."

      There is a difference between attacking a person and critiquing their work.

      He's mainly criticizing the code, but people are too thin-skinned to take good advice and instead think of it as an attack on their character. If he didn't criticize this code in a public forum, there's a good chance this same type of code will be repeated by other coders slowly weakening the code base, by making it hard for other devs to read or modify the code.

    38. Re:Disagree with the language used... by mjr167 · · Score: 1

      The point everyone is trying to make is that he could have criticized the code without the "incompetent and out to lunch" comment. If he had said "The above code is illegible, inefficient, unsafe, and unacceptable", it would not have been an attack on the coder, but the code itself and served the same point of making sure everyone knew that kind of code is bad and should never be repeated. You can reject the code without attacking the coder.

      The additional commentary he adds further attacking the coder is unnecessary and hostile. It creates a hostile environment full of vitriol and fear which many talented individuals do not want to participate in. It creates an environment where one mistake gets you publicly humiliated and lets face it, everyone has a bad idea every now and then. It also creates an environment where no one can question Linus or suggest new ideas. If you have an idea and Linus disagrees you get ripped apart. End of story. In this environment, Linus is infallible and he better like your initial suggestion or else. There is no back and forth. There is no "here's an idea", "that's not going to work", "what if we do it this way...". There is only "Here's an idea", "Your idea sucks and you are a god damn moron, get the fuck out of here."

      Large red type and all caps has been shown to discourage people from contributing to discussions. What do you think swearing and personal attacks will do?

    39. Re:Disagree with the language used... by mjr167 · · Score: 1

      You sound like a reasonable person who would probably recognize that a team member was uncomfortable and take steps to correct the situation.

      I still don't buy "Linus only hits people when he loves them."

    40. Re:Disagree with the language used... by gnupun · · Score: 1

      The additional commentary he adds further attacking the coder is unnecessary and hostile.

      I don't agree with you that it's hostile, but let's say it is.

      Also, let's say you're in charge, instead of Linus. Now replace the sentence shown below with something that is not supposedly hostile but also warns the developer and others not to repeat the same mistake.

      and anybody who thinks that the above is ... is just incompetent and out to lunch.

    41. Re:Disagree with the language used... by mjr167 · · Score: 1

      the above code is unacceptable.

      Why do you need anything more? Reject the change. Say why you rejected it and what can be done to make acceptable. End of story. Now we may have actually taught someone something.

    42. Re:Disagree with the language used... by phantomfive · · Score: 1

      I'll fucking try to reach your shitty standards, oh master

      --
      "First they came for the slanderers and i said nothing."
  24. Shiny loses out again by smooth+wombat · · Score: 2

    The new improved code uses fancy stuff that wants magical built-in compiler support

    Imagine that. Someone thinking, "Ohhh, shiny! Let's try this because it's new and cool."

    Instead of, "I need something to get the job done in the simplest fashion."

    There's a reason analog light switches are still around. They just work. No bullshit about having to talk to a computer to decide what to do. Clean and simple. Just like code should be.

    --
    We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
    1. Re:Shiny loses out again by PPH · · Score: 1

      Imagine that. Someone thinking, "Ohhh, shiny! Let's try this because it's new and cool."

      It's also a method where some self-important developer can shoehorn their crap into the kernel. Now we've got to include the header and/or library into the build. And who knows what crap might get into it by the next version.

      I'm not sure if this is an example of that problem. I can't find overflow_usub docs online. All I get is adverts for drain cleaners. But it is a practice to be avoided on principle.

      --
      Have gnu, will travel.
    2. Re:Shiny loses out again by Cederic · · Score: 1
    3. Re:Shiny loses out again by TsuruchiBrian · · Score: 1

      We should even use header files. We should just have all your code in a single file. All this fancy modularity bullshit just complicates things. I should just be able to compile a single source file into a single executable.

  25. Re: Not the case. by Dog-Cow · · Score: 2

    Unlike you, Linus is not a drooling moron. He knows when goto is the best tool for the job. He doesn't have irrational fears like fucked-up retards such as yourself.

  26. Re:yet he allowed systemd..... by Junta · · Score: 4, Insightful

    but yet he allowed the crap that is systemd in the house

    Linus doesn't have control over places that systemd are 'in the house'. The biggest notable chunk that would be even remotely perceived as letting systemd into the kernel is kdbus, and that hasn't been merged. Even then, I have heard arguments that it isn't particularly systemd specific. Knowing about dbus, makes me shudder about the concept of kdbus, but folks assure me I don't understand kdbus, which I confess could be true.

    Linus basically doesn't have much to say about systemd today, it's beyond the scope of his attention. He has mentioned he is at least not horribly opposed to it, but neither has he gave it a huge endorsement either. He has ranted about code that came to the kernel from at least one of systemd's notable contributors, but not about the concept/project as a whole.

    But all that aside, no one should treat Linus' word as the one true word of the whole ecosystem. If he loves it, hates it, or does not care, either way the larger community has to decide.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  27. Re:Linus rants about (xyz) by Junta · · Score: 1

    At least without context, the tone seems a bit severe for the rejection, and could bolster the case of those that argue that a violent shaming is a risk of submitting code, even if it would be your first 'mistake'.

    I personally prefer this over some other projects that would merge functional, but ugly code for the sake of not scaring folks away from contributing and not having 'it doesn't work' argument to respond with, but there could be a happy medium.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  28. Re:Not saying I disagree with Torvalds by Anonymous Coward · · Score: 1

    but geez he rants and rants.
    This is someone you wouldn't want to work for.

    Why? Because you're a delicate little flower with easily offended sensibilities?
    I've worked for all types, and with all types. A little bit of "colorful" language doesn't bother me, and in many cases I'd prefer someone who can come to me and say "Hey, you fucked up, this is a pile of shit" than someone who smiles, gives me calm reassurances about my efforts, and then drives a knife into my back.
    Yes, sometimes he goes a bit over the top. But in many cases, it's more a matter of the receiving party needing to grow a thicker skin.

  29. Re:Not the case. by DrXym · · Score: 5, Informative

    Goto is a perfectly valid instruction providing you know when to use it. The typical use would be to jump into some teardown code at the bottom of a function or to escape out of some nested loop. Either way provdes more succinct and involves less code than the alternative. I assume every single kernel developer is capable of knowing when best to use it and they wouldn't have to worry about issues with c++ constructors either.

  30. Re:Not saying I disagree with Torvalds by CheapEngineer · · Score: 3, Insightful

    To each his own, but all in all I'd rather not work for a douchebag. Even if he's a really talented douchebag, he's still a douchebag. Real managers supervise without being an asshole.

  31. Re:Not saying I disagree with Torvalds by oh_my_080980980 · · Score: 1

    Yes you do. He points out why it's crap and why it should happen. Considering this is kernel level stuff, you want that.

  32. Re: Not saying I disagree with Torvalds by Anonymous Coward · · Score: 2, Insightful

    get by without public shaming rants

    If you fuck up publicly, then the public criticism is appropriate and well deserved.

    if your boss came in to the office and started ranting about a couple of admittedly bad lines in your code in front of everyone now and then, he would be fired pretty quickly

    That's just flat out not true. I've worked for bosses who have done, and continue to do, far worse than anything I've seen Linus do. And guess what? They not only still have jobs, they get promoted.

  33. Re: Not the case. by gnupun · · Score: 1

    Goto is good in this case since it avoids nasty 'if's in many places. You complain because you're a noob.

  34. Re:Not saying I disagree with Torvalds by oh_my_080980980 · · Score: 1

    Then you haven't worked long.

  35. Best Line Ever by oh_my_080980980 · · Score: 1

    "A shiny function that we have never ever needed anywhere else, and that is just compiler-masturbation."

    1. Re:Best Line Ever by quintus_horatius · · Score: 2

      that is just compiler-masturbation.

      Compilers have needs and desires, too.

  36. Blame GCC by slashdice · · Score: 1

    GCC developers are some of the worst language lawyers you'll ever find. Code that used to work correctly will break (optimizations, yo) if they decide it's undefined or implementation defined behavior. Like overflow. They have to add those shitty builtin "safe" overflow math functions because MAX_INT + 1 is undefined. GCC will never generate code for an architecture where that is undefined, but when give the chance to "do the right thing" or "save a couple cycles and break code", GCC will fuck you over.

    --
    Copyright (c) 1990 - 2014 Dice. All rights reserved. Use of this comment is subject to certain Terms and Conditions.
    1. Re:Blame GCC by 0xdeaddead · · Score: 1

      they fucked up Qemu, Basilisk, and just about anyone doing JIT a few years back. It's too bad EGCS couldn't break the GNU/Cygwin GCC monopoly.

    2. Re:Blame GCC by david_thornley · · Score: 2

      If the code relies on undefined or unspecified behavior, it was working correctly only by chance, and could easily break on another platform, or another version of the compiler. It can freely use implementation-defined behavior on a given implementation.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    3. Re:Blame GCC by TsuruchiBrian · · Score: 1

      agreed

    4. Re:Blame GCC by gnasher719 · · Score: 1

      There were the very widespread Motorola 68k processors, used in Macs, Atari and Amiga computers for many years, where a signed integer addition overflow definitely invoked undefined behaviour.

      Take "if (a + b > 0) { ... }". You seem to be someone who thinks nothing could go wrong. On these processors, an integer addition set the condition flags according to the mathematical result of the operation, ignoring overflow. So "if (MAX_INT + 1 > 0)" would produce a true condition. But store the result of MAX_INT + 1 and compare the stored result with 0, and it's false because there was an overflow, giving a negative result.

  37. Re:You have to give L.T. one thing... apk by fisted · · Score: 1

    Yes, but where is the source code?

  38. Re:Not saying I disagree with Torvalds by verbatim · · Score: 4, Insightful

    Why? Because you're a delicate little flower with easily offended sensibilities?
    I've worked for all types, and with all types. A little bit of "colorful" language doesn't bother me, and in many cases I'd prefer someone who can come to me and say "Hey, you fucked up, this is a pile of shit" than someone who smiles, gives me calm reassurances about my efforts, and then drives a knife into my back.
    Yes, sometimes he goes a bit over the top. But in many cases, it's more a matter of the receiving party needing to grow a thicker skin.

    A-fucking-men.

    In my career, my skills in direct proportion to the speed at which I was criticized multiplied by directness and the skill of the other party.

    As a lead, I really struggle with the special little snowflakes that need to be told how great of a job they're doing and how much they are appreciated and ... makes me want to vomit. I make sure that they either don't last long or learn to break their emotional attachment to "their" code.

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  39. Re:yet he allowed systemd..... by phantomfive · · Score: 1

    Knowing about dbus, makes me shudder about the concept of kdbus, but folks assure me I don't understand kdbus, which I confess could be true.

    Interprocess communication has been an area of research for a long, long time. I don't understand why the kdbus people want to re-invent the wheel, instead of using a method that's been tried and tested.

    --
    "First they came for the slanderers and i said nothing."
  40. Re:Not saying I disagree with Torvalds by CheapEngineer · · Score: 1

    Then you haven't worked long.

    I never said I haven't worked for assholes. I said I'd rather not work for assholes, and I have left jobs for a lower paying one to get away from abusive assholes. Life's too short. And Linux coding is an unpaid job, is it not? Even less reason to put up with assholes.

  41. Re:Not saying I disagree with Torvalds by sunderland56 · · Score: 1

    This is someone you wouldn't want to work for.

    Good boss: rants when he has a good point, is 100% correct, and you screwed up.

    Bad boss: rants when he's wrong.

  42. Re:Didn't your mom teach you... by mazevedo · · Score: 1

    And yours to keep your mouth shut when you don't know what you're talking about?

    --
    mazevedo
  43. Re: Not saying I disagree with Torvalds by Anonymous Coward · · Score: 2, Insightful

    he GP is right, if your boss came in to the office and started ranting about a couple of admittedly bad lines in your code in front of everyone now and then, he would be fired pretty quickly.

    Why should our standards be what goes on in polite office culture? (This is a quite serious question). Cultures vary and change. In the 60s it was OK to be openly sexist and racist in offices. Your argument seems to be simply that we should look at Corporate America, and that should just be our standard with no further thought.

    People say Linus needs to be like that when controlling a large open source project like the Linux kernel, but plenty of other large open source projects get by without public shaming rants. Major sub-systems in Linux, for example.
    Yup, and there's nothing wrong with that. Why is it you feel the need to impose YOUR standards on the world? Nobody is saying everyone else should be pricks to control open source projects if what they're doing works.

    Linus isn't rascist, sexist, or anything else that's personal. He is kind of a prick when it comes to shitty code, So what?

  44. reality by colfer · · Score: 3, Interesting

    Hannes seems to have a valid point that boundary checking should be standardized in some way. Rasmus backs him up and mentions the result of the rant is they'll end up discarding his more comprehensive work on the issue: http://lkml.iu.edu/hypermail/l...

    Linus seems to be saying all boundary checks should be ad-hoc because the new syntax is to hard to GET OFF OF HIS LAWN. Because it is dog poop.

    1. Re:reality by ledow · · Score: 3, Informative

      The new syntax only works on certain versions of the GNU compilers. It's also more convoluted, just as easy to get wrong (i.e. the guy himself admits there's a possibility of the same kinds of mistakes as without it), non-standard, and harder to read - especially if you are unfamiliar with a GNU-only syntax.

      Read the rant, then look at the code.

    2. Re:reality by colfer · · Score: 1

      Agree it's hard to read. Comments above here seemed to be missing the point that maybe something is needed to safeguard other trickier arithmetic operations.

    3. Re:reality by gnasher719 · · Score: 1

      And Linus is right, while Hannes and Rasmus are dead wrong.

      One of these clever guys says that checking whether a + b
      Then they say that these macros allow to fix problems without any thinking. Dead wrong. Without thinking, every time you use these macros there is a 50% or greater chance to introduce a bug. On the other hand, if you check on theregister for Linus' replacement code, it is simple, trivial, and obviously correct.

      An obvious sign of the brain damage involved is someone figuring out that they need a result of at least 8, and instead of checking "if (x 8)" they check "if (x = 7)".

    4. Re:reality by gnasher719 · · Score: 1

      If that post above does't make sense, it's Slashdot rubbish treatmen of ordinary text.

      So one of these clever guys says that checking whether a + b lessthan a does not correctly find all unsigned integer overflows, because of integer promotions. Dead wrong. If there are integer promotions, then there is no overflow. So a + b lessthan a is pointless because it is always false, but it _does_ correctly find all overflows. Even when there aren't any.

      And fuck slashdot with its stupid ass "slow down cowboy" shit that doesn't let you post of correction of a post that was messed up by slashdot.

  45. clever morons by iggymanz · · Score: 4, Insightful

    open source world is getting overrun by high IQ morons, that put in bloat, hyped fads, and needless complexity. they indulge in mental masturbation rather than good design

    1. Re:clever morons by PRMan · · Score: 3, Insightful

      The closed source world has the same problem.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:clever morons by HiThere · · Score: 1

      Would you prefer he'd used a macro? Having looked at the code I think he could have. That would eliminate the function call, but it would be just as unintelligible and ugly. (Actually, if the compiler respects inline in this case it could even generate the same code.)

      FWIW, the very code used in the accepted handler could be implemented as a macro, and I think the only gain would be unintelligibility. And the danger that sometime in the future someone might change the macro with undetected side effects.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:clever morons by gweihir · · Score: 1

      Very, very true. High IQ, no wisdom at all. That kills any coding project in the long run because everything gets more and more complicated and eventually no measure of IQ is enough to keep control of it. Smart coders always write the most obviously simple code for a problem, unless it turns out optimization is critically needed. Then they comment so clearly that things are still easy to understand.

      It is fascinating how utterly dumb some high IQ people can be. All wanting to impress others and completely missing the point of what they are doing at the same time.

      Incidentally, just like writing compact and clear text, writing compact and clear code is much harder than writing complex code.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  46. Re:Not saying I disagree with Torvalds by CodeArtisan · · Score: 1

    This is someone you wouldn't want to work for.

    Good boss: rants when he has a good point, is 100% correct, and you screwed up. Bad boss: rants when he's wrong.

    Excellent boss treats you like an adult when he has a point, and communicates the problem clearly, and without resorting to childish abuse.

  47. Linus rants by Vlijmen+Fileer · · Score: 1

    Nothing new, just walk on. He rants because that's his natural state. Can not wait for the fool to disappear.

  48. Re:Not saying I disagree with Torvalds by JaredOfEuropa · · Score: 1

    Good boss: politely points out flaws in your code in public, and suggests improvements, or privately rants at you when you've really screwed up.
    Bad boss: doesn't point out shortcomings, or rants in public about them.
    Worse boss: needs to swear in order to get their point across.

    We shouldn't be too afraid to hurt "delicate little flowers" and censor our language all the time, but such swearing is just as unprofessional as it is unnecessary.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  49. Does kernel have numeric overflow vulnerabilities? by ljw1004 · · Score: 2

    Like Linus, I also write the simpler form of this kind of code when writing in C/C++.

    Unlike Linus, I feel bad about it! My colleagues point out places where arithmetic overflows might lead to crashes. Honestly I find it really difficult to think through the overflow issues for *every single* plus, minus and multiply operator in my code. I think it's like cryptography in that sense -- most regular programmers, including good programmers, don't look at arithmetic operators from the perspective of attackers.

    In this case, does Linus' code have the exact same behavior on all possible inputs including overflow-causing inputs? If not, which of the two behaviors is the desired one?

    Are there places (maybe including this one) where the kernel code doesn't guard properly against arithmetic overflow? Will the newfound attention bring hackers scrutinizing it for overflow flaws?

  50. Re:I've got a question by PPH · · Score: 1

    I just get links about unclogging drains.

    --
    Have gnu, will travel.
  51. Re:Not saying I disagree with Torvalds by Grishnakh · · Score: 1

    Excellent boss...

    Good luck finding one of those anywhere.

    That's like asking for countries to have governments that are not corrupt at all, are run efficiently and effectively, and work for the good of all their citizens.

    Sometimes you just have to take what you can get.

  52. Linus is right only for people of his caliber.... by Wrath0fb0b · · Score: 5, Interesting

    Both in the technical sense and in the human sense.

    Technical: People at Linus' caliber understand exactly the rules for signed/unsigned integer promotion and where underflow is defined (as wrap) and where it's undefined[1]. Consequently he wrote perfectly-correct code for detecting the underflow and bailing out safely. Programmers at mere mortal levels of skill, however, routinely mess this up, often causing exploitable security bugs (believe me, I do code security audits as part of a real honest living). My advice for everyone (contra Linus!) is always always always use the compiler intrinsics for integer math. Feel free to decline this advice if you are a Linus level wizard (if you were, of course, you would already feel free to decline it) but if you have to wonder if you are, you probably aren't.

    Linus seems to think that the kernel should only be written by folks that don't need that kind of help -- and for that I won't argue with him. It's his baby and he can chose whether to have a small number of über-developers or a larger number of mortals. Which goes straight to the second point:

    Human: People at Linus' caliber thrive on negative feedback. At their level, positive feedback means nothing because there's nothing he can learn from someone praising his work. He wrote a kernel, he knows he's good. Meanwhile negative feedback is useful (unless trivially discountable): if the complaint is right, he'll correct something he was doing wrong; if the complaint is wrong, he'll be forced to think through why. In any event, he could never imagine why someone would sugar-coat their opinion on any matter.

    So it seems like his mode of communication is meant to answer that question for the former: he wants people of his caliber that don't write ugly code using arithmetic crutches and don't care about strongly worded criticism. There's nothing invalid about that either -- maybe it's true that the best model is that Linuses work in the kernel and the rest of us go up into userland where we use crutches like memory protection and higher-level constructs :-)

    [1] And when behavior is undefined, a smarter compiler can remove the code-path entirely -- the kernel itself was hit by such a bug where GCC legally removed a NULL check because the pointer was dereferenced before the check. See also this reference. Then there's the sad fact that people still argue against the clear language rules that say that assert( 100 + some_int > some_int ); can always be optimized away.

  53. overflow_usub is seriously bogus by coats · · Score: 2

    Not to mention that sizeof forces hlen+sizeof(struct frag_hdr) into size_t, which very probably is not unsigned int (it is not, on any of the systems I've owned for the last decade at least). Therefore overflow_usub is seriously bogus in and of itself.

    --
    "My opinions are my own, and I've got *lots* of them!"
    1. Re:overflow_usub is seriously bogus by Polizei · · Score: 1

      size_t is unsigned. ssize_t is signed.

    2. Re:overflow_usub is seriously bogus by erapert · · Score: 1

      Considering that size_t is a synonym of unsigned int then in order for this to actually be a problem hlen + sizeof(struct frag_hdr) would have to be bigger than 4,294,967,295 bytes... which, if true, indicates that there's much bigger problems to worry about in that piece of code.

  54. Re:Not saying I disagree with Torvalds by verbatim · · Score: 3, Insightful

    Linux development is done on public mailing lists. Everyone knows this going in. If Linus rants about "your" code in public, he's sending a clear message.

    He has passion. Snowflakes don't understand passion.

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  55. Re:Not saying I disagree with Torvalds by bobbied · · Score: 5, Insightful

    To each his own, but all in all I'd rather not work for a douchebag. Even if he's a really talented douchebag, he's still a douchebag. Real managers supervise without being an asshole.

    I don't mind working for a professional who holds to high standards and doesn't mind telling me when my code is crap, but I'm not going to work for a douchebag that reprimands me in front of everybody.

    Professional and effective managers always reprimand in private, and praise in public. DON'T work for someone who doesn't follow that rule, life is too short.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  56. Re:Gosh Linux is so cool.... by bobbied · · Score: 1

    But does he have to be such a dick about it?

    Apparently he does. I don't know why, but he does this from time to time, launching into some tirade laced with explicatives.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  57. Re:Not saying I disagree with Torvalds by PRMan · · Score: 1

    In my career, my skills in direct proportion to the speed at which I was criticized multiplied by directness and the skill of the other party.

    Your English in this sentence is unintelligible. You might want to work on it.

    --
    Peter predicted that you would "deliberately forget" creation 2000 years ago...
  58. The purose of comment subjects by driblio · · Score: 4, Insightful

    the start of a thread IS the subject line.

    No. The subject is a summary, or 'subject' if you will, of the post/email/missive.

    That way, you can dismiss a thread based on it's subject, and not have to descend into a thread to see what it's actually about.

    Get a clue before ranting, low-id.

  59. Re:Linus rants about (xyz) by Junta · · Score: 1

    Yes, but the question is whether this has been a pattern or a first offence. If this was the first time the person did something like this, it's arguably even worse. Usually if you are a maintainer in good standing, a single questionable design choice in a pull request wouldn't be met with that much vitriol. You have proven yourself to put out generally good work, but you mucked up once. A rejection with a counter-proposal saying 'this is not readable, I counter propose' would be enough to get the picture...

    Knowing that no matter my reputation, I do one thing that Linus doesn't like and it could result in insta-rant I could see as discouraging for those used to more level headed discourse.

    However, I restate that if I had to choose between passionate, rant-ready maintainer enforcing a consistent design versus all-welcoming maintainer that allows things to point of chaos, I'd pick the rants.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  60. Re:Not saying I disagree with Torvalds by Altus · · Score: 2

    No no. You have to do it like Linus to be effective. These gentle criticisms aren't going to cut it. Let me demonstrate

    What the f$&@ is this sentence even supposed to mean? This is clearly written by a total idiot. What kind of total sh!&head would ever submit a sentence like this. Get your sh!& together and f$&@ing learn to write you worthless piece of crap.

    See. That's the only way anyone learns

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  61. Re:Sorry you find C so hard to understand, Linus. by ledow · · Score: 4, Insightful

    Shame that the function used in the patch is NOT C, but instead a compiler-supplied and thus compiler-dependent feature that was put into the code in the kernel without any kind of fallback for those who don't have that compiler (e.g. an equivalent header that defines it if it's not already defined).

    And Linus' equivalent alternative is valid C99 that works on all compilers, and does EXACTLY THE SAME while being slightly more readable.

    Otherwise you might indeed have had a point to make.

  62. Re:Not saying I disagree with Torvalds by verbatim · · Score: 2

    Yep, you are right. I accidentally the word "grows".

    I have a phantom word problem where, if I think the word in my head as I write, then as I read it back, the word "appears" there, even when it isn't.

    But I'm not ashamed to admit I fucked it up :P

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  63. Re:I never understood why by SQLGuru · · Score: 1, Informative

    If they used it like a headline, it would be fine. But they don't. They use it as the location for the beginning of their first sentence.

    Subject: Anonymous Cowards don't know how to
    Body: use the Internet.

    Newspapers don't write their articles that way......they write them like this --

    Subject: Anonymous Cowards don't know how to do this....
    Body: Anonymous Cowards are apparently clueless Trolls because they don't know how to use the Internet. They think that Subjects are where you start the first sentence of your article and then you just continue the sentence in the body as if that is just an inconvenience to spewing their diatribe.

    See.....a real Subject (akin to a headline) that conveys an idea of what the body will discuss but it's followed by a full concept that can also stand alone if the subject is hard to read (for instance on a site like Slashdot where it gets lost in the green bar).

  64. Re:Not saying I disagree with Torvalds by CheapEngineer · · Score: 1

    The only way to change anything, Oh Jaded One, is to not put up with the assholes. Let those managers constantly have to replace their staff until only the truly desperate and un-hireable elsewhere will work for them. Or you can just kick the dog everyday when you get home - it's your choice.

  65. +1 Insightful by mccrew · · Score: 1

    Wish I had some mod points for you today.

    --
    Hey, Windows users, there is no such thing as "forward" slash, there is only slash and backslash.
  66. Re:Not saying I disagree with Torvalds by tnk1 · · Score: 1

    If I end up belittling a member of my team's efforts publicly, whether they deserve it or not, then I've failed as a supervisor. Unless you're working in a shark tank, that shit just drives down morale. Even *if* you're working in a shark tank, it's unnecessary.

    If there is an issue that needs to be addressed publicly, you tell the team to not do that thing directly, but calmly. If they haven't been heeding your instructions purposely, or they are failing to measure up for some other reason, you pull them in and explain to them what is wrong and what needs to be done about it. If they continue to fail, you fire them after explaining that the team needs to work in a certain way.

    Being professional doesn't mean being a pussy. It just means understanding the big picture. Drama doesn't help teams. If one person is causing it with their shitty code, then you spend the time with them to see what is happening. If they don't catch up, then perhaps they need to work somewhere else.

    Honestly, Linus has blow ups because he *can*, not because it is good a idea. People will continue to contribute to Linux in spite of that, not because of that.

    Even shit code like this only requires a private talking-to about it to the maintainer, and a public email about how it should be done. If the maintainer doesn't meet standards, he gets replaced. None of that requires a public fit.

  67. Re:Not saying I disagree with Torvalds by tnk1 · · Score: 1

    I've only rarely had a boss who does have to rant. And most of those bosses who do rant were CEOs, and it really didn't help much even then.

    I do know that bosses like that exist. I have had the good fortune of not having to work in a field where I have to tolerate that shit.

    Mind you, I've been chewed out before, but it was always done privately and based directly on what it was perceived that I did wrong. I didn't always agree, but I never felt like I had a bad boss of the sort that would pull a Linus. If I had, I'd be looking for a new job.

  68. Re: Not saying I disagree with Torvalds by Cederic · · Score: 1

    I save it for voice comms.

    Emails are polite, constructively worded and easily forwarded to very senior managers if escalation is needed.

    Phone calls involving swear words as a follow-up usually avoid escalation being needed.

  69. Re:Not saying I disagree with Torvalds by iMadeGhostzilla · · Score: 1

    No - Linus doesn't say a *person* is an idiot, but that a person's *behavior* in a particular instance or their snippet of *code* is idiotic. There's a world of difference.

  70. Re:Does kernel have numeric overflow vulnerabiliti by russotto · · Score: 1

    The language's inability to check for overflow is a problem. Putting that sort of obtuse and unreadable compiler-specific code everywhere you want to do arithmetic is a a cure worse than the disease.

  71. Re: Not saying I disagree with Torvalds by Dcnjoe60 · · Score: 2

    "It's literally one punch in the balls out of thousands of friendly hand-shakes per year."

    Yeah, I wouldn't submit patches to him either. The GP is right, if your boss came in to the office and started ranting about a couple of admittedly bad lines in your code in front of everyone now and then, he would be fired pretty quickly. People say Linus needs to be like that when controlling a large open source project like the Linux kernel, but plenty of other large open source projects get by without public shaming rants. Major sub-systems in Linux, for example.

    So the complaint is that the kernel development does everything in the open, including airing dirty laundry, while other projects keep disagreements quiet behind the scenes (at least until something is forked). Personally, I don't like to be yelled at any more than the next person, but I would prefer open and transparent.

  72. Moderation of replies to edits would need history by tepples · · Score: 2

    There's zero technical reason why an "undo" function can't be added to almost any software system

    I can think of a couple. It's harder to remove elements from some kinds of full-text index, especially a probabilistic index, than it is to add them. And each comment would then need revision history so that moderators can tell to what text each comment was actually replying. Do we want individual revisions to be searchable?

  73. Re:Sorry you find C so hard to understand, Linus. by etinin · · Score: 2

    I'm, not defending the code, but you're missing the point:
    The compiler fallback had been added:
    http://git.kernel.org/cgit/lin...

    The problem was the inherent unreadability of the code. Using little known compiler-specific functions makes the code much harder to read.

    --
    "I decided I could write something better than everything out there in two weeks. And I was right." - Linus Torvalds
  74. Complaining is the easy part by Tablizer · · Score: 1

    I've debated programming language syntax many times, and have come to the following conclusions:

    1. The C-style switch/break syntax is archaic and error prone, and should be replaced by a modern version based on sets rather than "break". We even devised a way to support both the old and new forms for backward compatibility. I'd roughly estimate less than 15% of the debaters agreed to keep (only) the existing style.

    2. There's no free lunch. Syntax design creates trade-offs, and not all the trade-offs are immediately recognizable. All languages will probably have warts somewhere under certain conditions or usage patterns. If any language eventually gets it all right, it'll probably be a lucky accident, not pre-planning.

    3. Personal preference varies widely. What bothers me may not bother others. Our brains each process syntax very differently. Consensuses are hard to reach.

  75. Correction (Re:Complaining is the easy part) by Tablizer · · Score: 1

    Correction,

    I should have said "language design", and not (just) "syntax". We generally considered semantics also. What we excluded was compiler design and machine efficiency, unless it became a clear bottleneck.

    (A secondary debate then broke out on whether such "chip" bottlenecks are merely a reflection of current chip technology and whether a new language should cater to current chips or "do it right" and not focus on chips. The answer often depended on one's domain perspective, for those who work closer to the hardware, such as embedded, thought tailoring design around common or current chip architecture mattered more.)

  76. Re:Not saying I disagree with Torvalds by dmpot · · Score: 1

    Professional and effective managers always reprimand in private, and praise in public. DON'T work for someone who doesn't follow that rule, life is too short.

    First of all, Linus does not do any hiring and does not pay anyone's salaries. So anyone is free to choose whether to work with him or not. Many top developers started to work with him because it's fun, and only later they were able to find a job related to the kernel development.

    Second, I do not see anything wrong with public reprimand if the person is clearly wrong, because it is a matter of honesty and trust. This can be a problem only if the person cannot respond to the criticism, because he is afraid to lose his job or something like that. Clearly this is not the case with Linux development. I have never seen Linus harshly criticizing anyone who would be afraid to respond.

    The only thing that I do not like is that he uses profanities a bit too much, but if it helps to keep crybabies away then it is not too high price to pay...

  77. Re: Not the case. by cfalcon · · Score: 1

    The goto is used correctly.

  78. Re:Not saying I disagree with Torvalds by Locke2005 · · Score: 1

    I've worked with people that argued very loudly about technical issues, and as long as they did it in a good-natured way with a smile on their face, it was kind of an enjoyable experience. As far as Linus's complaint, which is essentially "Why use an ultra-secret poorly supported subroutine call when using simple explicit logic is much more clear and readable", I consider that a valid complaint. Sucks to be the person whose code triggered this rant, but it needed to be said. Agreed, it is very easy to misinterpret email or text because the tone of the person "ranting" isn't apparent, but I see no way to personally broadcast this message to the entire developer community.

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
  79. Re: Not saying I disagree with Torvalds by Bengie · · Score: 1

    There is a difference between doing it in person and doing it as a faceless person on the Internet. Linus has pointed out in the past that if you nicely ask someone to not do something again, they completely ignore you. He solution is to make a BIG stink about it so you don't forget.

  80. Re:Not the case. by cfalcon · · Score: 1

    You wouldn't want to model everything as an object, nor incur the overhead of dynamic allocation in all cases. If your code involves doing ten things, each of which can fail, and all prior ones need to be undone at the end of it, does it really make sense to have that as 10 objects that each nest the succeeding? That would be all manner of memory grinding as each one is created too. It would also involve header file overhead in most cases, whereas the code with the goto is all in one place, smaller, faster, and more readable. A lot of hardware interface stuff ends up looking like this, and you would not want object oriented code for that.

  81. Linus is... by sentiblue · · Score: 1

    A very intelligent dude... but at the same time is a pain in the ass son of a bitch

  82. Re:Not saying I disagree with Torvalds by Barsteward · · Score: 1

    seems like you'd better try doing the first line your latest post again. :o) its catching

    --
    "The hands that help are better far than lips that pray." - Robert Ingersoll (1833-1899)
  83. Developers following the KICC principle by bradley13 · · Score: 3, Insightful

    KICC = Keep it Complicated and Crappy

    I recently ran into a similar example in Java, where Java 8 has introduce the class java.util.Optional. This is used by certain other Java 8 classes as a return type.

    What does Optional do? It provides an object that contains an object. If that inner object is null, the method isPresent() returns fall. So now, instead of:

              if (widget != null) { widget.doSomething()) ... }

    You can write

              if (optional.isPresent()) { widget = optional.get(); widget.doSomething()) ... }

    Of course, if you don't quite trust the class giving you the Optional, you get to write

              if (optional != null && optional.isPresent()) { widget = optional.get(); widget.doSomething()) ... }

    This serves no useful purpose, except to make code more complex. Stupid, stupid, stupid...

    The claim, of course, is that this marvelous class is designed to work with lambdas. The thing is, lambdas themselves are an idiocy in Java. Lambda expressions are inherent in purely functional languages, but they are semantically out of place in a declarative language.

    --
    Enjoy life! This is not a dress rehearsal.
    1. Re:Developers following the KICC principle by TsuruchiBrian · · Score: 1

      I was intrigued by your post, and tried to find out if there were any good uses for optional that I could understand. I found one that it provides a way to distinguish types returned from hash.get() style methods (null that indicates key doesn't exist, or null that means the key maps to a null value).

      I'm not really a java guru, and probably would not have arrived at this solution myself, but do you have any thoughts on this usage of Optional?

    2. Re:Developers following the KICC principle by bradley13 · · Score: 1

      Haven't heard of that, but I might take a look if you have a link.

      Without seeing a specific implementation, I have trouble imagining what the advantage could be. Determining whether a key exists, or whether a stored value is null are both simple conditions to write. Why clutter it up with an unnecessary class?

      --
      Enjoy life! This is not a dress rehearsal.
    3. Re:Developers following the KICC principle by TsuruchiBrian · · Score: 1

      Haven't heard of that, but I might take a look if you have a link.

      This is the article I read: https://developer.atlassian.co... which goes over this usage of optional in the first paragraph.

      Without seeing a specific implementation, I have trouble imagining what the advantage could be. Determining whether a key exists, or whether a stored value is null are both simple conditions to write. Why clutter it up with an unnecessary class?

      I don't know why you would clutter it up with a class. But for thread safety, you would want to get the answer immediately. If you did something like this it could lead to a false result:
      if (hash.contains(key)) {
      __// the key is in the hash
      __//some other thread removes the key
      __value = hash.get(key);
      __// this returns null, implying that the value mapped to key was null which it may not have been.
      }

      you could sycnhronize access to the hash, but you would still need to get answers to both conditions in a single access, and an Optional object is capable of containing both answers in a single object returns by a single function call.

    4. Re:Developers following the KICC principle by psychonaut · · Score: 1

      The arguments for using Optional (or its equivalents in other languages) as an alternative to bare nulls are covered in a recent article, The worst mistake of computer science. It quotes Tony Hoare, the inventor of the null reference, saying that null was a "billion-dollar mistake":

      I call it my billion-dollar mistake... At that time, I was designing the first comprehensive type system for references in an object-oriented language. My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.

    5. Re:Developers following the KICC principle by Anonymous Coward · · Score: 1

      if (optional != null && optional.isPresent()) { widget = optional.get(); widget.doSomething()) ... }

      Over use of null checks or isNullOrEmpty() methods should be a fire able offence. Both of these are caused by trust issues of inexperienced developers or issues with API design. An API returning Optional should never return null, if it does you have a bug and similarly if you expect a String you should not have to check for null. Null checks in these cases tend to hide bugs and complicate every bit of logic that has to interact with possibly flawed values.

      Lambda expressions are inherent in purely functional languages, but they are semantically out of place in a declarative language.

      Lambda expressions are mostly used write small inline helper functions (or just pass existing functions) and avoid the code bloat involved with creating a class, implementing an interface and instantiating an instance.

  84. Re:He's right, and I'm sorry for it all. by tnk1 · · Score: 1

    Not using doublespeak doesn't mean you have to be an ass about it. You can be perfectly civil, and at the same time, blunt and honest.

    Linus' rant is an emotional response. He's human, so he gets to have those happen, just like everyone else does. I'm less concerned about that than I am about the people who I see who seem to thinks that is how developers should operate in general.

    Linus gets away with that because he's Linus. Anyone else who hasn't got his level of notoriety needs to think about it and then not do it. Consider the complaints about Linus to be a warning to those who think they get to act like the creator of the Linux kernel and justify it by thinking that they are "un-PC" and avoiding "doublespeak". Not even Linus is doing that, he's simply getting away with it because he can, just like every other celebrity or person with power.

  85. Re:Not saying I disagree with Torvalds by bobbied · · Score: 3, Insightful

    Oh young one.. There is a basic level of human decency and professionalism which we all do well to maintain. Unfortunately this is a rare quality in many organizations these days.

    I suspect that if your boss called your efforts crap in full ear shot of your peers, even if he was correct, you'd be a bit miffed at him/her for embarrassing you in public. It may change your behavior, but it also will change your attitude to them due to being rudely treated. Most folks have issues when they "loose face" in public and a wise professional manager avoids creating issues when possible. It only makes sense to go out of your way to avoid offending others, even in circumstances where you don't think you should have to bother. Wise people bend over backwards to avoid creating problems, trust me.

    For instance, as a software developer in a large organization, I ALWAYS assume that any software problem I find, or get's reported to me is MY FAULT, even when it's not. I will either *fix* the problem, or if I cannot do that, I will enlist others to "help me" figure out how to fix it. I never say "See, it's your problem to fix." but keep showing them the evidence and asking them how I can fix it. When it is their problem, they will eventually realize this but because I've not been rubbing their nose in it I don't have to fix the relationship the next time something rolls around. The other option is to just shoot your coworkers full of holes, and the first time you are wrong about who's at fault it was, you are the hard nosed worker looking to get out of responsibly.

    Do I have to do this? No, but it establishes you as the guy that knows your stuff, who is willing to work with others on stuff that's not his responsibility and exposes you to details from the larger picture. You are the nice hard worker that everybody trusts.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  86. Re:Not saying I disagree with Torvalds by JaredOfEuropa · · Score: 1

    Sure, if you step up to work on the Linux core, you know what you're in for. For me, it would be a reason not to. I have made myself a promise not to work for asshole bosses, and I'm keeping it. Wouldn't hire the guy either, for the same reason.

    I understand passion. I also understand the difference between being passionate and being an abusive asshole. Being passionate doesn't mean losing your inhibitions and social skills. And that has nothing to do with being a snowflake either.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  87. Bad ideas all around by WaffleMonster · · Score: 1

    The biggest problem I see is existence of crap like:

    mtu -= hlen + sizeof(struct frag_hdr);

    Where such code exists you can expect bugs to not be far behind.

    What I especially dislike is Linus's proposal:

    if (mtu

    Hey lets just do the same exact operation twice... now that provides no opportunity for mistakes and BTW nice magic number.

    I've learned the hard way over the years when you write a parser to build or consume packets under no circumstance should code to explicitly count bytes like this be allowed to exist. Write or reuse a higher level function to add or consume structures to centralize constraint checking. MUCH less opportunity to screw something up and less code/easier to read in the long run.

  88. Re:Linux is for Cows by Coren22 · · Score: 1

    Error, no action moo

    Perhaps apt-get install moo?

    --
    APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
  89. Re:Not saying I disagree with Torvalds by Coren22 · · Score: 1

    Do you often forget to put "then" in your if then loops?

    --
    APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
  90. Re:Does kernel have numeric overflow vulnerabiliti by TsuruchiBrian · · Score: 1

    I find it weird that Linus is so against the concept of idiot-proofing code, considering he is apparently surrounded by idiots. In C++ land we can use integer wrapper classes that provide checks against overflows in arithmetic operations. And the code just looks the same. For example:

    SafeInt c = a + b;

    It's a bit slower, so maybe it doesn't belong in some very nested loop structure. I understand Linus wants the code to be fast, but in places where you are doing that overflow check anyway, it seems like having a class or function do it for you rather than writing your own check is probably better from a consistency standpoint.

  91. Re:But ... but ... no rant against GOTO???? by TsuruchiBrian · · Score: 1

    kernel development has a different set of values and priorities.

  92. Re:Not saying I disagree with Torvalds by thegarbz · · Score: 1

    Professional and effective managers always reprimand in private, and praise in public. DON'T work for someone who doesn't follow that rule, life is too short.

    A very apt summary of what is wrong with the world today and why mediocrity rules supreme.

  93. Re:yet he allowed systemd..... by thegarbz · · Score: 1

    He has mentioned he is at least not horribly opposed to it, but neither has he gave it a huge endorsement either.

    Not horribly opposed to it and not giving it a huge endorsement is not correct. I'll quote and highlight relevant bits:

    "Linus: You can say the word "systemd", It's not a four-letter word. Seven letters. Count them.

    I have to say, I don't really get the hatred of systemd. I think it improves a lot on the state of init, and no, I don't see myself getting into that whole area.

    Yeah, it may have a few odd corners here and there, and I'm sure you'll find things to despise. That happens in every project. I'm not a huge fan of the binary logging, for example. But that's just an example. I much prefer systemd's infrastructure for starting services over traditional init, and I think that's a much bigger design decision.

    Yeah, I've had some personality issues with some of the maintainers, but that's about how you handle bug reports and accept blame (or not) for when things go wrong. If people thought that meant that I dislike systemd, I will have to disappoint you guys."

    Yep, he's definitely NOT horribly opposed to it, and it sounds like quite an endorsement to me. Hell calling it a shiny turd would be an endorsement in the typical cesspool of hate that systemd gets.

  94. Re: Not saying I disagree with Torvalds by HiThere · · Score: 1

    I don't know who "Dave cutler" is, but MSWindows has an EULA that, as far as I am concerned, makes it unusable.

    Currently I use Linux, and I've considered various BSDs. Actually, I still consider them every time there's a new update, but I require that I be able to use my current file system, ext4, with them, and so far that's been a deal breaker. If BSD had gotten to me first, I'd be requiring that Linux read the native BSD file system before I considered it. MSWindows got to me first, and I required that Linux have read/write access to the MSWindows file system. Fortunately it was VAT. NT would have taken a few more years...and the MSWind EULA became unusable with MSWindows2000.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  95. goto? by GreatDrok · · Score: 1

    Really, a goto? That's the best solution to this issue? I can actually read the crap code and while I don't particularly like it since it is assigning the values inside the if statement, that isn't the problem for me. It is the goto. I haven't used a goto in 35 years since I first discovered structured programming and I've been a C programmer for 25 years and while the statement exists in C there's just no need to use it (I never have), especially in this case. The fail_toobig should be a routine that is called rather than a label and there should be an if then else in there too. Linus' code is ugly too. Better than the first one, but still ugly.

    --
    "I have the attention span of a strobe lit goldfish, please get to the point quickly!"
  96. Re:Not saying I disagree with Torvalds by HiThere · · Score: 1

    It has been reported previously that Linux first asks politely and only if this is ignored does he ask impolitely. This has been said often enough, in enough contexts, that I believe it.

    Also, we do not know what private communication has gone on. Why do you assume that he hasn't asked privately? But if there is no private communication, then what is the alternative to asking noisily and publicly?

    Whatever, this is an approach that works. It's not the one that Guido uses for Python, but Guido's approach also works. It's not the one that Walter Bright uses for D, but that approach also works. You've got lots of choices for a project to work on, if that's your choice.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  97. Re:Not saying I disagree with Torvalds by HiThere · · Score: 1

    It's a style that I don't particularly like, but it works. It's one of several that work. If you decide to contribute to a project, pick one that's not only important to you, but whose management style you find acceptable. There are many to choose between. But check and be sure that not only do you like it, but that they style works.

    If you're thinking about kernel development, follow the development list for awhile before committing yourself. (You'll probably find that it's a pretty reasonable style, even if it's occasionally newsworthy.)

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  98. Re:Not saying I disagree with Torvalds by HiThere · · Score: 1

    So pick a different project to work on.

    When something's not broken, don't try to fix it. You may not want to work there, but there are lots of projects with different management styles. Many of them work...and working is important.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  99. BOTH code Snipets have readability Problems by williamyf · · Score: 2

    If you do not know what usub is, is difficult to determine what is is doing. In that, Linus is right. But look inside the Parenthesis:

    " (mtu, hlen + sizeof(struct frag_hdr), &mtu) || mtu = 7) "

    Here is a very Clear OR. The guys are checking for the MTU Being to big OR too small...

    Linus offers this code:

    "if (mtu hlen + sizeof(struct frag_hdr) + 8)"

    Which obfuscates the OR comparison...

    And Both Call the label "fail_toobig" intead of a more readable "fail_MTU_outofbounds"

    Or am I missing Something?

    --
    *** Suerte a todos y Feliz dia!
  100. Re:Not saying I disagree with Torvalds by verbatim · · Score: 1

    That's why I love programming and computers.. I can't fuck it up in grammar...

    It works or it doesn't work... If it's elegant or not... that's where I hope to have criticism... even in basic grammar... you're making my point for me ;)

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  101. Re:Not saying I disagree with Torvalds by verbatim · · Score: 1

    You're right;

    In private companies, Linus would come off as a total asshole...

    In my comment, I tried to make a joke where I left off some grammar and... well... people did pounce...

    It's the same thing in software... people will pounce...

    I've always been scared, and I'm at a very senior level now, that if I didn't deliver then my boss would pounce...

    And then I learned that my bosses have always been on my side... and that they *need* me to produce good shit... since that realization, I haven't been afraid, and I want n00bs to understand the same thing... if they need coddling, well... sorry, I've forgotten how to do that.

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  102. Re: Not saying I disagree with Torvalds by verbatim · · Score: 1

    I think my point is being made for me ;)

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  103. Re:yet he allowed systemd..... by HiThere · · Score: 1

    That's a selection of quotes, however, and occasionally he's been quite a bit more negative.

    Still, the ones I almost remember were about how unresponsive the systemd maintainers were when an error was reported rather than about the basic idea.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  104. Re:Not saying I disagree with Torvalds by verbatim · · Score: 1

    No - Linus doesn't say a *person* is an idiot, but that a person's *behavior* in a particular instance or their snippet of *code* is idiotic. There's a world of difference.

    YES. THANK YOU.

    --
    Price, Quality, Time. Pick none. What, you thought you had a choice?
  105. Re:Not the case. by HiThere · · Score: 1

    I've got a bit of a memory about the state of C++ when kernel development was started, and it wasn't good. Or standardized. And IIRC it depended upon cfront, when translated the C++ code into C.

    Years later C++ code was considerably bulky after being compiled and linked, and not at all suitable for many of the uses of the kernel.

    It's my understanding that currently C++ code can be equally good, and the source more compact...but I'm not really certain this is true, and in any case that's not enough to justify a conversion effort.

    Yah, Linux was a noob when he started the project, and he started it in C because that was what he knew. But it happened to be the best available choice, and may still be the best choice.

    You are, of course, correct about why Linux was successful. But you need to remember that BCD Unix was not the only Unix around, so it's not as if there weren't competitors. But they wanted to charge exorbitant prices, and weren't interested in the microcomputer market anyway. So the lawsuits weren't the only reason, greed played a major role.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  106. Re:Not saying I disagree with Torvalds by Rakarra · · Score: 1

    And Linux coding is an unpaid job, is it not?

    It is not! I mean, entry level, casual coder getting his feet week, the home tinkerer, etc. They don't get paid.

    But these days there's a lot of corporate investment in Linux, and I think most of the code that does into the Linux kernel (including Linus's) comes from people who are paid for it.

  107. Re:Coren22 "security guru" wannabe fails security by Coren22 · · Score: 2

    http://systemexplorer.net/file...

    I guess we should avoid your crap, it looks like it is marked as malware. Good luck getting that removed.

    --
    APK likes to ask for responses to the same things over and over. Maybe he just likes the responses?
  108. Re:Not saying I disagree with Torvalds by Rakarra · · Score: 1

    When it is their problem, they will eventually realize this but because I've not been rubbing their nose in it I don't have to fix the relationship the next time something rolls around. The other option is to just shoot your coworkers full of holes, and the first time you are wrong about who's at fault it was, you are the hard nosed worker looking to get out of responsibly.

    And the next time there's a problem:
    Gentle approach: Your calls get returned, people don't avoid you, and they're not hostile to you when you approach them. They're willing to help you out when you actually get into a problem yourself.
    Nasty approach: Pretty much the opposite of the above.

    Everyone makes mistakes. EVERYONE. But when you make people really pay for them, they'll not want to work with you anymore. Maybe they don't cut you any slack. Maybe they just become unhelpful. Maybe they leave to find work in a different division. Maybe they badmouth bad (and you'd deserve it, but hey, if brutal honesty is the best policy, then truthful badmouthing should fit right into that philosophy).

    Sometimes I wonder if this is just another "nerd/geek/etc not understanding the importance of social mannerisms, even among other nerds and geeks," or if there's something more complex going on.

  109. Re:No the subject is the subject. by Anonymous Coward · · Score: 1

    Therefore if the subject is contained IN the subject line and spills over into the comment, it's still the subject.

    Very true, if one is so incompetent at summarizing that it overflows.

    However, the nominal subject of this thread is "When create the most used operating system," which in no way indicates the subject of the comment. It is an introductory clause, after which actual content will appear. "Subjects" of this form are just as useful as a salutation. If every thread is titled "Dear sir," "Hello," or "I was thinking," then there is fuck all reason to provide a subject.

    "Subject" is not the first line of your comment.

  110. It's no by konohitowa · · Score: 5, Funny

    three

  111. worse than by konohitowa · · Score: 3, Funny

    comments

  112. chaining by konohitowa · · Score: 5, Funny

    together.

  113. Re:Linus is right only for people of his caliber.. by mveloso · · Score: 1

    "People at Linus' caliber understand exactly the rules for signed/unsigned integer promotion and where underflow is defined (as wrap) and where it's undefined[1]. "

    Well, the specific behavior in this types of cases will/may depend on the hardware. Linux targets lots more systems than just x86-64. And in any case using a gnu version-specific intrinsic is probably not the best thing to do in general.

    And what's with the magic number?

  114. There are advantages to having a consistent flavo by Yoik · · Score: 2

    A his strong voice is one of the reasons Linux is so popular. I fear for the day a committee makes thedecisions

  115. Re:No the subject is the subject. by driblio · · Score: 1

    ^ this.

    Cheers, AC

  116. Re:Do people read the subject anyway? by neurovish · · Score: 2

    no

  117. Re:Does kernel have numeric overflow vulnerabiliti by Megane · · Score: 1

    I would still prefer "sizeof dest" (yes, without parens!) instead of "sizeof(dest's type)", if only because if the declaration of the destination was somehow changed to a different type, the code would be wrong. I prefer to keep as few separate copies as I can of such information, and let the compiler take it from the symbol table, sort of like the new C++ "auto foo = something".

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  118. Re:Linus is right only for people of his caliber.. by Megane · · Score: 1

    Yep, "People at Linus' caliber" also understand that gcc is not the only compiler in the world. gcc-centrism is the vaxocentrism of the 21st century.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  119. Re:Does kernel have numeric overflow vulnerabiliti by Megane · · Score: 1

    Errrr... except that I now see that this is validating an IP header, so it's not really the same situation.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  120. Re:Not saying I disagree with Torvalds by KGIII · · Score: 1

    I'm pretty sure that everyone involved in this mix-up is paid quite well. Gone are the days of the major contributers wiling away time in their basement, coding for love and living on Ramen. The good, spare time hackers, are now employed and making good salaries.

    That said, I never was one for ranting. I get quiet and speak softly but I tend to enunciate carefully and metered. My kids have a saying about it. "When Daddy gets quiet, you've done something wrong."

    --
    "So long and thanks for all the fish."
  121. Re:Not saying I disagree with Torvalds by bobbied · · Score: 1

    Look, Torvalds does the final code merge and it's up to him to refuse the update if the developer isn't listening to his direction. He has absolute control over the code base and NOTHING gets in that HE doesn't approve and merge it. Torvalds doesn't need to resort to sending profanity laced E-mail to stop this, he can stop it other ways.

    Torvalds doesn't need to be nice I suppose, but to me it smacks of lack of professionalism and perhaps a bit of narcissism when people do this kind of thing to others. But let's face it, it's easy to chew out somebody on the web you don't know, won't ever meet, and have no real relationship with. But IMHO it's a really small world and more than once I've seen where what goes around really does come around sometimes so this is one character trait of Torvalds I would strongly recommend nobody emulate.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  122. Re:Not saying I disagree with Torvalds by bobbied · · Score: 1

    No, there is something going on...

    Because this country largely lacked any real serious economic problems for a couple of generations, children have been raised more and more selfishly. It's more "I'm entitled!" than it used to be. We see this on Facebook, Twitter et all, where folks are posting "Look at Me!" and getting "liked" or "followed" by their friends. We have selfie sticks to take pictures of ourselves with our $800 phones and wine when the credit card gets maxed out and we cannot make the payments on our student loans. So this leads to "I don't care about YOU" and we forget the simple truths that made society safe at home as well as work. It's not being a nerd or geek, it's about not being raised to care about others.

    The sad part though is we are loosing the skills that smooth out interpersonal relationships, that make cohesive teams and friendly work environments where people are motivated, fulfilled and efficient. Yea it takes effort, but I can assure you it is worth the price to think of others.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  123. I looked at the code. He is right. by gweihir · · Score: 1

    If anything, he was too friendly. People submitting stuff like that should be banned from contributing until they have learned how to write readable code.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  124. Re:But ... but ... no rant against GOTO???? by gweihir · · Score: 1

    Sometimes it is the only sane way out. Even Djikstra did acknowledge that. His "goto considered harmful" was for when goto was used instead of the (newly available) tools of structured programming. It was not for cases where the goto is simpler and clearer. Also note that a "break" or "continue" is basically a disguised "goto".

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  125. Re:Not many people could get away with saying that by gweihir · · Score: 1

    Looking at some comments here and in similar stories, it seems there are quite a few people that would indeed try this.

    Relevant quote: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan

    That one is very, very true.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  126. Re:Linus is right only for people of his caliber.. by Wrath0fb0b · · Score: 1

    Well, the specific behavior in this types of cases will/may depend on the hardware.

    Which is exactly why you should use a compiler intrinsic since it's their job to keep track of machine details.

    And in any case using a gnu version-specific intrinsic is probably not the best thing to do in general.

    They didn't use the gnu intrinsic, they macro'd it out into to resolve to an intrinsic where available. That's the best way to do it until all compilers get their act together and provide some form of "perform arithmetic and tell me if it overflows".

    This is the same way that all extensions are handled. Have AES_NI, you get some intrinsic, otherwise you go down a generic code path.

  127. Re:Not saying I disagree with Torvalds by bingoUV · · Score: 1

    So people never report problems to you which are not really problems but they didn't take the time to learn how to use the software so they think it is a problem with the software?

    --
    Bingo Dictionary - Pragmatist, n. A myopic idealist.
  128. Re:Not saying I disagree with Torvalds by strikethree · · Score: 1

    It is a shame that I ran out of mod points yesterday. +1 Insightful.

    --
    "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
  129. Re:An alternate perspective by SharpFang · · Score: 1

    The significant difference is that Linus isn't a pointless jerk - he just reacts aggressively to stupidity or arrogance. But you won't find him parking his car on a disabled people's place, or cheating a co-worker/partner out of a fair share of profits.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  130. Re: Not saying I disagree with Torvalds by Z00L00K · · Score: 1

    The level of rant is important too. It's better to hang out small issues to dry than to wait until you are flooded by them.

    The rants are more for everyone else to realize what's bad practice than for the one that made the mistake.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  131. Re: Not saying I disagree with Torvalds by Z00L00K · · Score: 1

    Not to mention that it will also make everyone else also pay attention.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  132. Re:Not saying I disagree with Torvalds by Z00L00K · · Score: 1

    The worst assholes aren't the ranters, it's those that don't care about any quality at all and keep others in the dark for their own purpose.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  133. Re:yet he allowed systemd..... by thegarbz · · Score: 1

    That was his respond to a direct question on systemd from the Ask Slashdot crowd. It was also a very recent quote (not selection of quotes), so I'm sticking with it.

  134. Who cares? by The123king · · Score: 1

    Seriously, who cares?

    --
    If you gave me a choice between a printer and a giraffe with explosive diarrhoea, i'll get my ladder and my raincoat
  135. Re:Not saying I disagree with Torvalds by bobbied · · Score: 1

    So people never report problems to you which are not really problems but they didn't take the time to learn how to use the software so they think it is a problem with the software?

    Of course they do. If my coworker is unaware of how the software is supposed to work and shows up with a "problem" for me to solve, my approach is to enlist them to "help" me fix it. What happens though, is they learn how the software is supposed to work because they get some OJT from ME the author. I get a reputation for being helpful and the company is better off because they then know their jobs better. Plus, understanding the perspectives of the users is ALWAYS a good idea. It helps me build the product in ways they want it to work and makes any UI's I produce more intuitive and user friendly.

    If I just told them to get lost and go learn their job, I'd get a reputation for being rude and unhelpful and neither of us would learn anything.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  136. Re:But ... but ... no rant against GOTO???? by TsuruchiBrian · · Score: 1

    At our work we have a rule of "don't use goto unless it is for a good reason" (e.g. breaking out of multiple nested loops). Although often times there are still more elegant ways of solving the problem than goto.

  137. Re:But ... but ... no rant against GOTO???? by gweihir · · Score: 1

    That is a good rule. While I agree that most of the time other things are better, sometimes they are not and then you should be allowed to use it.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  138. Re:Not saying I disagree with Torvalds by bingoUV · · Score: 1

    Ok, that is good. But doesn't it happen very frequently that his problem can indeed be solved only making it worse for others? Because others have a whole different way of using that part, reasons of which belong in history, which take hours to explain? And this particular problem finder's ability and willingness to learn about other people's use cases is low in the first place?

    And one fake problem finder's opinion is frequently diametrically opposite to another's?

    How much time per fake problem finder can you spend, and how many such people do you encounter?

    --
    Bingo Dictionary - Pragmatist, n. A myopic idealist.
  139. Re:Not saying I disagree with Torvalds by bobbied · · Score: 1

    I actually have an "out" with users in a case where they are insisting on some feature that we've already rejected. If after showing them how they can do their job, they insist it "should not be this way" I have them put in a bug report because "I cannot fix this right now and you have a work around". I just explain to them that the company policy is that if there is a way to work around the issue for the user, we take a bug report so we can schedule the work.

    If their bug report doesn't make it past the review process or never gets high enough priority to be worked, so be it. Again, I'm as helpful as I can be, showed them how to do their jobs and by being friendly and helpful have not caused a problem.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  140. Re:Not saying I disagree with Torvalds by bingoUV · · Score: 1

    That makes sense, thanks.

    --
    Bingo Dictionary - Pragmatist, n. A myopic idealist.
  141. Re:Linus rants = tautology by SomeoneFromBelgium · · Score: 1

    ... or even worst: double speak (gniffle)

  142. Re:Not saying I disagree with Torvalds by Druegan · · Score: 1

    Personally, I'd love to work for somebody like Linus.

    I'd much prefer working for somebody with a severe allergic reaction to stupid shit, even my own, who demands competence and isn't afraid to hurt somebody's feelings, even my own, if they do something completely boneheaded, than somebody who tolerates braindead behavior that yields sloppy results because they're trying to manage with kid gloves.

    It may just be that I share some of those traits, and don't get bent out of shape if somebody rips me a new asshole publicly when I do something dumb... And it also may be that I've had far too many bosses that took the opposite approach and turned the entire organization into a barely functioning clusterf*ck because they didn't want to be a "bad guy".

    In my experience, the "ideal medium" between the two extremes is so rare anymore as to be up there with winning a lottery or finding an honest politician who is also sane.

  143. Re:Not saying I disagree with Torvalds by dl_sledding · · Score: 1

    I accidentally the word "grows".

    Ummmm....

  144. Re:Not saying I disagree with Torvalds by bobbied · · Score: 1

    You know, I don't care what folks think about me and I'm willing to accept that MY code is crap at times. I've been publicly reprimanded on a number of occasions by people I really respect, so I understand your position.

    However, I've also observed that there is only so much I can do alone and the bulk of people I've worked with DO care about such nonsense. So where you and I might not care, we are in a distinct minority. Part of being effective as a manager is understanding how to best relate to the members of your team, so if you want to be good at this management job, you adjust YOUR behavior. You do this to assemble and keep the best people.

    Please understand what I'm saying. If I'm having a problem relating to somebody, I seriously consider how I can change my behavior/approach and restore the relationship. This means I go out of my way to avoid offending others by what I say or do. I understand you cannot win them all, that there just are people who for what ever reason don't like me. I also realize that some may think that bending over backwards for others is not worth it or fair, but I realize that it is to my advantage to be as accommodating to other's faults as possible. I suggest you might consider doing that too.

    --
    "File to fit, pound to insert, paint to match" - Aircraft Maintenance 101
  145. because you dont.... by ancientmyth · · Score: 1

    The subject of this post pretty much sums it up.

  146. Re:Not saying I disagree with Torvalds by dmpot · · Score: 1

    Apparently, you have never managed any software project for many years. Because if you did, you would realize that people are different, and some far more sensitive to criticism than others. Also a lot depends on the overall culture in your organization. So without any specific context, all those generalizations about what "a wise manager" is supposed to do is UTTER nonsense.

    Now if we speak about the Linux kernel, the fact is the success of the Linux kernel is largely due to Linus ability to keep many talented people involved, and he works with same people for many years. So whatever words he chooses to express himself, it does not seem to affect his working relationship with those people. Also I do not remember that he has ever criticized newbies, who are still learning, or anyone like that. Practically, all his harsh words were directed at his lieutenants, who were entrusted to keep the source code to a certain standard, but failed to do so.

    Finally, I will never trust you (or anyone else) just because you are willing to work on some stuff. I can trust you only if I know that you can deliver the result that meets certain requirements. I had a developer who tried to be nice and willing to work on almost anything, but his code was nearly always crappy, so giving him nearly any task (aside the most trivial stuff) was completely useless. So we had to part with him. So the question is not what you are willing to do, but what you can deliver in practical terms.