Abuse is indefensible - <AUTHOR> https://blog.mozilla.org/nnethercote/2015/11/04/abuse-is-indefensible/ <comment><USER2> When I was 17, I was super enthusiastic about Linux. I read a bunch of stuff about kernel development. Linus' attitude was very well known and presented as an amusing thing. Glorified even. I remember reading some of his emails with a great deal of schadenfreude.

Now I'm really glad I never pursued that. I work in a field where all the leading figures are _absurdly_ nice and respectful. Reading Linus' rant makes me appreciate that more.

<comment><USER3> I think this is the underlying point. It's difficult to imagine that Linus's style of criticising attracts people to the industry, or indeed has any benefits at all. Conversely, it clearly puts off a lot of talented people from getting involved in Linux, and people use his style as justification for their own aggression.

Outside of the open source movement, managers using this kind of language would be reprimanded and even fired, as it could make employees feel stressed and suffering from constructive dismissal.

There is simply no need for being rude, or any kind of aggression in the workplace, and we should consider open source contributors as being in the workplace. Full stop.

<comment><USER4> "Difficult to imagine" isn't evidence; it's just failure of imagination.

</comment></comment></comment><comment><USER5> I thought that finally I can see example of Linus being abusive. This was not it.

Linus was attacking the work and ideas and cursing them. He was not attacking the person who wrote the code. Cursing is not abusive by itself. Cursing is emotional emphasis.

I would not want to work in a environment where strong emotional language used to criticize your work is considered abusive. If conflict over ideas and work does not make your blood flow, you don't care.

<comment><USER6> But do you not feel offended when you are the one who came up with the idea?

<comment><USER7> They... should be offended? Because it was a bad idea that ruins the Linux Kernel. Kernel development isn't for everyone.

<comment><USER8> Can you (the person who wrote that this code would "ruin" the Linux kernel) explain in as much detail as you can _how_ it would have ruined the Linux kernel?

I'm curious about how much people take what Linus says at face value.

<comment><USER7> Code being safe or unsafe is a pretty objective metric of quality, methinks.

<comment><USER8> I agree. Can you explain how this particular code is "safe" or "unsafe"? Again: I'm curious as to how much of what Linus says is taken at face value on HN.

I'm even more interested now, because the fulcrum of Linus's argument isn't safety.

<comment><USER7> You are committing a logical fallacy. I'm not "the voice of HN", nor am I a representative sample of "what HN thinks".

This is just my opinion.

Using a builtin operation ("addition and comparison of integers") is always safer than using a function that may or may not work the same everywhere. I.e. a nonstandard function.

Also, the proposed code has more levels of indirection, therefore places a higher cognitive load on the reader. These things tend to result in bugs down the road.

And it is also true that "an overflow could still happen", which is mentioned in Linus' critique.

All of these are objective ways to measure how "safe" the code is.

<comment><USER8> No, that's not what Linus is saying. It's close to the opposite of what he's saying (overflow_usub wraps a builtin). You obviously can't simply use the builtin addition and subtraction of unsigned integers in safe code, because in modern C, integers wrap.

Returning to the thread: why are you so comfortable extrapolating from Linus's rant to "this code would ruin the Linux kernel"? You don't grok the code he's talking about.

Is it because "if Linus is arguing against this code with this much ferocity, the code must be _really_ bad?" Because if that's it, you're starting to see the issue some people have with the tone he uses.

<comment><USER7> In the discussion Linus is providing his suggested code, which is literally "just a builtin addition", but your opinion is that "He says that you can't use builtin addition".

OK, sure.

<comment><USER8> That is not in fact what Linus is saying. At this point you might want to take my word for it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> My take on it was that the non-abusive rewrite would be much more useful to the submitter, as it lays out the issues. The original just make Linus look like he's lost it. Glad I don't have to work with him.

</comment><comment><USER10> I thought Mr. Sowa's reply to be a very professional in defending his decisions to write it as he did, and still remain open and gracious in Linus' criticism.

[http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02919.html](http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02919.html)

A worthwhile read in how to handle these situations.

</comment><comment><USER11> To be honest, Linus' rants is making a better point for me. I really feel his pain with overflow_usub, and i feel nothing when reading rewritten version.

<comment><USER9> Why on earth do I need to "feel his pain" rather than just understand the issues at hand?

<comment><USER12> Because them some people think it's still ok to go with the broken code

That's cultural differences 101

As a simple example: in Canada one might say "please do not feed the animals" in a Zoo. In some other places, for the message to have the same effect it must be as such: "It is expressly forbidden to feed the animals! Those being caught doing so will be expelled from the zoo!"

<comment><USER8> Wait. "Broken" code?

<comment><USER12> From the original Linus email

"And yes, you still could have overflow issues if the whole "hlen + xyz" expression overflows, but quite frankly, the "overflow_usub()" code had that too"

<comment><USER8> I'm afraid that doesn't clarify, because if the overflow_usub code is broken in _that_ sense, then so is the code Linus is advocating for. Do you still think "broken" was the right word to use? Why?

<comment><USER12> I think there's also the issue of limited compiler support for that feature

Maybe broken is too strong a word I agree

<comment><USER8> overflow_usub is the code that gets called when your compiler doesn't support __builtin_usub_overflow (Linus opposes both the function and the intrinsic, of course).

<comment><USER12> True, however how it is used in this case leads to unnecessary opacity

(I'm referring to the || mtu <= 7 part), which, once you know how usub_overflow works is obvious what it means, but this might not be evident and unnecessarily complicating that snipped

Sometimes 'smart code' is not necessarily better

(I'm open to disagreement, though)

<comment><USER8> Just to be clear: I don't think Linus is _wrong_ (I'm also not qualified to judge that). From what I can tell, he's like, 52.5% right.

What's more interesting to me is how low-stakes this issue is. Gizmodo wrote an article about it, but really, if you understand kernel C, do you even give a shit about this code? Linus could have said "we're not using GCC builtin overflow intrinics", just like that, one line no punctuation, and the issue would have been settled.

But look at this thread at the number of people who extrapolated from Linus' rant that this code was bad, _ruinous_ , unsafe, "one size fits all" (still scratching my head about that), &c. How many of Linus' defenders actually know what he's ranting about? It looks to me like: not many.

What's funny is, you actually do seem like you know what he's talking about, and even you overshot the mark with "broken". :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Why is it that people who support Linus' tirades and mention freedom of speech, etc get so incredibly hurt when others exercise their own freedom of speech and point out how abusive they are?

<comment><USER14> Because one is saying "what you are saying is wrong" and the other is saying "you should stop talking".

That's a _fundamental_ difference.

If they get hurt (big "if"), then they are still not saying "and that means you are not allowed to talk".

Are you seeing an inconsistency that I'm not?

<comment><USER15> _Because one is saying "what you are saying is wrong" and the other is saying "you should stop talking"._

No, they're saying stop being a jerk.

The only way that translates to "you should stop talking" is if said person is incapable of communicating whilst not being a jerk.

<comment><USER14> I'm sorry if my illustration of why there is no hypocrisy was unclear.

There may be jerk behaviour. I'm not saying there isn't. I did not mean to address that part at all. I'm saying there's no hypocrisy.

</comment></comment></comment></comment><comment><USER16> As I understand it, the Linux codebase has hundreds of regular contributors and Torvalds basically spends his entire time reviewing patches to an operating system kernel that is used in countless mission-critical scenarios across the world. The implications of introducing a bug or security exploit to an OS kernel could be as severe as loss of life.

With that in mind, I find myself wondering every time I read a report like this: the instrument may be blunt and the punishment humiliating, but is it really unnecessary?

If just one more contributor submits a similar patch, the chances of such an error making it through code review is doubled. If you don't have a strong handle on what is being submitted you will quickly lose control.

The purpose of a rant like that is not to provide feedback to a contributor that he made a mistake, it's to send a clear message to the wider community that code of that kind must not ever be submitted in the first place. It's a first line of defence against bad code. And to that end, I'd say it's quite effective.

I've never written a line of kernel code in my life, and I probably never will. But if I choose to make a contribution to Linux, even a few years from now, I will remember what practices to avoid through my memories of this and previous rants.

<comment><USER8> "Such an error"? What error?

<comment><USER16> I don't know, I'm not a kernel developer. Whatever error Linus was trying to avoid.

<comment><USER8> I don't think "error" was the right word.

</comment></comment></comment></comment><comment><USER17> I am troubled by this obsession that these activists have with Torvalds. Could there be anything more minor than these complaints about tone? What harm does the existence of one software project which permits 'rants' do to others?

Do those who claim to desire civility not understand that by hounding and inundating him and the community in general with the same talking points ad infinitum, they are themselves being uncivil? Not only by the unrelenting and hostile complaining, though. They have gone much further; Eric S. Raymond alleged yesterday that feminist groups have been repeatedly attempting to frame him for sexual assault! [http://esr.ibiblio.org/?p=6907](http://esr.ibiblio.org/?p=6907) The OP post title is applicable to this situation in my opinion.

<comment><USER18> I'm not sure ESR is the best unbiased source on feminist groups.

[http://rationalwiki.org/wiki/Eric_S._Raymond#i_am_slowly_goi...](http://rationalwiki.org/wiki/Eric_S._Raymond#i_am_slowly_going_crazy_one_two_three_four_five_six_switch)

Rational Wiki certainly has its own biases, but they call out a lot of problematic items with links right back to the blog posts if you care to verify.

<comment><USER17> I wasn't aware of that crankery, however, that does not discredit these straightforward allegations (argumentum ad hominem). I should add that this particular tactic is already being practiced on the bigwigs in the atheist community, so it's far from implausible.

<comment><USER19> The allegations have _absolutely no evidence_ behind them. In that case of course one should take into account their source's general credibility, or lack thereof.

As for the atheist community, you will have to provide a source.

<comment><USER17> i) I think there's a difference between being a conspiracy theorist (allegedly; haven't looked into this), and being a liar. Credibility does not extend across domains, either. An authority on, say, OS design might be a complete fool when it comes to politics (for instance).

ii) Allegations have been made against Micheal Schirmer and Lawrence Krauss (not hard to find if you search for them).

