Hacker News new | past | comments | ask | show | jobs | submit login
What It's Like To Be Ridiculed For Open Sourcing A Project (harthur.wordpress.com)
1331 points by luigi on Jan 24, 2013 | hide | past | web | favorite | 781 comments



What the fuck. (And I rarely say that word.)

We've got to grow up. This is 9th grade all over again. You know, those weird people that do things that you don't understand? They're the ones that grow up and make big impacts on the world.

Why can't we get over our negativity? We can't stop ourselves from thinking horrible things, or even saying them out loud to people around us, but surely we can restrain ourselves from publicly humiliating someone in front of thousands (or more) people. And for what purpose? To say "funny" things like "our eyes are bleeding!". Seriously?

I really will never understand why people can't simply be more positive. If I ever start a company the #1 thing I will look for in others is positivity. I wouldn't stand for this crap.


>> If I ever start a company the #1 thing I will look for in others is positivity. I wouldn't stand for this crap.

What's conspicuously lacking here is not positivity per se, it's the absence of civility & decency. Those are two very different sets of attributes.

Lack of an outright positive demeanor won't sink a team. Lacking civility and decency, however, will stick a severe wrench in any project.

edit : On a personal note, reading this was unpleasant and embarrassing. I'm sorry the OP had to go through this.

edit 2 : retracting the following statement after reading apologies published by those involved - "I'm glad I now know who not to interact with in the community"


I guess you're right. Civility also sounds less cheesy than positivity! I find that teams can be balanced with people positive and negative, and it's how you handle negativity that's important, which is what you point out.


Corey Haines wrote a thoughtful apology here: http://programmingtour.blogspot.com/2013/01/im-sorry.html

Only one of the three to do so thus far.


David Cramer just doesn't get it:

https://twitter.com/zeeg/status/294307568019464192

https://twitter.com/zeeg/status/294306974248607745

All that despite confessing that he doesn't understand why the project was written:

https://twitter.com/zeeg/status/293829856381255681


Clearly. He also wrote:

"Are you mad that the Internet disagrees with you? Maybe get off the Internet?"

https://twitter.com/zeeg/status/294305445521268736

He's now gotten off the Internet because he's upset. Ironic.


Nope, still here.

I'm just not replying to you on Twitter because lol


Don't expect you to - you read it, good enough for me to know you did :-) Thanks for letting me know.

Your entire blog post is a big "The Internet disagrees with me":

http://justcramer.com/2013/01/24/being-wrong-on-the-internet...

You said something in 140 characters that was snarky and mean, that's actually not easy to do to be honest. And then you got called on it, and now you are getting criticized. Not nice, huh?


Actually, you know something... I correct myself. It is easier than I realised. I'm not sure that would be a skill I'd be proud of...


The internet doesn't disagree with him, a vocal minority of hyper sensitive cry babies and desperate white knights disagree with him. Very few people who don't care take the time to say "who cares?".


They care that you care? Why can't they not care that you care? Or is it the fact that they don't care that you care? Yet in that case then how can those who take the time to say "who cares?" say they don't care when they seem to care enough to ask who cares?

This is all very confusing.


Why is you confusing yourself posted as a response to me? You can mutter random nonsense to yourself offline, I don't need to be involved.


I take it from your response that you are the few who cares enough to say "who cares"? You sound a bit sensitive...


All you should take from my response is that I don't know why you replied with random nonsense.


A bit hyper-sensitive are we? That's the end of the thread from me though, my absurdist questions should have told you everything you need to know about my opinion of your horrid attitudes. Have a nice day: I fart in your general direction.


Classy. None of the "I am sorry if you were offended bullshit" just a sincere "I messed up". Take note, just about everyone else.


I agree. Everyone makes mistakes at some point and that apology seems to be the best possible way to deal with it IMHO.


Steve Klabnik has now also posted an apology http://blog.steveklabnik.com/posts/2013-01-23-node


And unfortunately it is exactly the "I am sorry if you were offended" type.


I don't think it is. I think its the 3rd kind: "I didnt say what I thought you said, but I can see how I hurt you and I'm sorry". Assuming that's true - which I think is a reasonable assumption based on how he teaches and his blog post from last year about being nice - it would seem wrong for him to post a full out apology.


no it's definitely a "I'm sorry for offending you, but seriously fuck you for using node."


He definitely said that in the later tweets. Maybe you're right - its definitely less of an apology than his comments merited.


Super relieved to see that - I was seriously disappointed to see Corey's name in amongst the mob. That's how an apology should be written.


I just looked at his twitter feed, and he has a lot of "I made a mistake" posts. What he did was bad, but at least he is not trying to minimize it. And this thread getting to the top of Hacker News will probably teach him a lesson.


I somehow feel the "Twitter culture" itself is partially to blame. A setting that rewards short, sharp, witty remarks that skirt over the surface is just few small steps away from endorsing sarcastic, bitter, passive-aggressive or even over-the-top spurts.

It's no wonder that no one who made those stingy tweets did respond to author's replies and questions. They didn't want to start a discussion in the first place.

Fortunately, the pendulum can also swing the other way here, as they are people who readily jump to defend against harassment.


I like his earlier writing too, on dealing with "open source assholes": http://harthur.wordpress.com/2011/06/30/dealing-with-not-dea...


(her)


Yep, my bad. The 'arthur' part of the url must've messed my brain up.


A good test of character is how one treats those that they perceive to be lower status than them.

I'd say these guys fail that test.


It might be better to say that they failed last night and leave a more general judgment open.

It's a good thing that people are calling this out and giving the participants cause to reflect on the problems with that kind of conversation (along with the rest of us). But I think it's also good if we don't rush to reduce people to some of their meaner moments. A lot of the participants have done a number of good things in the past, and they may well apologize and make this the exception rather than the rule.


I was being pithy. I don't mean to suggest that they're awful people.

I think in the open source community there's an ugly culture of celebrating people that act like jerks about technical things that reasonable people could disagree on (the poster child of that probably being Linus). I don't think that's a useful culture to have around. I think the best way to get rid of that culture is to make clear that those people can go fuck themselves. Just because you can be a dick doesn't mean you should, and the community should reflect that.

I'm not the positivity police, I don't think people should be nice just for the sake of being nice, but there's no reason to go pick on someone's project just because it does something you'd rather do with another tool.



So you ascribe personal, leveled, directed malevolence directly against Heather Arthur and her replacer library to their actions? You don't think it had anything to do with just doing it for kicks, anything to do with how people see Node?


I wouldn't be at all surprised if there was a strong undercurrent of misogyny involved here, motivating their incivility and rudeness.


I'm quite skeptical of this. It's not like her gender is immediately obvious from the GitHub repo, and it seems obvious that if these guys recognized the screen name they wouldn't have been foolish enough to make these comments about an engineer at Mozilla.


Accusing everybody criticizing a woman of sexism is certainly not helping. They almost certainly didn't know she is a woman. Moreover Steve Klabnik at least is a widely known ally (http://confreaks.com/videos/1089-madisonruby2012-anti-opress...)


"Accusing everybody criticizing a woman of sexism is certainly not helping."

It's not that they're criticizing a woman, it's ~how~ they go about it.


It is fundamentally impossible to provide enough evidence or preemptive apologies to find redemption once someone starts playing the Identity Victim card. Don't even bother.


It's the reverse - a lack of civility among those alpha-nerd types leads to the general acceptance of misogyny (and racism, for that matter) among them.


They both feed into each other.


I don't want to be the one to say it, but it hasn't yet been mentioned in this thread.

If the author was named Henry instead of Heather, this wouldn't make front page or have a comment thread full of white knights.

That doesn't make the critics right in their aggressiveness, and people overall should be nicer.


You have absolutely no way of knowing that this post would not make the front page if the 'H' was for Henry.

That sentiment is a huge pet peeve of mine. Forget the gender of harthur, and look at what's left: someone writes a tool that's useful for them, and thought it would be useful for others (and, based on other comments, clearly it's agreed that it is for some). At least three people publicly take a shit all over said tool because, you know, lolol. Those three people have now been called out, and rightly so.

I don't think those three have been called out because Heather is a woman. I think they've been called out because others can see themselves in Heather's place. I know if I published something I wrote, just a small convenient script I had lying around, I wouldn't feel too good to see it attacked in public. Genuine sympathy can be extended to anyone.


"If the author was named Henry instead of Heather"

I'm going to have to strongly disagree, I honestly didn't know the author was a girl until I saw the name, well after I had read comments and was intrigued overall with the topic. I think the jump to misogyny or gender bias is a bit premature, but I can't really offer up much evidence other then my own perceptions and interpretations of what I've read.

Simply put, the topic is really interesting in itself and hasn't really been discussed much on HN in this specific way, unless I've missed some previous threads. I think add the fact that the negative comments were from some decently well known people, which all responded to it as well, and I think you have all the explanation you need for it being a popular post outside of any sort of need to resort to guys going to to a girls defence explanation.


"have a comment thread full of white knights"

You're seriously suggesting that anyone here who decries the rude behaviour described in the blog post, is doing so just to impress the protagonist of this drama with their chivalry? What an absurd notion.


Using the phrase "white knights" as a gender-based insult for people sticking up to bully-behavior is pretty unnecessary and reflects poorly on you. There's no need to bully the bullied further because you feel some sort of nonexistent imbalance.


If the author was named Henry, the probability that this post would have been written would be far lower. For better or for worse.


Perhaps you are correct. While I completely agree that what happened to her was completely uncalled for regardless of her gender. I find that sometimes myself I am slightly harsher in criticism of my male colleagues and friends. Perhaps dcramer and steveklabnik didn't realize they were addressing the project of a female programmer? Nonetheless, their rudeness is still wrong especially in the public sphere.


I seriously doubt it was misogyny as much as it's just online disinhibition. Twitter is especially notorious because the very format forces you to be curt.


The majority of HN readers seem to have assumed that the author is male. I assumed the same thing for most of it, before getting suspicious at the non-joking use of "sobbing". I wouldn't be surprised if these Twitter posters made the same assumption.


The thing that bothers me is that some people changed their tone after they found out she was a woman and after they read her post. This speaks volumes more than the original comments. If anything it seems there's an implication that somehow women are unable to cope with jackasses as well as men.

Would it have even made HN at all if she was a man and wrote the same way? I doubt it, but if it did, and she was a he, he would have been pounded to the ground in the comments.

Of course, all of this could have been avoided if people act the way they're expected face-to-face. None of these people considered the "person" who wrote the code. And none of them considered "not useful for me" != "not useful". If it was, why are there so many tools out there besides UNIX?

BTW... Twitter's short form is a lame cop out IMO. You can be curt and still not be condescending. Allegedly "smart" people could have been cogent without being asses.


I just wanted to point out that (hopefully) these Twitter guys were posting because they truly disliked the project, rather than out of misogyny as the GP speculates.

It bothers me too when people here and elsewhere assume every single negative comment or piece of criticism directed at a woman is due to misogyny, and that somehow women should be "no criticism zones" or something. I really like when people maintain gender anonymity online, because it keeps comments and feedback at a gender-blind level.


At this point, I blame it on the assumption that Aspergers must run rampant and is severely underdiagnosed in the dev community.


Think about this: this statement, right here, is a completely unfounded (i.e. you have no evidence about any of the 3 people being ASD, and the probability of all of them being ASD is really low even among geeks like us), passive-aggressive (you are attacking people with ASD but making it appear sympathetic), pseudo-intellectual (how much do you really know that you didn't read in superficial internet threads) insult (oh yes it is) toward people with ASD. Ironically, presumably from a neurotypical, who by implication is supposed to be more sensitive than the alternative.

Congratulations. You bully in a thread about bullying being bad.


Thanks for writing this. As someone who has ASD (and who thinks he is not an asshole) it always makes me cringe when someone connects being a douchebag on the internet with it. Prejudices like that makes it very hard to tell people about it when some automatically assume you're an asshole for having ASD. All kinds of people behave bad on the internet for various reasons because they can and they are emotionally detached from the people they are writing about. ASD has absolutely nothing to do with it.


Ugh, this is exactly the 'asperger pride' mentality I mention in a thread below.

You are trying to make it politically incorrect to talk about the problem of aspergers in the dev community. The parent is a bully? really? A bully? come on.

Maybe these specific people have aspergers or not, but the problem of a high concentration of socially inept people in the technology world causing strife amongst each other is a real problem.

This is a problem and it should be talked about.


I've worked with people with Asperger's and Autism in a clinical setting. I'm not talking out of my ass.


While you might not be, you're probably the exception. The typical interaction sequence is:

1. Someone is rude on the internet.

2. "Ooh, look, undiagnosed ASD, lol, most software devs are ASD."

3. Self-applause, occasionally followed by discussion about whether Asperger's is different than Autism or whether it's a spectrum disorder, occasionally someone mentions the new version of DSM. (Sometimes this really bothers someone, and then there's the meta-thing where people smirk and say that of course people with ASD don't like reclassification, etc, etc. It's so tiresome.)

I think this may well be a worthy successor to Godwin's law.


It's not just rudeness that triggers this response -- it's when someone displays a severe doesn't get it moment. The most significant moment on HN I've had of this is when someone tried to argue that sexism can't exist in tech because there's a Wikipedia page that lists 50 women with significant contributions to the field.

That sort of thing makes me wonder, if after 20-40 years of being part of our society, that is your understanding of one of the major grievances held by people out there, then there is a missing connection. You don't have to agree with the sentiment or conclusion, but if you can't even understand the complaint then you are either woefully sheltered or perhaps it's time to consider cognitive deficiencies.

And this sort of failure mode happens all the fucking time in this community.


This is exactly it.

Time and time again you see large groups of people in this community exhibiting behaviors that show that they are unaware of normal social and societal conventions, and an inability to relate and sympathize/empathize with others.


No, you see that. I see different social groups having different social conventions. The fact that you can't imagine how someone in a different social group could possibly not follow the social standards you deem correct speaks only of you, not of them.


+! on succeeding Goodwin's law with tiresome and prejudicial accusations of autism spectrum disorders (often by people who really don't understand how offensive and insulting they're being

The fondness of this community to use words like retard and retarded as insults and use implications of special needs issues as forms of abuse is disappointing given the overall level of smarts of the community. But at least that's obviously offensive. The folks trotting out autism spectrum disorders don't even seem to realize they're being just as problematic and perpetuating unhelpful stereotypes.


I understand your point, but "makes my eyes bleed" is not a typical comment from a neuro-atypical person.

The neuro-typical can be assholes too.


Neuro-typical people can be assholes, but they tend to understand that they are being an asshole when they act asshole-ish.

I think a big problem in the dev community is a lot of asshole behavior out there from people who don't intend to, or even _understand_ that they are being an asshole.

Regardless of intent, this asshole behavior has consequences on neuro-typical and atypical people alike.

I think nerdy/geeky/dev/asberger/whatever people need to be more mindful of how they interact with people. Unfortunately the recent asberger pride movement doesn't help.


> Unfortunately the recent asberger pride movement doesn't help.

The word is "Asperger's". 'Asperger pride' is an attempt to reduce the hateful ignorant bigotry that the neuro-atypical face every day. The kind of ignorance that leads to early death, reduced job opportunities, reduced educational opportunities etc.


Thanks for the correction, I got lazy there.

I think the problem with 'Asperger pride' is it tends to focus on how neuro-typical people have wronged people on the spectrum. A lot of times the painful truth is that person with aspergers is at least partially culpable for the negative outcome of their social interactions.

This becomes a major problem when you work in a place where almost everyone is on the autistic spectrum. There are no oppressive neuro-typical people, yet stubborn asshole behavior skyrockets because all the nerds are being dicks to each other.


I don't know your workmates, but if I had to hazard a guess I would suggest that this is probably more a function of being in a highly male dominated environment rather than your co-workers actually having autistic traits.

If somebody is being a dick because they are hunting for a specific reaction from the other person that is not really Asperger behaviour.


"I understand your point, but "makes my eyes bleed" is not a typical comment from a neuro-atypical person."

Why not, out of curiosity?



OK, everyone, enough with this. Really.


I think it's autism that must run rampant and that it's underdiagnosed partly because people have called it Asperger's which doesn't seem as serious. With the new version of the DSM this won't happen as often.


There is a huge gulf between Asperger's and full blown autism.

People with Aspergers are "normal" people in the sense that they are generally capable of looking after themselves, communicating and working normal jobs etc

People will full Autism have severely limited communication skills (often no spoken or written language skills at all beyond repeating a handful of phrases) and require a significant amount of assistance in most areas of life. They will often live with full time carers.


There are still people that fall under the high-functioning category that have a hard time taking care of themselves and holding down jobs. Just because you check some boxes doesn't mean you check them all, and I'm glad the DSM is removing a term that tries to generalize a subset.


I agree, but the level of care required for an "aspie" vs that for somebody with severe autism is night and day.


I thought Asperger's was being removed from the new DSM, so it's all autism now?


Not sure of the new terminology but these are 2 conditions that vary not just quantitatively but qualitatively.

The term Autism as it is used today suggests severely delayed language development. This is not a symptom of Asperger's and sufferers of the latter can often develop advanced language skills.


No one taught middle school kids how to deal with emotions.

That's because the adults around them don't know how to deal with them.

We are educated in a math & science heavy society. That's good. However, it puts the focus on evidence. Emotions don't leave much of a trace unless you act on it. So we use behavior resulting from emotion as evidence of reality and ignore the experience of reality.

Then we say, "be real" and cut off an entire spectrum of reality -- that of experiencing emotions.

These are the makings of the shadow side, the Jungian shadows. When you disown or suppress experiences, then they get stronger.

So yes. We have not grown up because we don't know how. Or at least, no one told you how.

You cannot "get over" negativity. That's a form of rejecting something you don't want to feel. The only way out is to accept the experience of it as is, without rationalizing it and without acting on it. That's probably the hardest thing you will ever do in your life, but the most important if you want to grow as a person.

There are several methods by which one can do this. One of them, called vipassana, was taught to some prisoners with great results (http://www.dhammabrothers.com/). However, you don't need to be a criminal to use this.


Serious question to you and any offended people here: what do you think of sites like The Daily WTF? Is it an anathema to any civilized person and the owners should be ashamed of themselves and apologize? After all there are real people behind every TDWTF story and if - god forbid - someday they stumble upon it they may recognize themselves and their feelings will be hurt!

Or is the whole point here that Github accounts are not (necessarily at least, as in this case) anonymous and as long as no individual is identified personally we can all share a chuckle at their crappy code?


Folks on internet fail to understand that there are people on the other side of terminal and some civility is warranted. All of us should discourage uncivil behavior by non-participating in a silly conversation.


> If I ever start a company the #1 thing I will look for in others is positivity.

Good luck with ever hearing about any problem before it's too late to fix it then...


Now hold on... you can, in fact, raise issues in a positive way.

"Hey Larry, after I spoke yesterday I checked and we've got corruption on our RAID array... I think I can work towards resolving it, but if not then we need to come up with a mitigation plan."

vs.

"Larry, we've got corruption on our RAID array. I told you yesterday and you didn't work fast enough on my suggestions, so now we're all screwed. I can't believe your stupidity!"


Sure you can, but I suspect that if positivity is the #1 priority, you're pretty likely to see issues ignored or hand-waved away.


No more so than if you were extremely negative and played the blame game. Ignoring issues is not what I'd call positive though. That's just delusion.


Being positive in the face of unrealistic deadlines is exactly that, delusion, and it's a pretty damn common and popular one in a large percentage of all software projects.

Look, I'm not saying that a positive attitude is bad, just that it definitely shouldn't be your #1 priority as proposed in the first comment I was replying to.


Fair points :-)


the hell are you talking about?

every person that created something worthwile in this world has been ridiculed. for good reason. i hate the fact that people here spout that uber positivity crap.

you know what, you mess up -> you get ridiculed, what do you do? you make something better.

The world is not this pretty flower place where everyone can be happy and strive at the same time. there is no rich without poor, and there is no great without bad.

please everyone be happy is a stupid argument to make. it actually makes people NOT improve.

it has nothing to do with elitism developer community. it's the same everywhere. you don't get patted on the back for doing something mediocore at best, well that is, unless you're an mba.


So explain to me how she messed up. Because I don't see any messing up on her part. I see a number of assholes (and some generally good folks who did mess up) unable to get out of their own headspace and into someone else, but that's about it.

And there is a large gulf between "patting on the back" and being an asshole.


I fail to see what is being wrong with being positive and happy. We should strive to make the whole world as universally happy as possible.

We can improve others with constructive criticism.


Clearly you can take it too far. If somebody does something wrong, are you allowed to tell them? Even though it is going to be negative? Do you never correct your children? Do you keep people on who need to be fired?


There's a rather large difference in saying "what you've done is not only useless, it's so stupid it's making physically ill" and providing constructive criticism

It's the shit sandwich approach, say something good, say something critical, say something good.

Tearing someone down, just because you can is not productive. I wonder if these same tweeters would have said the same thing to this persons face, and then turned their backs and walked away.


Then I see these people’s follower count, and I sob harder. I can’t help but think of potential future employers that are no longer potential.

There's a big responsibility that comes with being well-liked and nice. When someone with a good reputation and the means to broadcast it speaks negatively about someone, it matters much more than someone who is routinely rude, frequently negative, or unknown. I know that if the most well-liked and nice person in my lab were to criticize my ability as a scientist (in the same manner), I would worry about what everyone else thought about me now, that someone who never seems to say mean things would so something like that.

These individuals do good things: they contribute voluntarily to communities, they help high school kids learn to code, etc. And these individuals are visible. And if you search steveklabnik on HN, his comments don't seem mean or negative.

It's easy to forget, and it's a little paradoxical, but when you're really nice, there's a different standard. Perhaps there shouldn't be, but it does have a different impact.


"Then I see these people’s follower count, and I sob harder. I can’t help but think of potential future employers that are no longer potential."

Speaking as a hiring manager, if I see people behaving like assholes on Twitter or mailing lists, those people go on my do-not-hire list. Yes, we are all assholes from time to time, but for some people it's a pattern of behavior. Those are not people you want to work with, no matter how smart they are.


There's a fine line between being critics (constructive) and being assholes (destructive). When hiring, be sure to differentiate the two.


No, it is a very thick line. Save for a few situations where you might question whether what you said was misconstrued, people for the most part know when they're being civil or not. "I'm just a straightforward guy", "I tell it like it is", and "I don't want to sugarcoat" are ways people justify being an asshole by acting as if they've got your best interests at heart and genuinely want to help. They damn well know how mean they're being.


A great quote I once heard is that people who claim they are just being "brutally honest" seem to be motivated by the brutality more so than the honesty.


My experience and belief is different: It's clear and obvious where the line is. People who provide constructive criticism in such a way that you can tolerate repeated critiques are strikingly different than people who are assholes under cover of providing constructive criticism.


A lot of very talented and successful people are successful. Michael Jordan, Linus Torvalds, and Albert Einstein come to mind.

If Linus Torvalds applied to work at your company, would you turn him away?


I know a guy who worked at Transmeta when Linus was there, and afterward he joked that anyone who got Linus hired should get their pay docked instead of a hiring bonus. So maybe.


If everybody who interviewed a candidate thought they were a raging asshole, then yes, I would turn them away. There are enough really smart people to hire who are not assholes. I cannot speak as to Linus, because a) I haven't met him or interacted with him and b) I don't think it's appropriate to comment on a named individual.

As an interesting point, I learned this lesson in who not to hire from Michael Schroepfer, who is now VP of Engineering at Facebook.


Fair point. Once I read the names of those involved, I was a little taken aback for this very reason. Friends I respect think quite highly of Corey, for instance.

Also worth noting, both [Steve and Corey] have published apologies on their own blogs. Both are worth reading.


Here's a link to that apology: http://programmingtour.blogspot.com/2013/01/im-sorry.html

I know Corey and don't really know too much about what happened here, so I'll only say he's one of the most positive and supportive people I know.


-1 in my regard for being a jerk. +2 for a sincere apology. A reminder that owning up to a mistake can make that mistake go away and then some.


People make mistakes all the time. If it's someone you know in person then you should probably give an apology (or vice-versa, depending on the situation). Someone has to own up because if it doesn't happen, you can end up with an ill workplace/relationship/whatever.

But the internet can be a strange place. How do you apologize to strangers? With blogs? I mean, these pieces are going around being viewed by hundreds of people. Is it really helping? I'm not sure, but, at the very least, people are trying.


Email, Google+, Facebook, Twitter? There are many ways to apologize to someone without making a public spectacle of it.


There might be something like a rule of thumb that apologies should be as visible as the insult. If someone insult someone in a conversation, say sorry. If someone insult someone in front of their boss, go back and tell that you are honestly sorry. It hurts and it is why you think before you speak.



This is bound to be an unpopular opinion, but why exactly does anyone have to apologize? He's absolutely right. Criticism comes from every corner, especially in the software world.

Your code stands for itself. Simple as that.

And I tell this to almost every programmer I work with at some point or another. If they have an emotional response to a code review, or criticism of any kind—"Code is never personal. Whatever I say about your code has nothing to do with you. All I want is for us to improve this together, and we do that by exchanging ideas."

Criticisms are never directed at people, they are never intended to be personal attacks—they are simply evaluations of quality, and we're all trying to achieve higher quality. When you put code out there, you open it up to response. If people decide that it's good, then great; if people decide that it's bad, then great! You have an opportunity to improve it. That is a godsend. It's a million times better than if you received no feedback at all.

Male, female, good coder, bad coder, I don't care who you are: if you go sob in a corner because you receive criticism, then you're not going to improve. You have to join the discussion like an adult. Cramer may have an asshole opinion here, but sometimes assholes are right. Sometimes the world is harsh, but through adversity we can become better. Deal with it.

* Update: Well, I've read up more. These criticisms were not the productive kind, and were tactless and mean. I stand by what I said, but the people in question didn't criticize right, and they deserve the vitriol being directed at them. Shame.


> Code is never personal. Whatever I say about your code has nothing to do with you.

I've heard this repeated ad nauseum (not just in this thread) and I think it's total crap. You cannot tell me that if you spend dozens of hours writing something then someone comes along and goes line by line telling you how what you wrote is an abomination that you're not going to have an emotional response.

If that's the case it has to go the other way as well. Just finish writing a new process that will save the company $30k a month? Doesn't matter. If your code doesn't have anything to do with you then it's not an accomplishment to write good code (I don't believe this).

Just to be clear, I do think code is personal but I do think people should welcome any constructive feedback, particularly the negative. Yes I feel a twinge in my ego any time someone criticizes my code, even minor stuff; but guess what? When they look at it next time they won't be able to make the same criticism, because I will have fixed it.


Of course the code we write is deeply personal. I think that what he means, however, is that the _criticism_ of code he gives is based solely on the code itself, and doesn't contain any inherent bias based on the author. He's saying "this code is crap" because of objective reasons that he (in theory) holds himself and others to as well, not because he thinks the author is a bad programmer.


People just don't work that way; at least, I don't.

Who reads code without thinking of the author? When I'm derailed by a bug in some library I'm depending on, or see code that works in a way I find unintuitive, clunky, etc., I absolutely think judgmentally about the person who wrote it.

When I'm reading someone else's code and find a solution that's significantly more elegant than I was imagining, I'm impressed by the person's accomplishment, and they basically get points in my head. If I meet them in person I'll quite possibly shake their hand a bit more warmly.

This is normal and natural, and I have to consciously counter-balance that with the learned (but not instinctive...) knowledge that I've written bad code myself, released buggy or clunky code, taken questionable shortcuts, etc..

When I'm in a position to criticize someone else's code (and it's part of my job to do it sometimes!) I usually rewrite my feedback a few times (and sometimes decide it's not needed at all) before writing or speaking to the developer, because it takes a lot of conscious thought to modify my instinctive response into something more fair and effective based on what I've learned over the years.

That's my experience.

Does everyone else actually think that differently?


One of the reason why I keep my mouth shut in code reviews unless something is very critical is precisely this reason. One of the easiest ways to ruin your relationship with your colleagues, or any one for that matter is to comment on their work.

Heck developers are still fine, try talking to a doctor about some other doctor's work, even if all you utter is a minor work of praise for the other guy you will receive nothing short of total angry response loaded with utmost display of ego possible.

Never needlessly criticize someone's work or praise a competitor in front of the person. Unless something big is at stake.

Everything is subjective and everything is personal. That's how human beings work.


humans suck. especially when they pretend to themselves that they are rational


Apparently the part of the brain that decides what we want activates before the logical part; thus we use our powerful brains mostly to rationalize what we already feel is the right answer.


Of course. I do too, it's only human. You gotta be tactful, and you gotta be nice. It's more striving for an ideal state of zen when accepting criticism than anything. Not always realistic, but it's virtuous.


Of course you will feel an emotional response when your code is criticized, and a considerate critic will try to minimize that. But you'd still be the one in the wrong.


> Code is never personal. Whatever I say about your code has nothing to do with you.

Maybe this is fine for psychopaths, economists, or machines that can eventually understand the criticism one day, but for normal people it doesn't apply. Someone's code is like someone's child.

It's great and I'd say necessary to use constructive criticism, but I just don't see the need to bully and make fun of people.


I am working on a team that is smarter than me. And I noticed, they don't attach a huge amount of their identity on their code. Taking myself out of it improved my skills.

Having said that though, when you ridicule someone, you've made it personal. When someone ridicules someone else, there's a high chance that they secretly feel ridiculed by others (Jungian shadows).

I forgot who observed this: adult males will kill off younger competition, unless they are teaching. One of the core values of the Open Source community is sharing and teaching. I suppose, if you stick around in opinionated software long enough, then you start moving away from that core value.


> I am working on a team that is smarter than me. And I noticed, they don't attach a huge amount of their identity on their code. Taking myself out of it improved my skills.

I guess it depends on context. For team work projects, maybe your coworkers don't feel like they have ownership over their work. I feel that this is very different compared to open sourcing your personal work.


> You have to join the discussion like an adult

You don't start "discussion" with "how to make sed and grep worse", you just don't. She (harthur) even attempted to get some real feedback out of the snarky twitter mob, but it turns out that "nothing's _wrong_ with it, but I don't want to build my app on top of others' code who are at this level of understanding".


Yes, I've better familiarized myself with the situation, and the people in question are, in fact, assholes, and the discussion was not productive. Sorry for ranting on a slightly-related tangent...


While I understand the point you're making, as long as there is a way to deliver criticism while being an asshole and a way to deliver criticism without being an asshole, people who choose the former route are assholes.

I also agree that assholes certainly don't have to apologize, as long as you agree that we're free to carry on considering them assholes.


> as long as you agree that we're free to carry on considering them assholes.

My father always told me, "It's a damn shame that it's legal to be an asshole in this damn country." But yes, it is, and yes, you absolutely are. I am a strong proponent of calling out assholes when they're being assholes; myself included.


The point didn't seem to be delivering useful criticism, it seemed to be mockery of the code. I guess you can brand anyone who does that with the world Asshole in scarlet, but do you never mock anything? I'd personally reserve the label for people that either deliberately hurt others or don't care about feelings at all.


Constructive criticism should always be welcome.

These comments weren't constructive, by any means.


So I see your update, but what exactly drove you to take the side of the critic before evaluating the criticism?


This may not be the best place to respond, but you say something I've seen a few times in these comments:

"if you go sob in a corner because you receive criticism, then you're not going to improve."

The corner part is up for discussion, but who says crying renders you un-improvable or non-adult? It's what you do after you cry that matters. I did not know harthur's gender until it was brought up, but women cry more easily than men and it isn't really relevant to their coding nor is it calibrated to feelings in the same way it is for guys. It's not the nuclear option guys think it is.

As for evaluations of code quality, I'd be thrilled to read a discussion of the actual "issue" somewhere. That would at least be interesting.


Hate to say it but I think his post is fair and to the point.

You don't have to like what he said but he puts it in context and within the realm of Twitter - a 140 limited space of communication.

His original tweet was "Ever wanted to make sed or grep worse?".

Really. Can we not be critical on the internet any more?

And here is EVERYONE saying worse things about him in the comments!?

Go look in the mirror people. I'll take the downvotes.

[updated: typos]


> Really. Can we not be critical on the internet any more?

I think that's a vast oversimplification.

I actually don't think this has ANYTHING TO DO WITH CODE. Anyone can walk into a subway restaurant, ask for a sandwich, take pictures of the people who made the sandwich, tweet their pictures laughing at how stupid they are and what a shitty job they did making your sandwich. You can do that to waiters, barstaff, cleaners, you can do that to anyone... but it makes you an asshole.

If you find yourself pulling up individual repos with <5 users and shouting 'Hey everybody look at these people recreating the wheel! What fools! Let's all point and laugh!' wouldn't you agree that's being an asshole? Is that bettering the community? No, frankly all you are doing is choosing to piss on a few people.

I have a ton of files on github and gist, most of them are absolute crap. I put them out there on the off chance someone happens by a similar issue/problem they might find something useful.

This morning there was a gist I was reading, and yeah it was mostly rubbish but it had the one line of code I was looking for.

That behavior needs to be encouraged by more people. We need to encourage people to put out their code and not delete it. Regardless of if it is crap.

If you see something picking up momentum with a growing base of users that you disagree with then by all means start raising the alarms; create a blog discussing the downside of using process X (examples of X could be nosql, sql, node, coffeescript, python, java, grails, groovy, haskell, go, maven, ant, gradle, etc etc)


Exactly.

It's one thing to be critical. It's another to ridicule. Being critical is rational and objective. Ridiculing is a form of contempt, an emotion. When you ridicule, you are not taking apart what you criticize, you are trying to take apart the other person. Those skilled at this will often do it in such a way to make it sound as if they are being rational, objective, and focus only the work, when in fact, they are projecting emotions of contempt and cutting someone apart. The way our society is structured, you can "get away" with something like that because there's a fallacy ... that what you can somehow separate the criticism and feedback you give from the feelings that you experience (or suppress).

Well. You can't. Emotions arise and pass: they are real, they are experienced, and they affect behavior.


  I have a ton of files on github and gist, most of them are absolute crap.
Honest question:

Is it okay for someone else to say (without swearing or making personal jabs) in public that it is also crap?

And again, to emphasize, this is a sincere question.


I don't think it's possible to answer without getting into a debate about community, morality and ethics. There's no way to distill this down to a "unit test".

Will it bother me? Maybe, depends on who it is. XxHackerPants420xX's tweet of 'Columbo is teh code suxxor' wouldn't bother me as much as pg choosing to write a personal blog post titled 'ode to Columbo's shitty github account'.

Is it okay? Meh. It isn't a community I'd want to be part of. I truly believe in the power of constructive criticism and I don't believe anyone can survive this environment by wearing their hearts on their sleeve. However, there's never justification for rudeness.


I understand. I didn't mean it as a unit test, more a litmus test.

And I agree - constructive criticism trumps criticism.

  Is it okay? Meh. It isn't a community I'd want to be part of
Also agree. However I'm unease about people flogged in public over generic criticisms. I think its important that people can say things (yeah, even mean things) since sometimes its warranted.

I'd prefer we save the public flogging to those that step over a hard-to-define line. I don't think that line was crossed in his case.


For once, reading with showdead on made me laugh!


> "You don't have to like that he said but he puts it in context and within the realm of Twitter - a 140 limited space of communication."

This is part of why I dislike Twitter - the 140-char restriction supposedly makes you to the point and concise, but in reality it just encourages snark and imprecision.

It's a world of sound bites, and "Ever wanted to make sed or grep worse" sounds wittier and has more jazz than "I really dislike this open source project and here's why."

That said, if a platform disallows you from being clear and fair to fellow people, don't use it. Ultimately the responsibility to be good to one another is your own to enforce, not Twitter's.

> "Can we not be critical on the internet any more?"

Honestly? No. The internet is full of flippant, callous, outright dismissals. It's reached epidemic scale - and it extends far beyond our little corner of tech. Everyone wants to have their little sound bite hating on something, and it's juvenile.

Given the current state of things, IMO criticism demands a higher standard than ever before. It's not that we can't be critical, it's that we can't be critical without qualifying and substantiating said criticism - there's just too much "hurr this sucks" floating around.

This may necessitate using communications platforms that permit more than 140 chars at a time ;)


I don't disagree with your larger point, but as an official member of the Twitter Defense Squadron (got a badge and everything):

> the 140-char restriction supposedly makes you to the point and concise, but in reality it just encourages snark and imprecision.

This is, of course, a false dichotomy. It does both, depending on the author, and the author's mood. The solution to this problem is to not follow jerks on Twitter. Follow cool people whose tweets have wit, poetry, interesting facts, and/or links to the same.

140 characters forces only minimalism, which exaggerates any number of latent traits, good and bad.


> "The solution to this problem is to not follow jerks on Twitter."

See my other post further down the thread. One of the prevailing attitudes I'm seeing in this thread is the notion that jerks/assholes are somehow exceptional. We're all more than capable of being terrible to each other, given the right context and the right triggers. Pretending that jerks are somehow a different class of people from "the rest of us" is folly.

No one is solely defined as "jerk" - most people have valuable things to contribute, the question is if the system is set up in a way that encourages good behavior.

I don't doubt there are many people who are able to tweet within 140 chars without behaving badly towards others. That's not the part under doubt, the question is if people behaving badly are in large part doing so because of forced brevity. We can make jerks contribute positive things if we set up the system correctly, we can also make more non-jerks into jerks by setting them up badly.

> "140 characters forces only minimalism"

This is a claim often trotted about, but I just don't see this. Looking at my Twitter feed it seems to encourage abbreviations, bad spelling, incomplete sentences, and truncated thoughts. Twitter proponents act like the internet was a giant cesspool of wordiness, and that Twitter was somehow the savior - I don't remember this internet when everyone was writing run-on sentences and long essays about their day.


sed 's/critical/snarky/g'

Or rather,

replace 'critical' 'snarky'


> Can we not be critical on the internet any more?

You can, but why? What good is served?


Having people criticize my code on comp.lang.perl.misc in 1999 improved my programming skill (and, even more so, my Perl skill) very rapidly. However, they were saying things much more detailed than "eyes bleeding".



Criticism is great and necessary, but piggybacking on someone's code with your friends without resolve is no different than picking on someone in grade school. Rather, this is more akin to talking crap about someone behind their back to the whole school because she had no idea it was even happening until a colleague brought it forth.


If the original comments about replace were motivated by "Diagnosis and error correction" or "Improvement", I don't see it.


He really spent a lot of time not apologizing. In fact, not once in his entire post did he even begin to apologize. Most of it was him trying (and failing) to excuse his behavior in the most childish way possible: by blaming everyone but himself.

Seriously, what an asshole.


> notpology

That basically summed it up. I guess it's clear the 140 character limit was never the issue.


Wow, David Cramer is a total asshole! That Steve Klabnik guy is also an asshole. The only one who doesn't appear to a complete dick is Corey Haines, whose apology was better. Not great, but better.

Here's the thing - if you ever even consider saying things like this to someone on the internet, you're an asshole. It's not a one time accidental thing. Nope, it's in your personality. I hope I never meet either of these two individuals, but if I ever meet them face to face I will make sure to tell them exactly what I think of them.


I'm sorry what? If you even consider saying that code is like an existing project but not good, or implying that a piece of code is badly written, you're an asshole!?

Don't you think you're taking this a bit far?


He didn't merely say the project "wasn't good", he implied it in a snarky, very unconstructive way.

Here's his quote from twitter:

>Ever wanted to make sed or grep worse? http://github.com/harthur/replace

In the world I live in, that's called being an asshole.

Look, I'm not saying these guys should apologize (in fact, if this is how they apologize it's probably best they don't), I'm simply stating that they're dicks. I know a lot of computer programmers just like them.

Edit: And I hate working with people like them. I don't care how brilliant they are, programming is a team sport in most places. If you're a jerk I don't want you on my team, no matter how many awesome sed scripts you can whip up.


> "that's called being an asshole"

There's a difference between "being an asshole" and "sometimes acting like an asshole". We all do the second thing sometimes.

A snarky comment and a bad apology may be an instance of the second thing. But they don't imply the first.

Compare another toxic noun, "racist". There's a difference between "being a racist" and "making a racist comment". If people could apologize for the latter when it happens, understanding that it does not imply the former, the world would be a better place.


> A snarky comment and a bad apology may be an instance of the second thing. But they don't imply the first.

Sorry chief, I'm gonna have to go ahead and disagree with you there. The snarky comment can be forgiven. (although I've since read other tweets/posts from David Cramer and it appears as though he really is that abrasive all the time)

By contrast, a bad apology is a clear indication of someone's true nature. If the apology is backhanded or otherwise poor, it implies a lot. If you issue an apology but don't really feel sorry, then you're just doing it to placate others, and you really are a jerk.


He did not attempt to apologize, he defended his position. He wasn't being underhanded or antagonistic, he was attempting an objective justification. Nothing in there resembled passive-agression or "dickishness."


He admitted he was nasty in his blog, but he was proud of it. Enough said.


I don't see where he said he was proud of it.


Luckily, Cramer wasn't giving an apology. That post was not apologetic because it was an explanation of a single tweet. If you keep shitting comments that don't reflect the reality of the situation, that makes you the asshole.


Agreed, asshole :) (or was it the other way around ?)