</comment></comment></comment></comment></comment><comment><USER20> Can anyone defend Linus' version as better communication than Eisenberg's?

<comment><USER7> Nobody will try to pull that shit again for quite some time.

The "Constructive" version will be handwaved by submitting the same code again and giving literally any deflecting excuse like "You're just afraid of using new technology like this function.

<comment><USER21> >pull that shit

Right, in fact, if I were the developer who wrote that shit, I would probably think twice about doing any work on the code. Not because I was insulted but because I would be scared. I don't know about this specific situation and maybe it's political/religious. But maybe the girl/guy just wrote this code because they thought it was the best solution. Being screamed at by an authority like that (even if they don't mention you by name) would be quite demoralizing to me. But I guess you can argue that I just don't have what it takes to be a Linux contributor then..

<comment><USER7> I would argue exactly that, yes. If you don't understand basic things about code clarity and safety, you're not ready.

The Linux Kernel doesn't exist to validate your opinion of yourself, but to literally support the world's software infrastructure. Which is more important.

</comment></comment></comment></comment><comment><USER22> I didn't find this rant abusive. Once worked for a law firm in a high stress industry - some of those lawyers were abusive, woah nelly. Also, have a brother who was in army, you can't even imagine the language of he and his friends.

This is child's play and someone who ultimately cares about delivering a quality end product who was offended by someone taking away from that mission. And his point was right, the code was bad and shoehorned into a magical one size fits all solution.

I'm most curious on the age / background of those in this thread who do find it hurtful and offensive.

<comment><USER5> >I'm most curious on the age / background of those in this thread who do find it hurtful and offensive.

Me too. I feel that there is generational shift.

For me, abusive means that someone picks you as a permanent target and treats you badly consistently.

I'm completely fine with people calling me with names over some issues when it's clear that they are fighting against me over some specific issue. I'm allowed to use strong words as well. When the subjects changes, there is no hostility. That's how you know you are dealing with emotional person who is not abusing you.

Picking up text fragments and analyzing one email for triggers that can be labeled as "abusive" seems so weird. I guess I feel that there is difference between "abusive language" and abusive and others don't see it.

<comment><USER16> I agree, and I think you're both right that it's generational.

</comment></comment></comment><comment><USER23> Linus' version is intimidating. But that's why it is very effective. Case in point, we people on hacker news would have never even read his rant if the language was mild. So in some way it sticks better. You really DO NOT WANT to step on his toes again (and everyone else reading it, too), so in the end Linus' wins.

Also, it's sad, but after so many years on the internet I don't consider his language to be abusive. It's aggressive yes, but clearly there went much though into it. If I'm honest, i find it kind of amusing. But maybe that's just me.

<comment><USER24> > You really DO NOT WANT to step on his toes again (and everyone else reading > it, too), so in the end Linus' wins.

And yet it keeps happening, frequent enough that it's something everyone knows about. If anything, he's not optimizing his own responses based on actual performance. He's doing the same thing over and over again and expecting different results. And he's not even being efficient with it.

And, well, pretty sure he ruins his own performance by getting all enraged like that.

<comment><USER25> > He's doing the same thing over and over again and expecting different > results. And he's not even being efficient with it.

It seems his results are just fine, why would he expect different results? I say this supported by the slightly arguable premise that the Linux kernel is a good example of a big success in software development.

</comment></comment></comment><comment><USER26> abuse? offensive? haha, what a first world problem, having my code called "shit" is abuse now.. i wonder what you would say about real world abuse.

just grow a skin, Linus can say and do whatever he wants about his project (linux). don't like it? don't help it then.

seriously kids these days get offended by everything..

</comment><comment><USER27> "Nonetheless, I've seen multiple people defending and even celebrating it. (One outlet called it an "epic rant".) "

I don't think calling it an "epic rant" was celebrating it.

[http://www.itworld.com/article/3000564/linux/linus-goes- on-e...](http://www.itworld.com/article/3000564/linux/linus-goes-on-epic-rant- about-linux-kernel-code.html)

"Linus loses it in an epic rant about kernel code." isn't exactly a complimentary line, IMO.

<comment><USER28> I read the adjective "epic" as flattering/celebrating. In use its somewhat similar to "awesome" in North American English.

I'm not clear if the author is from the UK or something, though.

</comment></comment><comment><USER4> A person wrote things that some other people find morally objectionable. Some other people think the thing that person wrote was not morally objectionable. Now someone "considers" the thing "indefensible" in their "personal opinion." Hacker News asks for intellectually stimulating topics; this one isn't.

</comment><comment><USER29> From the team that hounded out Brendan Eich...

May I quote the UN Universal Declaration of Human Rights, Article 19: "Everyone has the right to freedom of opinion and expression: this right includes freedom to hold opinions without interference and to seek, receive and impart information and ideas through any media and regardless of frontiers.

<comment><USER30> Brendan Eich stepping down as Mozilla's CEO was not due to speech:

>His appointment sparked controversy over a $1,000 political donation Eich had made in 2008 to the successful campaign for California Proposition 8, which sought to establish that, "Only marriage between a man and a woman is valid or recognized in California."

<comment><USER31> While I don't agree with his personal donation or Citizen's United, that case held that political donation is a form of protected speech[0].

So in a very literal way, he was pushed out due to the manner in which he chose to speak.

0: [http://www.scotusblog.com/case-files/cases/citizens- united-v...](http://www.scotusblog.com/case-files/cases/citizens-united-v- federal-election-commission/)

<comment><USER19> You don't have to support the Citizens United decision to think that contributing small amounts to political campaigns is effectively speech - because the money is used to promulgate speech (ads), as well as in the more abstract sense that donations are viewed by society as a normal and encouraged outlet for people to promote their viewpoints.

(Of course the humongous donations the decision enabled are also used to promulgate speech, which is why I have some sympathy for it, but there's just a huge difference in practice between giving $1,000 and giving millions.)

</comment></comment></comment></comment><comment><USER32> That's simply an expression to emphasise on current feelings and to add tone to the text. The rewritten text is clearly overly bland and on the edge of being apologic and doesn't reflect the anger and annoyance that Linus most likely felt at the time of writing the mail. It seems that people do not realize anymore that languages exist not only to pass the point along but also to express yourself (including emotions and feelings).

Further more I think that thanks to Linus being "abusive" it makes contributors think twice before they submit code and making sure the code is mostly valid, which in turn, results in higher quality code landing in the codebase and decreases the risk of potential bugs. Does that make some people "scared" of contributing? Sure but that's a whole different story.

</comment><comment> uhny-uftz Methinks Linus needs to be heeding his own words:

 _As a reviewer of code, please strive to keep things civil and focused on the technical issues involved. We are all humans, and frustrations can be high on both sides of the process. Try to keep in mind the immortal words of Bill and Ted, "Be excellent to each other."_

[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodeOfConflict?id=ddbd2b7ad99a418c60397901a0f3c997d030c65e)

</comment><comment><USER33> > I consider this kind of abuse indefensible. Nonetheless, I've seen multiple > people defending and even celebrating it.

And so what? You have never seen bullies in School ? Are you going to go in the streets and fight for moral righteousness in every corner ? Or are you just picking on Linus because it's an easy target with no controversy ?

It's not like people who work with Linus don't know how he acts and interacts with others. I'd rather have someone who is blunt and direct than someone who smiles to your face and says shit in your back. At least you know where you stand.

<comment><USER18> > You have never seen bullies in School ?

Of course there are bullies in school.

That doesn't make it a _good thing_. Ideally, there _wouldn 't_ be bullies in school. And Linus isn't a child.

> I'd rather have someone who is blunt and direct than someone who smiles to > your face and says shit in your back.

False dichotomy. There are plenty of people who smile to your face _without_ having to say shit about you behind your back.

</comment></comment><comment><USER34> Previously discussed here: [https://news.ycombinator.com/item?id=10492282](https://news.ycombinator.com/item?id=10492282)

Wasn't it throughly discussed, dissected, analysed and debated in that very recent topic?

The only new input this post beings is one more opinion among the many in that other HN post. Should it be considered a dupe?

<comment><USER35> Yes. The link for this story adds less than the average comment on HN in the previous discussion to the overall conversation.

</comment></comment><comment><USER7> Funny how the author "will moderate comments" and the only comments left are those who uncritically agree with them.

<comment><USER36> I see at least two comments that are critical of the author. And even if they were posted after you wrote this, how do you know he has deleted anything at all?

<comment><USER7> Give it an hour.

<comment><USER37> Two hours later, they're still up. Time to admit you're wrong.

</comment></comment></comment></comment><comment><USER38> A Social Justice Warrior from Mozilla makes a blog post about a project he doesn't contribute to, in order to comment about tone.

I can't wait until all these people fork the kernel. I bet it'll have literally _double_ the amount of commits from these javascript programmers, finally able to peacefully contribute.

</comment><comment><USER39> This is hilarious. This has to be satirical. When did mail list rants become a social issue?

</comment><comment><USER19> Personally, I think the suggested rewrite does a good job of defending the argument _for_ ranting:

[http://catcode.com/comments/2015/cf20151101.html](http://catcode.com/comments/2015/cf20151101.html)

Compared to the actual rant, it's deficient in explaining Linus's viewpoint in multiple ways:

\- The phrases "The problem as I see it" and "I think", which I imagine Eisenburg added in an attempt to avoid jumping to conclusions or avoid making it personal or whatever, to me come off as hesitant or unsure. There is an authoritative rejection of the patch itself at the end, but still the revised post sounds like Linus is inviting people to post their opinions over whether the code is actually problematic or not. By contrast, the original post makes it clear that he is _highly_ convinced that the code is bad and will need extremely persuasive evidence to change his mind. Now, you could say that it's rarely productive to solve problems by shutting down debate, and that he _should_ invite opinions - but in truth, Linus probably would at least consider a sufficiently rigorous and detailed counterargument, and him clearly expressing the force of his opinion gives other people a signal that they should take the time to write such an argument, rather than being more brief (because they think Linus is hesitant and that that is sufficient), and then being promptly overruled, even if, given the chance, they could have persuaded him.

You might not see Eisenburg's version as hesitant yourself, but that's precisely the point - all language is ambiguous, but using reserved language errs on the side of having people think your opinion weaker than it is, while harsh language is the opposite.

Of course, the flipside is that someone who doesn't know Linus's history might well conclude that he's so angry as to be beyond reason, discouraging detailed rebuttals for the opposite reason. In fact, I think that is _likely_ to happen in this case, and that therefore his post went too far - just because I am defending harsh language in general doesn't mean I agree exactly with his tone choices. There are certainly potential midpoints between the actual rant and Eisenburg's version that would clearly establish his position without being quite so mean. But hindsight is 20/20, and the problems with Eisenburg's version show the danger in general of being reserved in online text communication, given its low bandwidth.

\- The rant also makes it clear that he thinks the whole idea of using such functions is bad, and that other authors writing somewhat similar code should also consider themselves warned, whereas Eisenburg's version makes it sound more like his complaint is specific to the case at hand - e.g. the especially poor formulation of the line criticized, compared to more elegant ways to use the overflow arithmetic functions, or the implementations of those functions.

\- Nethercote explicitly noted that the rewritten version is much shorter, but actually it is missing two important factual details:

1\. The claims that the code is not particularly safe, and inefficient even with "magical compiler support". (Eisenburg's version just says it's unclear and inefficient /without/ magic compiler support.)

2\. The reason why Linus is pulling some random line to criticize out of a bug pull request containing many patches. Issues with pull requests are usually merge conflicts, so is there an unstated issue with that here? The actual rant makes it clear that the conflict just happened to make him notice that particular bit of code, which he found so distasteful that he felt he had to jump in.

By the way, I think Linus is full of crap: while the line at issue isn't great, the use of those overflow-arithmetic functions in general is a great idea, considering how easy it is to screw up a manual overflow check in C, and how ridiculously frequently this results in real security vulnerabilities (among other issues), including of course in Linux in the past. But that's mostly orthogonal to his manner of expression.

<comment><USER40> > By the way, I think Linus is full of crap: while the line at issue isn't > great, the use of those overflow-arithmetic functions in general is a great > idea, considering how easy it is to screw up a manual overflow check in C, > and how ridiculously frequently this results in real security > vulnerabilities (among other issues), including of course in Linux in the > past. But that's mostly orthogonal to his manner of expression.

The overflow checking functions are very compelling for unsigned multiplication and all of the signed operations. It makes sense for unsigned addition and subtraction if it's already an existing pattern for the difficult cases, but I don't think it was a good way to introduce the functions. These are definitely the most optimized way to perform the checks across the board though, especially for multiplication. Linus is just making incorrect assumptions based on his lack of faith in compilers.

</comment></comment><comment><USER41> I've read a few of Linus' rants and been on the fence, but this one does seem to have crossed some sort of line into being unnecessarily abusive, and to add to that, unclear communication. The rewritten version really does emphasise a much better approach. Linus's rant doesn't read like it was written by... a stable person.

I was in full agreement with the article up until this:

>Of the many things I could say about this, I will say just one: sadly, I am certain the reaction to this text would be entirely different were it written by a woman.

What the... where on earth did this come from? Completely irrelevant and not true in my opinion. This issue is about whether it post was abusive, the gender of the poster makes no difference. I'm pretty sure that female Linus (assuming female Linus had accomplished everything real Linus has over her life) would have had a bunch of loyal followers that defended her no matter what she said, and a bunch of people who thought she was out of line.

Does the gender issue really have to be shoehorned into every story?

<comment><USER42> > Completely irrelevant and not true in my opinion.

Hardly, when talking about brash/abusive behavior in the context of an industry where women are underrepresented, I think it's plenty fine to mention that there might be a connection to be made.

> the gender of the poster makes no difference

Eh, I don't agree. It's well-observed in social sciences that men are given more leeway to be abusive than women are; one example is how often words like "abrasive" or "bossy" come up in performance reports: [http://fortune.com/2014/08/26/performance-review-gender- bias...](http://fortune.com/2014/08/26/performance-review-gender-bias/)

Or just look at our popular media: how many male antiheroes on TV have enough audience to support them vs. women antiheroes? For every Walter White or Doctor House or Tony Soprano, how many unlikeable women are there? Roxane Gay writes about this pretty well. [http://www.buzzfeed.com/roxanegay/not-here-to- make-friends-u...](http://www.buzzfeed.com/roxanegay/not-here-to-make-friends- unlikable#.ineD9MA1A2)

> Does the gender issue really have to be shoehorned into every story?

Per above, I don't think it's "shoehorned." And I think it's fine if we talk about it more than we currently do, because there's plenty to suggest we don't talk about it enough or are insufficiently introspective about it.

<comment><USER4> If women are socially punished for being abrasive or bossy, you could consider THAT to be a problem. I might consider it a basic human right to use curse words, get angry, and come off as abrasive, and in fact I truly do.

Somewhat relatedly, the supposition some people have that "women" need to be especially protected from teh scary curse words pisses me off. THAT is a gendered prejudice based on Victorian morality or something.

<comment><USER43> > I might consider it a basic human right to use curse words, get angry, and > come off as abrasive, and in fact I truly do.

This is a common error, but you're mixing up the idea that the government shouldn't be allowed to penalize you for your free speech and the idea that _no one at all_ should be able to react to you for using curse words, getting angry, or coming off as abrasive.

If I think you're an asshole, I'm perfectly within my rights to not hire you, not befriend you, make fun of you to other people, not invite you out on camping trips, "accidentally" give you smaller slices of birthday cake at company parties, write internet comments calling you a doofus, etc.

<comment><USER4> I don't know why you think I made that error. Is it because I said "human right" that you think I was making a point about government censorship?

<comment><USER43> I read your comment above as saying this:

"It's a problem that women are socially punished for being abrasive because I consider being abrasive a basic human right."

It is a basic human right to use curse words, get angry, and come off as abrasive. That fact does not protect you from social punishment if you behave in a way that the people around you don't want to tolerate. Nor should it.

<comment><USER4> I meant to say if women are especially penalized in an unfair way that hinders them from other basic stuff like career and community. Of course people are free to dislike abrasive styles of talking. But combined with gender discrimination, it becomes a problem. I don't think men should be excessively punished for cursing either, but they generally aren't (in secular societies).

</comment></comment></comment></comment></comment></comment></comment><comment><USER44> If US-Americans could just for a moment stop trying to impose their "culture" on everyone else, that would be nice.

Oh, right, they can't.

<comment><USER45> Perhaps you could elaborate on how this is even relevant.

</comment></comment><comment><USER7> So which is it? Does ranting have a huge impact that keeps people out, or does it "not have the power"? And if it's powerless, why are you so eager to censor it, then?

Also, why don't you keep in your lane and only oppress the Go community with your code of conduct? There's no need to also invade Linux.

<comment><USER46> It is both. It means the only people who stick around are those who can tolerate the childishness. This certainly reduces the number of capable people that are willing to contribute to the project.

I don't care much how Linus acts since I don't work with him. Some people try to emulate him and I sometimes come into contact with them; that's not great for me, but far be it from me to tell Linus how to act on his own mailing list. All I'm doing here is pointing out the fallacies in your defence of his silly behaviour.

Do you also prefer his hysterical style? I am hardly "invading Linux" by commenting on an HN thread.

</comment></comment><comment><USER47> I have an idea. What if people who like Linus' style work together. And people who like Eisenberg's style work together. And then they leave each other alone?

</comment><comment><USER48> Linus doesn't deserve to be in his position. Technical merit doesn't excuse being a horrible manager of people.

<comment><USER49> > Linus doesn't deserve to be in his position.

What exactly do you mean by "in his position"?

It's his project that he started years ago. His participation is likened to a monarchy, not a democracy. His further involvement is, therefore, not something that can be decided by an election.

He doesn't deserve to be in his position with respect to a project he started and owns? That doesn't make any damn sense.

<comment> norea-armozel Or maybe since he can't communicate without expletives or being overly coarse he can appoint someone else to the task of explaining the problems with code contributions?

<comment><USER49> > Or maybe ... he can appoint someone else to the task of explaining the > problems with code contributions?

Of course he _can_ , but that doesn't mean he _will_.

</comment></comment></comment></comment><comment><USER50> Abusive ranting isn't healthy communication but neither are personal attacks carefully disguised as constructive criticism.

The post raises the question as to whether passive aggression or active aggression is the worse offender.

</comment><comment><USER51> Yes, it's harsh, but it gets the point across in a very memorable way.

He knows very well how people perceive it, but code quality and his reputation as a developer are more important to him than the reputation he gets from his rants.

<comment><USER52> I don't find it very memorable, aside from it reinforcing the memory that Linus is often a jerk. All the insults and general ranting get in the way of the point, they don't reinforce it.

Compare with some classical technical rants like, say, The UNIX-HATERS Handbook. It has a wonderful ranty tone to it, but it's also full of pretty solid technical information and reasoned technical opinions. The tone makes it memorable without getting in the way of the information. It's far from a reference book, but it's great material. It's an amazing reminder of how much the computer industry loves to forget the past and then eventually reinvent it.

Linus's rant, on the other hand, is about... integer overflow, I guess? And code readability? And I don't think he actually _explains_ anything about either one, so I don't know why he prefers one version to the other, but I know he prefers it _really_ strongly.

Churchill said, "Diplomacy is the art of telling people to go to hell in such a way that they ask for directions." Similarly, a _really_ good technical rant is one where you call the other person a complete and utter idiot in such a way that they thank you for your help.

</comment></comment><comment><USER53> i read this response by linus and it doesn't seem to be abusive to anyone, he's being critical of the code.

who is this linus guy anyway? he sounds like a typical new yorker.

<comment><USER39> >who is this linus guy anyway?

lol. just the guy who wrote linux and git. He's a fin btw.

<comment><USER53> ah. the name did sound familiar. in the position he's in, he probably sees too much b.s. and shenanigans all day, and i imagine there are people and organizations out there, perhaps even govts that would love to see this little os project fail.

</comment></comment></comment><comment><USER54> "I am certain the reaction to this text would be entirely different were it written by a woman."

Do we really need this garbage at the end of this post? How is it f-ing relevant? Linus' post was despicable in itself, everybody sees that except a few zealots. People are condemning it on this very thread, why do we need to throw this hypothetical gender bias BS?

The rant was written by a man, it is needlessly rude and aggressive, and we all point it out. Period.

A much more relevant thing to say would have been "I am certain the reaction to this text would be entirely different were it written by the guy who created Linux."

<comment><USER55> I agree with the parent. This article adds that in, what for? Does it bring anything interesting to the discussion? Is it even explained?

What a useless article.</comment></comment>


Crowdsourcing The Crystal Ball - <AUTHOR> http://www.forbes.com/2007/10/13/james-surowiecki-prediction-tech-future07-cx_js_1015wisdom.html?feed=rss_news

<comment><USER2> There are a lot of little "gotchas" to remember with this. For instance, each participant must have a vested stake in the outcome that is to be predicted.

<comment><USER3> Actually, many markets that only use play money still work quite well, the Hollywood Stock Exchange being one prominent example.

An active market could be great with real money, though. I haven't heard any examples of someone making a huge amount of money by trading predictions, but if such a person emerges, the real-money markets would see a very nice spike in interest.

I wonder if these things are more or less susceptible than stock exchanges to people who profit by manipulating outcomes. If the number of people in a position to perform a manipulation is fairly small (and therefore relatively traceable), that danger is avoidable. The pool of potential manipulators gets pretty big, though, with certain types of predictions, like when a person will die. (In other words, someone could kill the target and make a lot of money. Let's call it the democratization of insider trading.)

<comment><USER2> "Vested interest" can include all sorts of things: money, reputation, glory, play money, prestige, etc.

And there are all sorts of markets that use real money to trade predictions. They're called futures markets.

<comment><USER3> Futures markets deal with financial instruments, not predictions about stuff like when an iPhone nano will come out.</comment></comment></comment></comment>


Singapore-based Newkia wants to bring Nokia back - <AUTHOR> http://asia.cnet.com/singapore-based-newkia-wants-to-bring-nokia-back-62222296.htm

<comment><USER2> This is pure desperation and raking nationalistic fire by the CEO of newkia. The name sounds like a generic Chinese knockoff of Nokia, and they started the company in hopes of Nokia guys jumping ship to them. In reality, it looks like they will package cheap Chinese vendor phones with their own skin, that's it. Also, good luck with MS lawyers to able to legitimize the name Newkia.

</comment><comment><USER3> Meh. For me, the appeal of a Nokia phone is Windows Phone.

Take that away, and make a Nokia-like phone with Android? That would be fairly meaningless to me. There are already scores of Android phones with slick hardware. I prefer the industrial design of several compared to my Nokia phone. But they all run Android, and I've become bored with Android.

I'm not sure why Android fans are so evangelistic that they want to convert the scarce few stalwarts of alternatives.

<comment><USER4>
      I'm not sure why Android fans are so evangelistic that they want to convert the scarce few stalwarts of alternatives.

I can build an app for Android and have it live with the least amount of hassle, pain and blind rage that is no where near the comparison to what accompanies launching on the Windows Phone or on the iPhone.

I'd order the ease of _deployment_ for new apps by platform as so :

      * BlackBerry
      * Android
      * Windows Phone
      * The third circle of hell
      * Jimmy's app store
      * iPhone

<comment><USER5> "least amount of hassle, pain and blind rage" \- I find that comical. My short experience doing android development has been nothing short of a headache which I eventually rage quit, but more power to you if you find it easy.

<comment><USER4> My condolences :)

Don't think of this as a ridiculous idea, but have you tried your hand at BB apps? The sheer volume of rubbish apps on BB AppWorld can be at least partly be attributed to the ease of entry. If anything I'd encourage anyone to please create some quality work over there. You may find a fanbase.

</comment></comment></comment></comment><comment><USER6> If they had done this a year ago, with Nokia quality cameras and design, it could have been successful. Right now, I have a lot of doubts. The name will obviously have to change, and I have a lot of doubts in their ability to create quality hardware with meaningful differentiation from what is already out there.

Without a lot of funding, this will just end up being a rebadged version of something already available in China, IMO.

<comment><USER7> "If they had done this a year ago"

I guess we would never know but I disagree with you. Part of Nokia's charm had been always the ability to differentiate from the rest. And that would be really hard to do in an Android environment where the war is about high-end hardware at a cheap price.

Right now, Lumia 920 was supposedly in the same league than the Galaxy S4 and the iPhone 5 (performance wise speaking). But the S4 have a quadcore CPU and 2Gb of RAM while the Lumia "survives" with a dual core and 1Gb of RAM, roughly the half of hardware.

WP8 is fast enough to mask that hardware difference but without that advantage, I can't see how they would be competitive enough either with the price or with the spects

<comment><USER6> The Moto X (and it's Verizon brethren) are selling pretty well so far, and they are US only at the moment. They also have dual-core CPUs and relatively modest specs by modern standards. No OS magic is required to make this run acceptably, Android does just fine on its own (as it does on my 2 year old Tegra 2 tablet running 4.3).

There is a meme floating around that only Samsung makes money on Android, and that only high-end devices are profitable. Neither aspect of this has much evidence behind it.

</comment></comment></comment><comment><USER8> Nokia wasn't an idea. It was a group of people, it was factories, carrier relationships and a whole lot of patents.

It can't just be remade.

</comment><comment><USER9> Name will have to change. Will have to see about the hardware though. If they can pull off somethind like the Lumia but with Android I'll buy it.

</comment><comment><USER10> This is like Diaspora* with all the publicity a while ago. A nice attempt, maybe, to bring back "Nokia" but without a clear direction of where they are heading. A "Nokia" phone with android is going against Samsung not with Microsoft WP phones.

</comment><comment><USER11> The real new Nokia is called Jolla. They are just down the road from the old one, and they have been at it for a couple years now, and will soon ship their first products.

Jolla makes hardware and software. The software is called Sailfish and is based(?) on Mer, which claims to be a fork of Meego.

The old Nokia owns part of Jolla.

<comment><USER12> True this. Jolla is amazing, and very short of it's initial release. Yes, Sailfish is basically the successor of Meego :)

</comment></comment><comment><USER13> Sounds great, but that name is a lawsuit waiting to happen. It'll never fly.

<comment><USER5> Yup. Microsoft would sue in about a week.

<comment><USER14> Microsoft? Microsoft doesn't own the Nokia brand. If anything it will be Nokia suing them.

<comment><USER15> Microsoft just bought Nokia...

<comment><USER16> No, they bought their mobile & services businesses unit, and licensed some patents. Nokia still exists.

From Microsoft's press release: _" Nokia will continue to own and manage the Nokia brand."_

[http://www.microsoft.com/en- us/news/press/2013/sep13/09-02An...](http://www.microsoft.com/en- us/news/press/2013/sep13/09-02AnnouncementPR.aspx)

</comment></comment></comment></comment></comment><comment><USER17> Beside the terrible name, if they pull this off, I would be very happy.

If they propose crowdfunding this for example, I would happily throw on it lots of money =D</comment>


How has the Covid-19 outbreak affected the packaging industry? - <AUTHOR> https://firstname.lastname@example.com/how-has-the-covid-19-outbreak-affected-the-packaging-industry-e2425a5af645 <comment><AUTHOR> Like in many other industries, the COVID-19 crisis has made major disruption in the packaging sector. The global packaging sector is a relatively mature and vast market.</comment>


How to Make Money Online - <AUTHOR> http://macournoyer.com/blog/2010/06/03/make-money/

<comment><USER2> _How could you expect anyone to pay for your product if you don't do it yourself._

I find this particularly insightful. I think we tend to project our own perspectives onto other people and if someone personally doesn't pay for software it's difficult to believe that anyone would.

This is my principal challenge as I attempt to transition into an entrepreneur. I hate spending money and it's probably affecting the quality of the work I produce. I often opt to produce my own designs when I would probably be better off outsourcing that on something like 99 designs.

Old habits die hard but I am working on getting over it and articles like this one help a great deal.

<comment><USER3> What I did at first is I bought stuff from competitors or similar products. It was easier for me since I considered it market research in my head :) But now of course it's a lot easier to spent the money I've made online on other products. I feel like I give back when I do so. This is all just a story you tell yourself.

</comment></comment><comment><AUTHOR> Point #4 of "Don't undersell yourself" reminds me of Cialdini's Commitment and Consistency principle (in Influence, the Psychology of Persuation). Insightful.

</comment><comment><USER4> Very Interesting "Niche Markets is Where it's At!" -- this is very important but unreadable font =P

</comment><comment><USER5> Seems a bit fluffy/spammy for HN.

<comment><USER6> I disagree. However, I wish he had more to say about how to pick your market.

</comment></comment><comment><USER7> I just can't take an article seriously when it has "Get your credit card and start paying for those softwares" and "I think convincing someone to give your their hard-earned dollars is a valorizing".

Maybe step one is learning to write?

<comment><USER8> Or consider that he's from Montreal, Quebec, Canada, which means there is an odds-on chance his first language is actually French instead of English.</comment></comment>


Rails in the Enterprise - <AUTHOR> http://b.lesseverything.com/2009/8/3/rails-in-the-enterprise

<comment><USER2> Some anecdotes:

I do Big Freaking Java Web App development at work. Our core product is built on a Java stack which has been under continuous development for over a decade now. Some parts of it show its age.

We're pretty good at using our internal framework. My colleagues are much better at it than I, since most of them have been working on it for ten years. They estimated 1 ~ 2 man months to implement a particular internal app on the framework. A man month from a senior engineer at my company (the estimator) costs us... hmm... well, I can't tell you, but $10,000 is a nice round number and it isn't very wrong.

I prototyped the internal app in 2 days in Rails, with one day wasted because I was also doing it as my first AppEngine app. I estimate that 2 additional days would get it to substantially higher quality than the current internal app we have running. My fully loaded cost is rather substantially less than $10,000 per month, so I probably could deliver the app for 10% of what it actually cost us.

I can't tell you what the internal app is, but suffice it to say that it is standard CRUD and delivers business value well in excess of either of the development costs. It also uses very little enterprisey stuff.

I got permission for using a few days of company time on that project largely because I have a reputation for bringing certain projects in grossly under budget. My solution is simple: cheat. For example, I was given a stack of Perl code and told to provide documentation for it. The code was well commented and consistently written, but we had NO overarching design docs. (Provider X had subcontracted from Y who acquired Z who... it happens. Enterprise!) We were paid a large fixed bid for the documentation. I wrote a Ruby program to spit it out, complete with graphs describing control flow and web pages with syntax highlighted Perl code. That was approximately 5% my commentary and 95% the output of a Ruby programming which stitched together a one-off Perl parser (thank God for coders who were totally obsessive about their conventions) and an OSS graph producing library, plus Javascript SyntaxHighlighter and an OSS web template. The customer was overjoyed, my bosses pocketed a truly absurd margin (they bid on the assumption I would do it all via sweat of my brow), and I did not have to spend several months of my life reading through hundreds of Perl files with comments written only in Japanese.

That said, while I'd love if we could abandon all of our existing Java code and do nothing but Rails development, we have waaaaaaaaaaaaaay too much invested in our core products to do that. So I nibble around the edges, collect wins where I can, and take stuff I learn from Rails projects and get them incorporated into our core product line. (Example: I hooked the other member of the core team on Prototype, which is now the first and only Javascript library ever supported by our company, and customers who see screens with it incorporated are extraordinarily happy relative to their older, non-interactive screens.)

</comment><comment><USER3> As Joel Spolsky says _"With a contrived example you can prove anything"_

Are the rails apps simpler because they are just bringing rails in, and want to test it on something simple?

Have the java apps mushroomed into something that customers can't figure out because they're part of an old legacy system?.

Does this even have anything to do with programming? Maybe the people that develop the rails apps have great designer and UI people that make apps that are simpler to use.

Let's not judge on this kind of anecdotal evidence.

<comment><USER4> I absolutely agree. But I'd like to add that if you use a more rapid development platform than Java (be it Rails, Django or whatever) you have more _time_ to polish it, iron out the kinks, put a little bit extra effort into the user interfaces, and so forth.

Add to that Rails' integration with Prototype+Scriptaculous JS-libraries, enabling you to make easy-to-use drag-and-drop interfaces and so forth. At least for me, those things being easy to do, I tend to build better user interfaces than if I had to put it all together on my own. Simply because it takes less time and effort.

So, it is entirely _possible_ that the Rails apps are _more user friendly_ than the Java apps. I'm not saying this is the whole story, I just wanted to add that to the points you put forth, with which I completely agree.

</comment></comment><comment><USER5> I don't know. Seems fishy.

They won't tell the name of the company or give details on the types of applications. Then they claim what seems like unbelievable numbers. If 16% of my apps were on Rails and they were only generating .5% of my support calls I think I'd be inclined to move all my apps to Rails as quickly as possible. That project may very well have the greatest RoI in the history of business. If those numbers hold your support calls would go from 1800 a month to around 37.

Also, what company moves 16% of their apps to an alternate platform and doesn't bother to hire one single support person for that platform (when they employ 40)?

Could be true. But I have no reason to believe it.

<comment><USER6> The numbers sound encouraging, but I imagine the bias is in the details of the developer.

In a big company, who is going to be allowed to take the new technology risk? Senior developers. I imagine that the average dev on their Rails projects is much more competent than on their Java projects. Not becuase it's Rails, but because it's risky.

</comment></comment><comment><USER7> I have no doubt that it's true. Even though large corporations move slow, that doesn't mean that they don't have forward thinking people that work for them. I personally think that it's only a matter of time for large corporations to choose technologies where they can be more agile. Yes, Java has served its purpose for a number of years, it's become bloated and fragmented. One key determinant for corporations to make the move will be the availability of quality Rails resources. They won't be able to rely solely on their current Java resources because (IMO) many of them will not want to make the move (i.e. learn something new). Corporate america can definitely benefit from Rails. Just the same, Rails can benefit from corporate american using it in its enterprise technology stack.

</comment><comment><USER8> As others are saying there is nowhere near enough data to make a platform judgement. (and I'm a Rails guy..)

Likely the Java apps are much more mission critical and likely have been under development for longer and more robust... ergo more moving parts and more to break.

there's a lot to like about Rails - I think its great for intranet type apps, but this story is meaningless. Tell me these apps are mission critical or something, not the company blog and I'll buy in a bit.

</comment><comment><USER9> Now support calls on a web app are unlikely to be related to the technology used on the server side. Usually they are more related to the design of the application itself or what resides on the client side.

It also depends on the number of users, if they only have that little number of rails app, its probably because started using to test the water, and I doubt they used the large applications with a ton of users to begin with. If you have less users, you have less support calls. Applications that are critical or have to adapt to unplanned conditions also get more support calls. I could come up with similar figures for Lotus Notes, Oracle forms or excel spreadsheets based apps.

In other words, the article doesn't really mean anything.

</comment><comment><USER10> Yay, another anecdotal industry story with possibly made up statistics! Yay for NDAs that prevent us from doing proper research on software development! Yay for preventing us from gathering useful statistics!

</comment><comment><USER11> I've always wondered, what's the biggest application built on rails? Pre 1.0 I developed one (50kloc) that crumbled when wielding my newly found weapon of metaprogramming.

</comment><comment><USER12> One word: Grails</comment>


The Shape of History - <AUTHOR> http://chronicle.com/article/In-Ian-Morriss-Big-History/137415/

<comment><AUTHOR> Interesting fellow. Earlier in his life he was a heavy-metal guitarist: in 1979 he sent a demo tape to the group _Iron Maiden_. (He wasn't hired...) Later he wrote a history book fortelling the decline of the West and the rise of the East, and the CIA asked him to conduct a seminar on his studies.</comment>


Linus Torvalds dissects the ontological fabric of reality just to explain tags. - <AUTHOR> https://lkml.org/lkml/2012/4/15/112

<comment><USER2> I am not saying that he is not correct or that he is wrong in trying to enlighten Felipe, I just think he could have been more respectful. If his explanation of his reasoning and logic tends to look more like flame than an explanation I think it should be time to save the email and go do something else for a bit. I also think that posting this and getting it attention as a 'look at this guy, he got flamed!' bit is silly as well.

<comment><AUTHOR> I agree with your observation but let's remember that we are talking about Linus. He usually replies with a flamethrower - mainly when he believes in another way of doing things, but in the end he has a point. And that point is flame worth (IMO).

<comment><USER3> Being respectful, polite or sometimes even flammable are not contradictory. A well timed flame instance can act as a catalyst for understanding and development, at least that has worked with me. -- well-done many times

<comment><USER2> I totally understand your points of sometimes the point justifies the attention grabbing. But I also think that other measures might be worth taking other than flaming - like I often see the use of swears in titles to grab attention and help convey the importance of the subject, I think that alternative measures would be much more reasonable and still achieve the same goal.

<comment><USER3> Agreed. And that is a good observation, what is the actual goal of L.T.? I can only guess -- but perhaps the flaming serves as a tactics he utilizes to save one of the most precious we all have, the time.

</comment></comment></comment></comment></comment><comment><USER4> _If you know physics, think of a release (and the tag is associated with it) as "collapsing the wave function"._

What does ontological fabric of reality mean? (besides being a good headline)

<comment><USER5> As a consciousness had to apply the tag the wave function was already collapsed. A tag is more like adding another dimension to reality.</comment></comment>


Ask HN: Any one handed hackers? - <AUTHOR>

Busted wrist, lot's of work to do and now I'm typing one handed.  I'm wondering what other one handed hackers have done to be productive.
So far I'm very new to this and I have chosen to use the Dvorak right handed layout on a regular keyboard.  It's painfully slow but I'm sure I will get better rapidly.
Windows sticky keys helps with things like caps which require holding down multiple keys.
Windows On-screen keyboard helps for being a reference when forgetting key locations.
I'm looking at using hotkey programs and remappings to make certain things easier.
Any other ideas? <comment><USER2> Are you using the one-handed Dvorak layout? Because if you're not, there is one. You might find it helpful to use a short stroke laptop-style keyboard and/or a mini-keyboard with smaller keys. If you're willing to spend some cash, you have quite a few options. There's the <http://www.frogpad.com/> a compact, one-handed keyboard. If you're investing for the long term, <http://www.maltron.com/> make superb one- and two-handed keyboards with phenomenal ergonomics.

</comment><comment><USER3> There are "chording keyboards". Searching on that may turn up some items of interest. Not cheap, though, which is why I never got around to paying to try one.</comment>


Show HN: Generate beautiful summary GitHub statistics images using Actions - <AUTHOR> https://github.com/jstrieb/github-stats <comment><AUTHOR> I made this as a fun weekend project to add summary statistics to my GitHub profile that visually match the style of the rest of the site.

Since the generated images include summary statistics from private repositories as well as public ones, the stats tell a different, more accurate story about my open source contributions than what is publicly viewable.

I intend to continue working on the project by adding other statistics badges and workflows.</comment>


Test-driven design - <AUTHOR> http://startuplab.googleventures.com/test-driven-design-2013-07-09 <comment><USER2> Yep, this is how I think about TDD too.

Testing is a good tool for QA, but I find it's even better as a tool for design.

Writing code that's designed to be testable helps clarify responsibilities, dependencies, interfaces, and relationships.

The bit where you actually run the tests is less interesting to me. :-P

</comment><comment><USER3> There is no one class of errors unit tests could solve, that's all about human-powered magic. In contrast, static typing, static code analysis and some methods of model checking could eliminate many kinds of errors before program run.

TDD is necessary for dynamic languages with weak types. In other cases unit tests are good to ensure some properties, but TDD is not the good tool at all.

<comment><USER4> I can see how you don't really need unit tests when using statically typed languages, but they are still handy. TDD is not only about unit testing, it's also about integration testing and acceptance testing. In my experience, integration testing is a lot more valuable than unit testing because you may make certain assumptions about the libraries you use which are not true. With your own code that's less of a problem.

<comment><USER3> TDD is test-centric development, i.e when you write test first then code. Unit tests are needed, other tests are needed too, the question is it worth to make testing the core of development process. From my practice, no

<comment><USER5> So there's a hard-core "always test first" fringe, but very few people are really advocating testing all your getters and setters. Heck, I think my code coverage is probably something like 1% (most of the code base is dumb construction of view models from CMS content), though I can't speak for other programmers.

The practical approach is to test the complicated stuff, and design your code so that you can test it if you need to. This leads to better modularity and easier reusability across the board.

</comment></comment></comment></comment><comment><USER6> TDD is like Forex and semi-pro photo-shooting. The most probable way of benefiting from it is to write books on it and make workshops.

</comment><comment><USER5> Misko Hevery has several Google tech talks about this, and I found them very interesting and easy to follow: [http://www.youtube.com/watch?v=XcT4yYu_TTs](http://www.youtube.com/watch?v=XcT4yYu_TTs)

At the very least, it completely changed the way I think about and write code.

<comment><USER4> Second that. I've watched all these talks several times. It's a clear explanation on why global State is bad and how to avoid global state using dependency injection. Nowadays, I write all my stuff using manual dependency injection. I would really recommend everyone to try it out.

</comment></comment><comment><USER7> No one who uses the project name "Karma" has any right to use the adjective "spectacular" to describe the project. They lost that privilege when the melodramatics forced the name change.

<comment><USER8> A rose by any other name would smell as sweet.

<comment><USER9> And have thorns that cut just as deep.

</comment></comment></comment><comment><USER10> Very interesting.

I'm not very familiar with Javascript but : The design used to solve test problems here is to pass the useful variables in the parameters of the function instead of using global variables.

Is it not slowing down all the program by passing all these variables by value ?

[http://stackoverflow.com/questions/518000/is-javascript-a- pa...](http://stackoverflow.com/questions/518000/is-javascript-a-pass-by- reference-or-pass-by-value-language)

<comment><USER10> I see thanks for the replies.

So it's OK as long as you use objects and not a simple integer as a counter for instance.

<comment><USER11> Even then, use that simple integer as a counter and optimize only if it's slow. Speed of development and testability are much more important than optimizing parts of your code that rarely run.

</comment></comment></comment><comment><USER12> Projects with good karma uses this. I have used it not only for angular, but also for knockout and backbone.</comment>


WikiMedia's Geo IP Lookup JSONP call - <AUTHOR> http://geoiplookup.wikimedia.org/ <comment><USER2> Hey folks, just FYI, I work there and this is not intended to be a public API for anyone to use. As others have pointed out, it's trivial to set up such a service yourself anyway.

I know the security-minded among you are going to start complaining that it would be easy to add a nonce, but we'd rather avoid that. Our strategy is to serve virtually everything from cache.

</comment><comment><USER3> Doing the IP lookup yourself isn't very hard. The nginx HttpGeoIPModule[1] will do a lookup on the MaxMind databases for you. I used it in my weekend hack, <http://spotwoo.com>. Doesn't take very long to set up, very easy to use.

[1] <http://wiki.nginx.org/HttpGeoIPModule>

</comment><comment><USER4> Interestingly, the latest version of Google AppEngine automatically geolocates every request (to the country level anyway)

 _All user request have an X-AppEngine-Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request._

(from Version 1.5.1 [http://code.google.com/p/googleappengine/wiki/SdkReleaseNote...](http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes))

</comment><comment><USER5> The payload is not JSONP and strikes me as a bit impractical:

        Geo = { /* object literal */ }

I assume this service is meant to be consumed via <script> tag injection. Without a JSONP-style callback parameter, what are consumers to do, inject- then-poll until a "Geo" object is found in the global scope?

<comment><USER6>
        <script src="http://geoiplookup.wikimedia.org/"></script>
        <script>geoloaded()</script>
        </body></html>

<comment><USER5> D'oh!

</comment></comment></comment><comment><USER7> That's trivial to set up yourself with Maxmind's GeoLite Database.

<http://www.maxmind.com/app/geolitecity>

</comment><comment><USER8> It is not JSONP. You have to analyze JavaScript variable: <http://servletsuite.com/geoip.htm>

</comment><comment><USER9> GeoPlugin.net has a city-level, free version of this that's actually intended for public use:

<http://www.geoplugin.net/json.gp>

Other formats here: <http://www.geoplugin.com/webservices>

Have been using it in production now for several months, works great.

</comment><comment><USER10> I actually implemented a lucene search index in case you might want to do it in lucene...

[https://github.com/krickert/IPAddressZipCodeStateCountryLuce...](https://github.com/krickert/IPAddressZipCodeStateCountryLuceneJavaSearch)

It downloads one of the many free DBs of IP addys and makes it into an index. You can do geo spatial searching APIs with IP addys.. Fun stuff.

</comment><comment><USER11> If anyone wants something similar I built a version of this a few weeks ago: <https://github.com/contrast/geoip_sinatra>

It's a sinatra app which uses the MaxMind data, typically responds in < 1ms, and it has caching built in (if you deploy it to heroku).

</comment><comment><USER12> Not very accurate for me. Wrong by about 400km. (that's basically from one end of my country to the other end)

<comment><USER13> Same for me as well. I'm being detected all the way in another prefecture.

I find it strange that depending on the device, that I will be detected in different areas (even within the same service).

For example: Google Maps says I'm at a park about a 10 minute drive from my current location. But if I view the mobile version of it on my iPod, it can find me to the room of the building I am in.

Anything that's not google or apple puts me in Hamanako, which is a 2 hour drive on the expressway.

</comment></comment><comment><USER14> Cool. But what are the terms of use around this one?

</comment><comment><USER15> been there, done that: <http://ip.beached.org> ;)

<comment> lost-theory But that's not JSONP.

<comment><USER15> Oh, that is correct. Sorry, I need to read the headline more carefully. Missed the 'P'.

</comment></comment></comment><comment><USER16> Which method are they using?

<comment><USER17> Unless it's changed recently (I haven't followed the discussion since last year) it's using the free version of the MaxMind IP->city database (<http://www.maxmind.com/app/geolitecity>).

I can't seem to find the relevant mailing list threads, but here's some evidence of ad-hoc accuracy testing last August: <http://meta.wikimedia.org/wiki/MaxMindCityTesting></comment></comment>


Practical Unix Manuals: Free ebook on writing man pages - <AUTHOR> http://manpages.bsd.lv/ <comment><USER2> Table of Contents: [http://manpages.bsd.lv/toc.html](http://manpages.bsd.lv/toc.html)</comment>


How Instagram Grew From Foursquare Knock-Off to $1 Billion Photo Empire - <AUTHOR> http://www.inc.com/eric-markowitz/life-and-times-of-instagram-the-complete-original-story_pagen_2.html

<comment><AUTHOR> I found it interesting that they went the root of going for office space at 500$ a month rather then working from home. Since they weren't making any revenue, had they not gotten funding, I am pretty sure they would have stuck to telecommuting/virtual office instead</comment>


Dow Rebound 1049 as Trump ask for 1T in fiscal stimulus - <AUTHOR> http://www.mortgagerateguru.com/2020/03/17/dow-rebound-1049-as-trump-ask-for-1-trillion-in-fiscal-stimulus/ <comment><AUTHOR> Hard to tell where market is heading! It is a roller coaster for now :(</comment>


Slack will shut down all IRC gateways - <AUTHOR> https://pbs.twimg.com/media/DXs-hTyU0AEisZY.jpg <comment><USER2> Very unfortunate news. I hope they realize what a mistake this is and reconsider!

<comment><USER3> I am disappointed as well. The web interface is sluggish over a VPN.

</comment></comment><comment><USER4> I don't know what people expected. Why would you leave IRC/XMPP to go to a walled garden?

Nowadays, alternatives exist like matrix.org with an open protocol. If usability was the reason you weren't on IRC, take a look at matrix.org.</comment>


While Warning About Fat, U.S. Pushes Sales of Cheese - <AUTHOR> http://www.nytimes.com/2010/11/07/us/07fat.html

<comment><USER2> Agricultural policy is built around stabilizing income of farmers. If you look at it in terms of output it never makes sense.

</comment><comment><USER3> They should be warning about the flour.

<comment><USER4> White flour</comment></comment>


Alan Kay: The Power Of The Context [pdf] - <AUTHOR> http://www.vpri.org/pdf/m2004001_power.pdf

<comment><USER2> This is an old article, and I'm tired of seeing Alan Kay talk about the past. That said, it's true. I'm also baffled that we have no collective memory as an industry. The rush for the almighty Euro has left us reinventing the wheel, the axle, fire... We keep writing the same code over and over, often in different contexts, and jumping up and down at the novelty. It's so funny to hear people rave about Gmail when I was using better mail clients in 1992. Honestly. We have no sense of history and we have lost our way.

<comment><USER3> It doesn't go down easily the modern OSs we use are either a GUI-based desktop OS that wouldn't be serious and compete with OS/2 with a billion patches applied or some rehash of 70's Unix.

Really... Why is that Smalltalk/80 and Lisp'56 still make Java'2009 seem primitive?

Even the Smalltalk/80 environment makes Windows'2009 look primitive (colorful, translucent and primitive).

<comment><USER2> It's interesting you should say that because I've often considered Smalltalk/80 as the last point we were headed in the right direction.

I've spent a long time (a decade, yikes) with some Ph.D students doing research on the trajectory I think it should have taken.

</comment></comment></comment><comment><USER4> Is there anyway we can purge scribd from the internet? Can we pay them to take the site down?

<comment><USER5> I think they are a YC company so I think we'll be seeing more of them.

But I've mentioned here before that I would PAY for a website which would do the oposite of scribd, turn Docs and PDFs and Flash and what not into plain HTML. Fast, no plugins required - awesome.

<comment><USER6> [http://google.com/search?q=cache:SdlYNbOXScIJ:www.vpri.org/p...](http://google.com/search?q=cache:SdlYNbOXScIJ:www.vpri.org/pdf/m2004001_power.pdf+http://www.vpri.org/pdf/m2004001_power.pdf&cd=3&hl=en&ct=clnk)

<comment><USER5> Yes, that's still better then PDFs, but it's not exactly great. That's why I think there's room for a company that does it well.

</comment></comment></comment></comment><comment><USER7> Shouldn't that be [pdf] in the title, with a second [scribd version] link? If nothing else, it would've gotten me to visit the link sooner that way -- I hate scribd.

<comment><AUTHOR> Good idea. Updated the link title.

</comment></comment><comment><USER8> The rest of the VPRI writings is also great:

<http://www.vpri.org/html/writings.php></comment>


Ask HN: Any word on the status of current late YC applications? - <AUTHOR>

<comment><USER2> Pretty sure they're about to actually _start_ the 3 month thingy.

<comment><AUTHOR> Yeah, I think I read somewhere here that the first dinner was this week or something...</comment></comment>


Python may get pattern matching syntax - <AUTHOR> https://www.infoworld.com/article/3563840/python-may-get-pattern-matching-syntax.html <comment><AUTHOR> PEP 622 for pattern matching syntax can be found here: [https://www.python.org/dev/peps/pep-0622/](https://www.python.org/dev/peps/pep-0622/)</comment>


Google delayed SameSite cookie changes to Feb 17 - <AUTHOR> https://www.chromium.org/updates/same-site <comment><USER2> This is a staged rollout with Chrome 80 as announced, so any current plans you're making for this change should stay as is. If you're looking to know if your specific browser instance is enforcing the new behaviour you can check [https://samesite-sandbox.glitch.me](https://samesite-sandbox.glitch.me)</comment>


Marge-bot for GitLab keeps master always green - <AUTHOR> https://smarketshq.com/marge-bot-for-gitlab-keeps-master-always-green-6070e9d248df <comment><USER2> Nice! At GitLab we're considering this in [https://gitlab.com/gitlab- org/gitlab-ce/issues/4176](https://gitlab.com/gitlab-org/gitlab- ce/issues/4176)

<comment><USER3> Yes, it would be nice to have something like this working out of the box; it has made an enormously positive contribution to our workflow.</comment></comment>


Perl 5.14.1 released - <AUTHOR> http://search.cpan.org/~jesse/perl-5.14.1/

<comment><USER2> Changes between 5.14.1 and 5.14.0: <http://search.cpan.org/~jesse/perl-5.14.1/pod/perldelta.pod>

Earlier changes for 5.14.0 (obviously a bigger list): [http://search.cpan.org/~jesse/perl-5.14.1/pod/perl5140delta....](http://search.cpan.org/~jesse/perl-5.14.1/pod/perl5140delta.pod)</comment>


Bank says you cannot change your Pin code - <AUTHOR>

I recently have a new Bank account from S-Pankki (https://www.s-pankki.fi/), they send me Card and Pin code by post. When I wanted to change the pin-code it wasn't possible to do so. I asked them how to change it, they replied: "@rajibmp If you forgot your pin code, we can send you the same one. If you lost the code, you can order a new card with a new pin. "<p>I'd like to know What might be the security measures behind these kind of approaches for not letting users change their own pin-code? (I know I can ask them, I did too, but I am looking for general views regarding cyber security with these kind of practices) <comment><USER2> In most cases, the PIN is not directly related to the card: the link only exists in the bank database. So it should be technically possible to change it. Some banks allow it in some countries, and may even _recommend you regularly change your PIN_ for security reasons.

However, such policy may introduce a security breach. Some banks allow you to change PINs at an ATM (after you already entered the original PIN), but with some other banks you can change PINs _by phone_ and _without giving the original PIN_. Maybe your bank just chose the easy way to avoid all those questions.

<comment><AUTHOR> yes but this approach means the Pin code has lifetime of its card. If my girlfriend peek at me typing pin while paying in counters, I have to hide my card from her reach for 3 years just to avoid extra charges or ordering new card. :D

On a serious note, the bank staff who packs my Pin to send again will already know my Pin, how come this be secure. Shouldn't bank encrypt the Pin codes in their database? so, if I lost my pin they will issue new one and store its encrypted value in database?

<comment><USER2> _> this approach means the Pin code has lifetime of its card_

Of course, that's the big downside of not allowing PIN change. If the PIN is compromised, then the card is compromised. However, from my experience the re- issuing of a compromised card was always free.

 _> Shouldn't bank encrypt the Pin codes in their database?_

Well, encryption is two-way: there is decryption. I assume you meant "salted hash" here — which is only one-way.

If PINs are encrypted, they can be re-issued if you forgot them. However, you are right, it means (some of) the bank staff can decrypt them.

If PINs are hashed, they can only be issued once — if you forget your PIN, you will have to ask for a new one. But this is a lot more secure:

\- no one can ever know your PIN by accessing the bank data

\- this prevents mistakes like what happened in the Adobe breach (a unique private key for all passwords)

<comment><AUTHOR> >If PINs are hashed, they can only be issued once — if you forget your PIN, you will have to ask for a new one. But this is a lot more secure:

This is what I was talking about, if an encrypted pin can be decrypted by bank staffs then it can be decrypted by others as well. I was surprised to hear they'll send me the same pin by post in readable format. Its something like, I am the admin of this website and I will know whatever password users will enter, so when users forget their password I'll send it to them via email.

I believe Bank and Financial institutes should apply as secure method as possible. Sending the Pin by post in readable format is not secure at all (given that you cannot change the pin again)

<comment><USER2> I mostly agree. Two nuances:

\- they will assure you that the PIN re-issuing process is completely automated, and no employee has the authority to actually read your PIN; nice touch, but you still have to take their word for it

\- they will immediately block your card whenever you request it

So I think the most common rationale about this is along the lines of:

1\. Some clients will inevitably compromise their PIN

2\. Thus we need the system to be very good at dealing with compromised PINs

3\. So we do not need to be extra careful about PINs, because we are good at handling compromised PINs

Do not forget they are bank. Their main and unique goal is PROFIT. Nothing else matters, they only see the financial aspects of things.</comment></comment></comment></comment></comment>


Time Bombs - <AUTHOR> http://www.marco.org/4295159845

<comment><USER2> Here in the UK, as in much of Europe, prepaid mobile tariffs are very much more popular than in the US. You can buy pretty much any handset sim-free, or slightly subsidised as a prepaid handset locked to a network. Any of our five networks (plus several tenant networks) will offer any of their monthly tariffs at a heavily discounted rate if you don't take a subsidised handset.

An iPhone 4 costs £500 ($800) as a prepaid handset. Capable Android handsets from the likes of ZTE and Huawei can be bought for less than £100. A mid-range Samsung or HTC handset can be had on an 18-month contract at half the cost of an iPhone.

By global standards, the US market is profoundly weird. There's an effective duopoly, the market accepts carrier lock-in and very high monthly charges, the market still hasn't standardised on GSM and all manner of other things largely unique to the US. American customers are uniquely price insensitive because the market has contrived to conceal the actual cost of both hardware and services through bundling.

Apple _might_ secure a solid market in the US and I'm sure that will be highly lucrative, but for the other 4.6 billion mobile phone users, I think the Microsoft vs Apple analogy is very apt indeed.</comment>