Holly Ass, Twitter, by essence is an assholy thing. What can you expect from someone who has "3500 friends" or "50 000 followers" ? Follow the Holy Shoe of Jerusalem :)


The effort you spend denouncing them- 116 words v.s. less than 160 characters total in theirs- makes you look like a tosser.

Their actions weren't advisable by any measure, but you've certainly demonstrated a willingness to make up your mind about them, based off a number of extremely extremely short pithy statements. Dial down your indignation, friend: help us get rid of this reek.


> Dial down your indignation, friend: help us get rid of this reek.

I agree with you and gave you an upvote. Maybe my comments do make me look like a "tosser" - but these people were behaving like bullies, plain and simple. And man, I can't stand that shit. I see it every day. People will go out of their way to make others feel miserable. Or they use their power/standing/influence to pick a fight with someone weaker just because they can.


Steven and Corey have both more or less begged off from even trying to say what they mean- they have simply apologized for introducing volatility, for hurting feelings. I find it outrageously presumptuous to take such short, pithy tweets, and to claim they were made with malice, intending to antagonize, or were in fact bullying.

The fact is Nodeites are renowned for rehashing the entrenched. It also, gasp, has callbacks. These people weren't gentle in pointing out a capital example of just these two things. I don't think that makes them bullies or bad people, nor do I guess they even considered the human behind the works nor hardly the work itself: my _guess,_ and indeed, everyone is guessing here, is that they were making a crack on the idea of replacer, as justly emblematic of what Node is renowned for.

And although I think one would be a fool to become so polarized in view as these people showed themselves to be, I would much rather we have open channels where such conduct is permitted, where we can be a little low brow, boorish or lively, and express our ruffian selves: I'd rather have a wildness. I prefer tolerance and resilience. I loath the intolerance that says we must sterilize and purify and be of good behavior, must watch ourselves constantly.

Harthur talks about feeling like her identity has been injured, wounded forever. Yet here we are condemning and slining insults, armed with the zeal she has given us. Here we are, enacting new moral codes, legislating terms where nothing but support and good manners towards one another will be accepted. She felt that she had not been tolerated, not encouraged, yet the response is to mandate intolerance of another behavior, yes a boorish one, but regardless, just another tripline for ourselves to unintentionally trip over. Let's instead seek discourse- which she did- and failing that, tolerance. Let's not go troll hunting, lest we lay too onerous a minefield for any man to hazard.

A girl got caught in the crossfire of polarized communities. She cried. Everyone felt bad, many got indignant and decried other people and other communities for their action or contact with the affair. The internet got more uptight about itself. That, to me, is the absolute losingest situation imaginable, and I'd handily pass out yellow cards to 80% of this topic as contributors towards winding ourselves up, of taking ourselves too seriously, of ascribing way too much levity to an event that was tiny in size, and which we have not been given a codex to understand- it remains a context free situation, one we merely make projections about, without knowing what the real intent was, we just know people tweeted, for whatever reason, because something struck them, and they created, made and shared new content about their experiences.

They shared. I don't understand, they haven't explained, I don't think I'd like it even if they did explain it better, but these were people keeping themselves amused, first and foremost. That that would be subject to so much scrutiny, the cause of injury, is itself the most tragic here. We need to be tolerant, and find good, not focus on censoring bad or fretting about our identities, as first Heather did, and now the three authors are likely doing.

Sorry for labeling your writing as tosser like, not cool of me. I feel like ascribing intent to what happened is an impossibility, and even with bad intent I'm still very uneasy with censoring, with mandatory good behavior. I beg for de-escalation.


Okay, okay. This is enough. Both. Thanks for calling for a de-escalation, that sounds like a wonderful idea.

First things first, bullying is not always conscious. You seem to imply that and I happen to believe that is not true. Someone can act bullying-ish without being a bully. It happens. It sucks, always. It sucks especially when you're not in fact a bully and you didn't mean to act like one. (someone made a comment about "being a racist" and "saying something racist". It's similar.)

This point has been made over and over again: Someone with such a large audience and such a public channel has a certain responsibility. For better or worse, they represent a certain part of a community, they are looked up to. You can't deny that with a certain amount of, let's say "Power" comes a certain amount of, let's call it "Responsibility" ;)

And that responsibility is that they can't afford the same boorishness and low brow-ness on their e.g. public twitter channels. It's not just a developer expressing an opinion anymore. It becomes a community thing. I even read tweets in German, bashing this github repo. And when it goes that far, the vitriol in the air just grows exponentially. People don't think about it anymore, it's suddenly a hive mind thing. That's why it spreads so quickly. Monkey see, monkey do.

It may have been only one tweet per person by three people, but they happened to be high-profile enough to spread it far and wide. I also want to keep the communication channels open and tolerant, but it is important to conduct yourself in a courteous manner that you would also use face to face. Especially if you have follower counts in the thousands or ten-thousands. (it's a tight-knit community...)

I don't, however think that the public communication channels need to be tolerant or indeed designed for low-brow, ruffian, boorish behaviour. You can do that at home with your friends. Or indeed on Jabber/XMPP. Or on your own forums. Or mailing lists. Not that I would want to ban people from exhibiting these behaviours on public channels (To the tolerance-mobile!), but I would like to see the community frown upon them. In my opinion, they add very little value to the content and they benefit mostly the person exhibiting them and not the community at large. That to me means definitely that it should stay in private circles, especially if it can be detrimental to a single person.

You say that the community doesn't do itself a favour, reacting as harshly as that. But many of us (I think) love the idea of open source. Many of us would put out a small tool like that on github and we would probably be upset if someone (seemingly) just took a quick look at it and go to twitter and just essentially start a high profile pitchfork mob. That is why the reaction has been soo strong and passionate.

Also, the fact that Heather got caught between communities warring (apparently. that was not known to me...) is fairly irrelevant. This kind of conduct needs to stop. If someone wants to duke it out on twitter, take it up with someone who 1. agrees to it, i'm sure there are enough zealots in either community. or 2. is of a similar high-profile stature.

Some thoughts on what was said, what was meant, what was perceived. What was said: "I cannot even make this stuff up [link to gh:harthur/replace]" What was meant [speculation?]: "Hmm, I wonder why someone would remake sed with node.js? Weird." What was perceived [speculation?][citation needed]: "OMGWTF, LOOK AT THIS IDIOT MORON!!11 DOESN'T TEHY KNOW THAT THIS IS LIEK SED BUT SHIT? ALSO NODE.JS, LAWL!!!11"

This is only one of the examples. This is a problem, agreed? Most people seem to forget that perception is the most relevant of these three things when you conduct yourself in public.

Wow, this got more rambly than expected.

PS: To everyone that says "grow a thicker skin, the world is bad", please don't do this. It should be very reasonable to expect people to not be idiots. It's not a stupid thing. It's something we as a community should strive for. We should be moving towards a community that frowns upon these behaviours, protecting the new and the defenseless. (What you do in your startup world is none of my business, of course.) Why this hit so close to home for Heather [speculation?] and many of us [speculation?] is because we feel safe in this community and we didn't expect to [citation needed] be backstabbed out of our own ranks.


Best summation of this issue I've read so far. Hear, hear.


I'll take a page from the book of the guys you're defending and make a pithy comment to add some "levity" to the situation, as you called it.

"At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul. " - Billy Madison

Man I love your version of tolerance.


It shouldn't matter if it's unconstructive. He's not talking to the author of the code. I still don't see how being snarky, or god forbid considering being snarky, makes you an asshole. It's just some code; he's not insulting anybody.


Insulting someone's code is like insulting someone's kid. The guy probably feels he put a lot of thought and hard work into it. It's not that hard to give constructive feedback as opposed to being an asshole.


> "Insulting someone's code is like insulting someone's kid."

You are way too attached to your code.

. . .

What these guys said was still extremely rude.


I didn't come up with that quote. I believe someone famish like Martin Fowler did a few years back.

> You are way too attached to your code.

For most people this is subconscious. If you're not, good for you.


Someone like Martin Fowler should have better sense. Probably 75% of code is hideous when it's written. Probably 99.9% is hideous a few years later.

Someone who's so attached to their code that they can't accept criticism (even harsh criticism) of it is pretty much guaranteed to be writing crappy code.

You'll notice that harthur didn't flip out as if her child was insulted. Instead she asked for constructive feedback, a sign of professional maturity.


> Someone like Martin Fowler should have better sense. Probably 75% of code is hideous when it's written. Probably 99.9% is hideous a few years later.

Whoever came up with the orig quote does have good sense. I've worked with a lot of people ranging from NASA to new hotness start ups. I would say 95% people would be pissed no matter the skill level if you just made fun of their work as opposed to offering constructive criticism.

> Someone who's so attached to their code

I'm sure that most people who care about the quality of their work is somewhat attached to their code.

> that they can't accept criticism (even harsh criticism) of it is pretty much guaranteed to be writing crappy code

The issue at hand isn't that Heather can't accept any sort of criticism. The issue is still that you don't have to be a fucking dick to criticize someone else's work. It's not hard to offer constructive criticism as opposed to just trashing and making fun of something someone worked on for months or even years.

> You'll notice that harthur didn't flip out as if her child was insulted.

Umm she was crying; not only that - she posted that she cried. I would say she was pretty upset; she just handled herself well despite the circumstances.


> I would say 95% people would be pissed no matter the skill level if you just made fun of their work as opposed to offering constructive criticism.

I wasn't saying people wouldn't get pissed if you insult their work. I'd be annoyed if someone made fun of my work. But I certainly would not be as angry as if someone insulted my child. Or even my dog.

> The issue at hand isn't that Heather can't accept any sort of criticism.

Obviously not. She handled the situation with an overabundance of grace and asked for meaningful criticism.

> The issue is still that you don't have to be a fucking dick to criticize someone else's work. It's not hard to offer constructive criticism as opposed to just trashing and making fun of something someone worked on for months or even years.

Absolutely. These guys were being jerks. My comment was about being as attached to your code as you are to your child.

> Umm she was crying; not only that - she posted that she cried. I would say she was pretty upset; she just handled herself well despite the circumstances.

I'd say the fact that she asked for feedback is clear evidence that she is not attached to her code the way she might be to a child. Try walking up to a parent and tell them that their child makes your eyes bleed and let me know if they ask you for constructive feedback, vs hitting you, screaming at you, spitting in your face, or just walking away scowling.


Very true,

Everything in this world is subjective. When you talk about someone's work you are inevitable bringing some degree of comparison into it, and human ego has huge troubles dealing with that.

Nobody ever forgets an insult, it comes back sooner or later.


By "the guy" do you mean "Heather"?


yes


That's fine, but saying "this code makes my eyes bleed" is very obviously meant to demean the human being who wrote the code, not the code itself.


I honestly don't see that. It insults their coding ability, or at least their focus when coding that particular thing, but disparaging a single skill that a person has is not being demeaning to that person. At least in my mind.


That's pretty much what demeaning means, though.

It's not "a single skill" as if you were telling Torvalds that his juggling skills were crap and he should keep his day job; if someone has enough coding experience that they're releasing OSS on GitHub, coding is quite likely their job (or they're in school to make it their job).

So yeah, snarkily saying that the product of someone's career activity makes your eyes bleed (or whatever) is demeaning to them -- i.e., directly attacking their dignity and others' respect for them.


Their dignity should not be dependent on their job area being flawless. Thinking they screwed up on a single hobby project should not cause a loss of respect for the person.


There's a big gap between "not flawless" and "my eyes are bleeding" or "I can't make this stuff up".

Also: "should" != "is", I'm afraid.


I'm trying to make a distinction between 'a code project' and 'all the code they make'. Generally speaking, having one shit project doesn't do much to someone's overall record. 25 good, 1 shit is better than 10 good, 0 shit.


I think most people would find it demeaning to hear it said about their code.


If you make a criticism of someone's ability to do something, you are making a criticism of their intelligence. If a product gets bad marks across the board, are there no consequences to the team that developed it?


Ever wanted to see a bad argument? Read the post by Dylan16807!


As long as you're linking a specific post, go for it. I've made mistakes.

But I'm going to hope it's not just a post you disagree with. Just like I hope you don't call code bad because it uses OTB or omits semicolons. It should be failing to solve the problem it sets out to solve, and in an interesting manner. (Note: I have not looked at the code tweeted about.)

Edit: Wait how did THIS post get downvoted? I can understand the earlier posts but I can't even imagine what's objectionable about this one.


Don't know, but possibly because you're derailing the discussion.

The outrage is not about constructive (or even unconstructive) criticism of the code itself (which appears to be fine): At least one of the guys ridiculed the author and questioned her competence for the sole reason of implementing a subset of the features of GNU find+sed on top of Node.js.


Well then maybe those people should have been mentioned in the article. When I see top-level comments I don't realize I have to read hundreds of comments they are replying to without using the reply button. I was only talking about the examples given up front, which insulted the code, not the author.

Thank you for the useful info.


Buried beneath the snarkiness, the implied constructive criticism might be along the lines of "don't re-invent the wheel, kid". I looked at Heather's code. It seems pretty tight to me.


What a stupid comment! My eyes bleed! (But the author is probably a decent chap).


So you don't take pride or feel a sense of ownership over your code? That would put you in the minority I surmise.

Fact: The vast majority of people would take the twitter conversation Heather posted as a personal attack. Not many people are able to separate attacks on their work product from attacks on themselves (for good reason - since I feel like most people derive a sense of pride from their work).

I dare say it would also take an asshole to not recognize this fact and make rude comments and not realize someone would be personally offended even though "it's just some code".


in fact, if this is how they apologize it's probably best they don't

That's a beautiful bit of writing and thinking, right there :)


Meanwhile calling people assholes and declaring that the reason is "in [their] personality" based on what they may have considered saying, that's perfectly ok?

Have you really never made a comment without fully thinking out the ramifications, without missing some of the consequences, or just simply without really thinking period? People say shitty things sometimes, but labeling them as an asshole for all time based on that is patently ridiculous.


Oh sure, I've made plenty of stupid comments, but that's not what these guys did.

They picked a repo on Github that they thought was duplicating functionality in Unix (oh the horror!) and engaged in classic schoolyard bullying. Publicly shaming the code and the author, apparently to make themselves feel better and show the world how smart they were. And at the end of it, the apologies they issued after the internet turned against them were poor.

So yes, I do occasionally say dumb things, but I'm never a bully. If I say something mean it's because it was provoked. And if I need to apologize for something, I do it with real contrition.


I can comfortably say, based on more than a few arguments and discussions, that Steve Klabnik is not a bully. This situation sucked all around for a lot of reasons, but "that's it, this guy is an asshole end of store" is a poor reaction to it.

If you want to judge a person with any degree of finality by one isolated incident that you barely were involved in, that's your prerogative. I think that speaks more about you than it does the person. Hopefully you'll give me some evidence that changes my mind, I'm at least still open to that.


How can you begrudge me my opinion when the only facts I have corroborate it?

http://blog.steveklabnik.com/posts/2010-09-24-trolling-is-a-...

This post was from 2010 where he admits he's a jerk and can't help it. I think that pretty clearly is a victory for my thesis.


...did you link to the right post? The one I'm reading says he is aware that he is capable of this kind of behavior and has taken steps to mitigate it. If anything it hurts your I'm-right-in-declaring-this-guy-an-irredeemable-asshole thesis.


Dude, I don't know what to say to you. You're going to argue for the sake of it, even though you're objectively wrong. Maybe you can shed some light on why people do that?

The man HIMSELF admits he is intrinsically an asshole, and that even when he uses his real identity he can't help himself. Yes, he's trying to be better. But an alcoholic trying to fight the bottle is still an alcoholic.


In 2010 he said he had arsehole like tendencies. That's some time ago, I think it's a stretch to say that it makes him one. I've agreed with you right up to this point!


Well, he engaged in 'arsehole like tendencies' two days ago. When an alcoholic is on the wagon for a long time and then falls off again, they're still an alcoholic.


Comparing an alcoholic to an arsehole is absurd. An alcoholic can never touch a drop of alcohol for fear of getting addicted to it again. Someone can be an arsehole some of the time, and very nice the rest of the time!


>Wow, David Cramer is a total asshole! That Steve Klabnik guy is also an asshole.

Since we are talking about insults, reputation and constructive criticism: Does HN think the quoted text is appropriate?

Personally I think it is about on par with "makes my eyes bleed".


To be fair, that criticism is backed up by evidence. Whereas the main reason harthur's code made their "eyes bleed" was because it was written in node.js.


>>>and what separates people is how they deal with it.

That.


cramer's apology does imply that he didn't apologise properly the first time, and it was his lack of communication that did it. of course that could just be damage limitation


Here's the other apology, http://blog.steveklabnik.com/posts/2013-01-23-node

Heather, don't take it personally - your code is fine! JavaScript, on the other hand, is a wounded warrior by now..


My takeaway:

"Twitter makes it so hard not to accidentally be an asshole."


I once saw a BBC documentation about "why do car drivers easily get angry at each other?"

This is really interesting, maybe you want to think for a minute yourself before I reveal the reason. When I watched the documentation to the end I was surprised, but when I think about it now I'm not surprised anymore:

Car driving involves no eye contact, in fact you hardly ever see the face of the other person. People behave differently and more nicely when they look into each other's face. One illustrative example were Laughter Clubs. People go there to laugh. So when a new member joins, all others stand around him, start to laugh and look him in the eye. No matter if the laughter starts artificially, only few moments later the person in the middle cannot stop laughing... ;)

Back to the topic: Twitter is probably the most impersonal way to communicate. E-Mailing with my tax consultant is more personal. I cannot tell how often I realized that misunderstandings were created with E-Mails (which have arbitrary length.) Or even text messages which are limited to ~500 characters; but Twitter? 140 character stubs to talk to complete strangers?


Text messages are normally limited to 160 English characters, or fewer from other languages. I thought that was actually where the Twitter limit came from originally.


It's certainly not Twitter's fault. Lately, the open source community's underbelly has been exposed.

"But open source is right and we are the good guys?!", or... "But I know those guys and they are usually really cool!"

We want to categorize people as being bad or good, and it messes with our brain when we think we may have to re-categorize. It's more useful to realize that we all have a capacity to do both good and harm. It's also more useful to judge ourselves than others. Recognizing the need to change is the beginning. I know that I need Outside help to maximize the good and minimize the bad that I am capable of.


Yes, it's partially Twitter's fault. Enforced brevity in a popularity contest setting encourages smartassery and discourages (or makes impossible) nuanced expression.


Twitter isn't coming up to anyone, twisting their arm and telling them to be a dick. Lots of people manage to use Twitter without coming across like assholes.

If one feels that 140 characters isn't sufficient to correctly represent one's nuanced thoughts, then don't tweet.


And that's why I don't tweet!


Where's the button to give you 10million upvotes?


And yet you expressed your idea in under 140 characters.


That's a main reason why I don't. But I gather that in some circles the social pressure to tweet is not much short of arm twisting.

I doubt you could find many twitter accounts (barring commercial PR stuff) whose history is entirely free of rudeness.


> Lately, the open source community's

There is no "open source hivemind" so please don't disparage the millions of open source coders who will never make the frontpage of HN by lumping the entire conglomerate into one community.


Sorry, I didn't mean to disparage open source or people creating open source software - I love it!. The point I was trying to make was that even people with good ideals are fallible.


No, Steve Klabnik being an asshole makes it so hard for him to not accidentally be an asshole.

Look at this quote:

> nothing's _wrong_ with it, but I don't want to build my app on top of others' code who are at this level of understanding

What a prick!


Yeah... criticizing code is one thing (perfectly acceptable IMHO), but turning it personal made him into an asshole.

Note that of course there's an element of "uncomfortable truth" to this—evaluating programmers' ability is probably a good thing, and he's right to a degree. We all know amazing and experienced programmers who write libraries that are like diamonds in the rough compared to other coders' work, but 1) you have to be tactful; you don't put people down for their code no matter what, because 2) you have to help them get there, and negativity is not how you do that.


that quote is from where?



Out of curiosity, do you think there would there have been blog post apologies if the harthur post was written by a guy?


It took me up too now to realise it wasn't written by a guy, so.


I think it's the public ridicule aspect which is new, thanks to everyone using twitter like it's their backyard, and forgetting it's a mouthpiece to the entire earth.


No. The hot button topic right now in open source is "increasing diversity" which means more attention is being focused on this.


Yes. I didn't realize the post was written by a woman until I read comments here.


I wish he would replace his home page. I have to wait ~5 seconds to see the navigation for no reason other than the stupid terminal animation, and there's no obvious way of skipping it.


Please don't bully him like that. Have you learned nothing from this incident?


How nice of them. Makes you wonder how many apologies are outstanding.


To clarify - apologies to other people.

There's no such thing as accidental one-off snobbery.



> I cannot even make this stuff up: <url>

You are clearly well versed in this subject. So, how would you attribute this remark?


Twitter; you don't have space for detailed (and possibly constructive) criticism, you substitute witticisms because that's what gets retweeted (i.e. what the environment rewards). Maybe you read another snarky tweet just before and want to one-up it. Maybe you just worked on some messy code and are a bit frustrated and this looked like the right place to vent.

Off-hand snarkiness can be pretty mean, but that doesn't mean that everyone who engages in it is a fundamentally bad person; In fact I sincerely doubt anyone here has never written something similar.


Indeed, and thanks for explaining it better than I ever could.

People are treating "being an asshole" like an exceptional state of being, when in reality we're all assholes to someone sometimes. To pretend that some people are just intrinsically assholes, and everyone else is incapable of it, is a pretty surefire way to end up being the next asshole.

The reality is that snarky, flippant comments are easy, and it demands a level of self awareness to not engage in it. Recognizing your own ability to be an asshole is part of that.


> you don't have space for detailed (and possibly constructive) criticism, you substitute witticisms because that's what gets retweeted (i.e. what the environment rewards). Maybe you read another snarky tweet just before and want to one-up it. Maybe you just worked on some messy code and are a bit frustrated and this looked like the right place to vent.

And that's basically what we shouldn't do.


Sure, I understand that he is not an inherently mean person, who went looking for a sloppy code to bash. I meant that if he acted this way once, there's a good chance that he said something similar before, but it went unnoticed at that point.

Given his apology, he clearly would've not made that remark in person, nor would have he done it if didn't have a receptive audience that appreciates such snobbery.


Only one, from @zeeg.



The open source community surrounding popular languages such as Ruby and to a lesser extent Python has some really obnoxious behavior. They look more like popular girls at a high school than serious programmers interested in sharing good things with the world and helping others.

Also, people who live in glass houses should not throw stones at others. What is to prevent someone from going all Dijkstra on them? So be kind to others, it won't take much for someone much smarter than you to trample you.

This is nothing but bullying and can have a serious affect on the bullied person's mental health.


tl;dr: With great power comes great responsibility.


> Steve Klabnik ‏@steveklabnik

> @harthvader @zeeg nothing's _wrong_ with it, but I don't want to build my app on top of others' code who are at this level of understanding

This message [1] in particular is absolutely disgusting. Someone hacked together a script that met their needs, and threw it up onto GitHub in case anyone else found it useful? Yes, let's take the opportunity to condescendingly insult their mental competency.

What does he even mean by saying that he doesn't "want to build my app" on top of harthur's code? Nobody asked him to; steveklabnik himself made the original post, taking the opportunity to show off this smug sense of superiority.

[1] https://twitter.com/harthvader/status/293829635823792128


> What does he even mean by saying that he doesn't "want to build my app" on top of harthur's code? Nobody asked him to

I can't speak for him, but based on another comment further down ("I'll be over here in not-node"), it read like a dig at Node itself by proxy / extension.

> Yes, let's take the opportunity to condescendingly insult their mental competency.

Indeed. This type of behavior is almost never justified, but particularly less so when the object of scorn is clearly an exceedingly talented programmer. One glance at her GH profile reveals several well-used open source projects, including a neural network library and a bayesian classifier.

It really does drive home the point that if this can happen to someone of her caliber, then it really can happen to anyone. In fact, it probably does - except with less public attention.


I might be an emotionless robot or something, but I don't get the furore over this.

Everyone writes crap code sometimes (viz. github.com/007 aka craptown USA). Just because you are "exceedingly talented" or have "well-used" projects doesn't mean everything you write is rainbows and unicorns.

If your project is useful to you, then screw everyone else - why care what they think?

https://github.com/harthur/kittydar is useless but brilliant. I'll be bookmarking it for the next time I need feature detection in JS, and because it mentions HOG descriptors.

https://github.com/harthur/replace is useful but not-brilliant. I'll bookmark the 'sed' or 'awk' manpage instead.


But it seems that complaints against the replace code wasn't about the code itself. It seems it's more about the fact that it isn't sed, that it's javascript, that it's node, and that they themselves would choose not to use it. For all those reasons they chose to publicly criticize the project in what can be considered a demeaning way. For an "open" source community, that's a bad thing and deserves this furor. In fact, it should happen more often than it does.


One glance at her GH profile reveals several well-used open source projects, including a neural network library and a bayesian classifier.

Thanks so much for pointing that out (and thanks Heather for writing it :P)! I would have missed it otherwise, and I have always wanted to play with neural nets as well as bayesian filters.. this seems very friendly for me to get into, so it made my week(end) if not more :)


What a great idea to go around calling other people stupid for creating personal open-source projects that they enjoy using, mocking their competence and treating them as if they should go away because they aren't as good as you. What a productive use of a developer's time.


Even stranger is the fact that harther isn't exactly a novice programmer: apparently, she's part of Mozilla [1], and wrote brain.js [2], a neural network library in JavaScript with almost 1,400 stars on GitHub.

[1] https://twitter.com/harthvader

[2] https://github.com/harthur/brain


which is doubly embarrassing for the people insulting her because odds are anyone taking the time chastising someone's hacky duct tape script as if it were a Real Thing Worth Talking About probably has no comprehension of real algorithmic work, real computer science, like that needed to implement neural nets.


To be fair implementing a simple neural network is probably about par for the course as a sophomore CS undergrad project.

The basic algorithms you need can be found via google.

In my (extremely limited) experience the much more difficult part is using them to successfully solve real world problems.


Sure. My point is anyone who really seriously gets on their high horse about how great they are by looking at a simple little script that is essentially background noise for professional engineers are probably pretty far removed from even a sophomore CS undergrad level of sophistication.


Certainly, although in my experience smart , sophisticated people are by no means under-represented in the "asshole" population.

IMO the problem comes when you have people who's entire ego is based on being smart. In the past they probably had their egos massaged by getting the highest test scores in class etc and "winning" in that sense. Since the world does not work like that anymore they feel that they have to "win" at github instead.


brain looks pretty cool and I also noticed she not only works at mozilla but also regularly speaks at conferences. Weird how judging a person's competence based on looking at a single for fun open source project may not be a great idea.


Here's the thing, when someone like Linus Torvald says things like that, we applaud him for it.


I'm not sure if that's the same thing. Linus usually criticizes things in a way that actually points out the flaws. This guy is just essentially saying "LOL U SUCK"


And with Linus, it's not usually about the person (unless the person is actually being obstinate or negligent).


And here I was thinking that Linus was the one guy in open source who says "moron" a lot.


LOL U SUCK. Kidding, though some of the threads I read involving C++/C with Linus involved are so childish they are actually entertaining.

Example: http://article.gmane.org/gmane.comp.version-control.git/5791...


"Some of the threads"

goes ahead and provides one link everybody here has read by now

does see or mention context


Oh, the C++ one came to mind immediately when I read the parent comment.


Linus is often rude, but AFAIK not gratuitously, but I may have missed some of his public messages.

But even if it's the case, he is rude with the guys who work with him, his "captains" that he knows since a long time.

He do not bash a random project on Github totally unrelated to him just like that.

You can't compare.


No, Linus is often gratuitously rude.


Got a link ? Of Linus being gratuitously rude with a perfect stranger ?


Linus telling someone to shut the fuck up last month: http://news.ycombinator.com/item?id=4962912


Different because Mauro is talking on behalf of the Kernel and claiming obviously bad changes are good ones. Linus is reprimanding a subordinate that is supposed to be one of the most well-informed members of the Linux community as a kernel maintainer -- he's not criticizing a stranger for posting a tiny script in case it "might be useful".

Linus is DFL (not so benevolent sometimes) of Linux, and can lash out when one of his trusted lieutenants is acting like an idiot. What these guys did is call out a stranger on the street and said "YOU SUCK!"


Be that as it may he was a complete dick. I wouldn't want to work with someone like that, no matter who he is.


You don't have to. Then again, that's not a criteria for anything.


My guess is most people prefer not to work with assholes. And its a pretty good guess.


I don't think another maintainer on the Linux kernel qualifies as a perfect stranger. The team isn't /that/ large.


Why does it need to be with a stranger? Rude is rude.



tubbo 0 minutes ago | link [dead]

He's usually rude to code presented to him, but he doesn't go out of his way to diss code. It's a big difference.


I think it's inaccurate to suggest Linus is universally applauded for his rude behaviour. The last public outburst that caught wider attention than the LKML seemed to quite divide programmers in terms of its appropriateness. Personally, I found his attitude repellent and his tone unjustified.


Linus doesn't say things like that.

He goes after people who enter discussions without bothering to understand the details or the history. If you want to code your own kernel in Java, that's your prerogative. But if you come to lkml and start preaching C++ advantages, you will get flaked.


Who's "we"? HN, let alone software devs as a whole, are not a hivemind.


Linus doesn't say things like that.

If you don't understand the difference of context, well, look again!


He does. This was pretty nasty.

http://shutupmauro.com/


Do you really not see the difference between Linus Torvalds recalibrating a kernel contributor and three nobodies of questionable "conference-fame" picking on a random stranger?


No, I don't see why there should be different standards for civility in the two situations.


I don't see the difference. Could you perhaps explain it?


Yelling at someone you're in an argument with is a world away from picking on a stranger.

(It's not necessarily good, but it is categorically different behavior.)


Dressing down someone like that on a public mailing list is absolutely picking on them. It's not an argument, and is basically no different to the behaviour here.


It is basically worlds opposite to the behavior here.

a. Linus uses swear words. Steve Klabnik used none.

b. Linus provides substantive criticism. Even if you need flame-retardant underwear to hear it.

c. Linus never ever ridicules outsiders.

So what do the two have in common, again?

I loved the mauro thread because you're seeing Linus talking to an insider of an influential project and tell him that the relative outsider with no status is right. By doing it publicly he reinforces the culture of the kernel: we don't break user code. We are a meritocracy, and if you're wrong I will not be shy about letting you know.

He could do it with less profanity. But I heartily support his doing it so emphatically. Nobody else on lkml will brush something off as a userland bug for a year.


Ridicule is an extremely poor motivational tool, and when someone of Linus' standing does it, other people think that makes it somehow ok.

There are many ways to reinforce meritocracy, or reinforce a culture without telling people to shut the fuck up in all caps.


"Linus never ever ridicules outsiders."

That's actually not true. His "security monkey" references towards other projects being an example.


If someone brings up their child in a way I think is wrong I may disapprove, but it would be wrong of me to be abusive about it. If someone deliberately hurts my child and then makes excuses, I may very well end up serving 10 years to life for what I do to them.


Do you have this opinion when you are doing it?


Sounds like a general reprimanding a subordinate who has put people's lives in danger repeatedly and needs a straightening out. He clearly explained what the problem is, and expressed frustration that this had been explained before. Quite different from what is going on with this post.


I'd say that Mauro Carvalho's replies show a class act!

https://lkml.org/lkml/2012/12/23/87

https://lkml.org/lkml/2012/12/24/125


it is nasty but it is useful and when you a kernel maintainer is probably deserved.


Steve Klabnik:

"I find it incredibly hard not to be judgmental.

I'm not sure what part of my personality makes this happen, but even when I try to curb tearing down other people, I end up doing it anyway. I'm not sure if it's just me, but I think part of the problem is that these kinds of things are rewarded."

http://blog.steveklabnik.com/posts/2010-09-24-trolling-is-a-...


Textbook weasel apology.


Note the date; this one was from 2010.

His most recent post is http://blog.steveklabnik.com/posts/2013-01-23-node


From that post:

> Twitter makes it so hard not to accidentally be an asshole.

No, I'm pretty sure being an asshole makes it so hard not to accidentally be an asshole. Plenty of people, including Heather, weren't assholes on Twitter.


And it's still a weasel apology


Generally a weasel apology would be:

"I'm sorry If I made someone feel bad"

Not

"I am sorry. I feel terrible that I made someone else feel terrible."

Corey's apology did feel nicer, but I don't think that Steve's was a bad apology.


In his "apology", Steve says three times that he was "accidentally" an asshole. That doesn't sound very sincere.


He also talks more about his feelings than the person he's apologizing to!


I don't think textbook weasel apologies are usually done several years in advance.


Seriously, what a complete prick.


Not to contribute to the mindless hate, but look at the dude's Twitter photo. He's clearly an eccentric fellow. And also, apparently, an asshole.


This is scary. I share a lot of bad code in various places, that I created in process of learning or just because I needed something done quickly. I always inform that this code shouldn't be used in any system "as is", but may serve for learning purposes.

I know that a lot of people do that. And I find it incredibily useful, sometimes finding a snippet of code saves me time from jumping extra hoops, just because (for example) driver misbehaves or documentation is incorrect/incomplete.

I hope this incident doesn't stop anyone from sharing their code and findings, no matter how good or "professional" they are.


Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: