I see a list of complaints, but for an outsider it is really hard to follow why these actions are considered to be CoC violations.
Take this, for instance:
"In [moderation repository discussion], Rod’s first action was to apologize to a contributor who had been repeatedly moderated. Rod did not discuss the issue with other members of the CTC/TSC first. The result undermined the moderation process as it was occurring. It also undercut the authority as moderators of other CTC/TSC members."
Do you know how this reads? A case is being made against a "toxic" person who "repeatedly breaks CoC" and the first complaint against him is that he apologized to a contributor? Really? I just don't get this.
This just appears someone compiled a list of things Rod screwed up, most of which he seemed to own and tried to fix. Maybe my impression is wrong but it just comes off as awful.
I tried getting the entire story. I tried reading through the complaints, hunting down tweets and even reading Rod's side. But I eventually had to give it; it was going to take me hours to gain a small amount of context (some appears to be private / offline so I don't see a way to gain all of the necessary context to judge this situation).
I get the feeling people are going to take their biases, one way or another, and run with what their side is because I don't see a quick way of wading through all of this.
This is why have stopped contributing to OSS in a public fashion over 20 years ago. Nasty backstabbing politics (and in my case, there was actually a business purpose behind it, unlike most of this drama) People online are awful and the veil of anonymity and distance brings out the worst in people.
Fuck that.
https://github.com/nodejs/TSC/blob/master/CODE_OF_CONDUCT.md
Instructions to not discuss this with anyone? Check.
Little to no evidence? Check.
No opportunity to provide a response? Check.
Witch hunt. But don't worry, if he doesn't float, we'll pardon him posthumously.
The NodeJS brand has the momentum necessary to build great things. If they squander it by cry-wolf-forking every time there is an internal disagreement, another JS engine (e.g. Chakra) will take the helm.
Node.js is not an engine, Node.js uses the V8 engine (same engine that powers the Chrome browser). Technically you could use Node.js with the Chakra engine or other JavaScript engines.
The greater point I was making is that this fork seems to be a baby-and-bathwater reaction; disagreeing with one member's behavior does not make the entire community toxic.
This, to me, is one of the most important lines of his response. I feel like critiques of CoCs and other related documents and processes coming from a white male are often interpreted as hostile. I would consider myself an ally, but I am afraid to weigh in on these kinds of discussions because differing opinions are so often manipulated into "hate" and "toxicity."
At what point do we stop ignoring this inconvenient truth?
> Some time ago I received notification via email that there are complaints against me. No details were provided and I was informed that I would neither receive those details or be involved in the whatever process was to take place. Further, TSC members were not allowed to speak to me directly about these matters, including my work colleagues also on the TSC. I was never provided with an opportunity to understand the specific charges against me or be involved in any discussions on this topic from that point onward.
From the article below, [1]
> Right away, the accused is cautioned about confidentiality: s/he is warned not to discuss the pending complaint with colleagues or students. The accused will only learn of the accusations against them when s/he meets face-to-face with the local Title IX enforcement squad.
Kangaroo court.
[1] http://quillette.com/2017/08/24/survived-title-ix-star-chamb...
Too often these important elements are missing, and Rod's statement "At no point have I been provided with an opportunity to answer to these complaints, correct the factual errors contained in them (see below), apologize and make amends where possible, or provide additional context that may further explain accusations against me." suggests that this lack of due process is present in this case as well.
When "Somebody complained about you in a serious way, but we can't say who, or the substance of the complaint." is the standard against which the process is measured, then it leaves itself open for abuse.
It's possible he said some things which ended up hurting people's feelings. It's entirely possibly he had no intention his actions be interpreted as they were. In that case, if you over value intent, he did nothing wrong, and some people were being too sensitive. If you over value interpretation, he should have known better, and it's his responsibility to be on top of how his actions would be interpreted.
Neither extreme is even remotely workable for all situations. The only thing that works in practice is that people accept that their wording sometimes needs changing based on common perceptions of it, and also that people may not have interpreted something as intended and intention matters as well. The only way to do this in practice is to actually communicate intent and interpretation when there's a problem so corrections can be made if they apply, and to both parties being open to accepting those corrections. This is obviously impossible if there is no communication.
And this is the reward for the effort of contributing time & code to a project? No, this is not inclusiveness.
Whereas a process without a notion of due process, is always worse than a process with a notion of due process.
I see it as the judgement a community makes is between dealing with the conflict openly (both accuser and accused are named and aware of each other and aware of the conflict) and avoiding open conflict. And in the interest of avoiding open conflict they sacrifice fairness.
I think the main takeaway here is that a Code of Conduct, while valuable, has to be treated carefully. A lot of these projects agreed to a Code of Conduct just to appease a certain faction of their devs, and are now seeing that it can be used against them.
Also, several members of their ruling committee left to make the fork. So it's not just a bunch of randoms, and they might be able to make some meaningful progress on their own.
There is no doubt that this fork is future of server-side JS.
It was this article tweeted by Rod:
http://quillette.com/2017/07/18/neurodiversity-case-free-spe...
Which was noticed by a member of the community:
https://twitter.com/captainsafia/status/887782785221615618
Does that describe it? Maybe someone has a more clear summary
One thing I noticed is that Node.js community seems to be followed by drama. Maybe it's just something I misunderstood, but I have observed Python, Erlang, Elixir, other communities around specific projects and libraries and I just don't see these many scandals there. In fact at one point when I reject Node.js as viable platform, the community scandals and seeming immaturity was one of top factors. What is it about this community that seems to attract this kind of behavior? And note I am not taking any sides in this case, as it is not clear what happened, it is just it looks messy to an outside developer looking in.
Several high ranking members of Node / NPM are militant queer feminists. If they smell blood in the water, they tend to pounce hard without much regard for due process. Others glom on either in agreement or to make themselves seem progressive.
Their CoC indicated that anyone considered a majority group (white and male being the worst) would automatically be considered at fault in any/all arguments and they would be resolved in favor of the minority.
That's the mentality at play here that does not give a space for people to defend themselves and resolve conflict. Sweep it under the rug so as to not disturb the more sensitive fringe elements, and condemn those who have not had a chance to even consider repenting.
I don't know about Node.js specifically, but I found when it is a project with a very high code-to-comms ration, this doesn't happen often. When there are a lot of non-coding "Open Source Groupies" involved in a project that start talking about "community engagement" and the like (or fledgling commercial entities, trying to cash in and influence), this shit isn't far behind.
Good open source code speaks for itself, and doesn't require non-code contributions. Or boards. Or a "Governance Structure".
Culturally, this sort of drama can only take place in environments where the "shut up and show me the code" hacker ethos is either missing or superceeded by other concerns. When a single company has significant control of the project, its priorities will override the project's. Many companies are interested in widespread adoption of the project, which is how "inclusion" ends up working its way on the list of project priorities. Many companies are also averse to controversy, so they're inclined to simply cut someone loose if there is a problem just to make the problem go away.
I could be wrong in the specific case of Node.js; the last time I paid attention to its governance was during the gendered code comment fiasco, where the contributor who was kicked out did not work for Joyent. But I have seen it in other open source contexts, most recently in the Drupal project.
And Joyent left the node scene almost entirely years ago, so that's not it. Now node.js is a bunch of smaller companies fighting over their piece of the pie.
The Joyent drama was also because other young companies saw potential profits if they unseated the incumbent. I suspect the best thing Joyent ever did was leave the scene -- they spent several years nursing node.js from nothing to fame, and look what they got in return: a mess and long-term negative vibes.
The drama we continually see in node.js are part SJWs, and a much-larger part behind-the-scenes competitive corporate politics.
Node had the "pronoun" scandal and the power struggle between strongloop and joyent.
The left-pad one which broke a ridiculous number of packages.
Crockford removed as speaker from some conference.
Project was forked at least 2 times IO.js vs node.js vs Ayo.js
While not a single scandal I have noticed in personal interactions while interviewing candidates, conferences, and online in forums that node.js devs seem to be very excited and confident and that's good, but also they don't know what they are talking about. That combination doesn't come off too well. That's why my "immaturity" comment. Maybe I am wrong and just happened to find all the bad apples by accident.
Node got really popular, and with that came a whole group of people who are more interested in social justice instead of actual technical work.
NPM is partially to blame for employing most of the people who are pushing to remove Rod.
If you are writing long emails dealing with responses to drama, you need to move on. Not because you are at fault but the whole situation is screwed up and not worth your time. This is not a win-win situation, but an everyone lose situation.
It means you and others are in the muck. Once you get a bunch of these accusations and long polemical post flying around it is nearly impossible to figure out who is right and who is wrong. The way people try to win here is ultra long polemical posts, secret discussions, accusations, character assassinations, etc. Non of which is at all productive.
Being in the muck is a huge waste of time and energy for everyone. Find something that doesn't involve so much drama, life is short.
I think one rule in software development is that once you are engaging in polemics, especially many hours of it per day, and not technical matters, something is sick about the situation -- get out of it.
Anyways, Rod's character is being assassinated on the internet. Prospective employers could Google his name and all they'll see is one side of things, unless he attempts to defend himself.
Additionally - the people wielding the pitchforks want him to just give up. At some point it's important for people to take a stand if they believe in their principles - or maybe I'm just old fashioned.
It is not a means of trying to fix the issue, but rather a strong worded, accusatory, defensive blast at his critics by someone who believes they were wronged and others are at fault.
This is not a "how to get to yes" type response, but rather a response that just inflames a situation, and causes everyone to dig in.
There is going to be no winner going down this path, just losers all around and a lot of wasted energy and time.
Yuk.
The whole point of a Code of Conduct, Homeowner's Association, or anything else which attempts to codify politeness, common sense, respect, etc. is to be used as a bureaucratic bludgeon against someone. And, while those may get put in place to get used against a single egregiously bad person, they then stick around to get used by the far more numerous petty political jerks.
"Members of the Node.js community deplore the action of the CTC men who have been cited for contempt by the Foundation board. We do not desire to prejudge their legal rights, but their actions have been a disservice to this project and have impaired their usefulness to the industry."
"We will forthwith discharge or suspend without compensation those in our employ, and will not re-employ any of these men until such a time as he is acquitted on Twitter or has purged himself of contempt and declares under oath that he is not a Meritocracist."
"On the broader issue of alleged sexist and non-inclusive elements in Silicon Valley, our members are likewise prepared to take positive action."
> I do not recall being asked to remove the names of the companies involved, I have only now seen that they have been edited out of my post. I cannot find any evidence that such a request was even made. This would have been a trivial matter on my part and I would have done it without argument if I had have seen such a request.
There was once a list of grievances against this person here https://github.com/nodejs/TSC/issues/310. That list is no longer present; it has been redacted, and a reason for that redaction has been posted.
As someone who has zero context for this issue, this makes it very hard for me to understand.
This redaction is not something that can happen easily with source code. Comments and other "metadata" can be edited, permanently and without a view into history. That makes it very hard to trace the genealogy of discussions.
Sure, you can rewrite git history and push, but that's a) less durable, because someone might have a fork/copy of the repo, and b) much less common by convention.
I really don't like the tendency of GitHub/GitLab as platforms to encourage the "facebook style" of content authorship (what you posted is what you posted . . . until someone edits, it, then it never was that in the eyes of recent arrivals).
Edit: I will probably accidentally type markdown into HN comments until the day I die.
Sure, you may not be able to find that really useful utility you once used to parse regular expressions because the author stopped maintaining it, took the web site down and never released the source code[0], but that one time you[1] drank too much and tweeted something embarrassing will be discoverable on Google next to your name for decades after you die.
[0] That's been a bugger of mine for a while -- if anyone knows where Rad Regular Expression Designer went, I'll e-mail you a soda.
[1] Or when someone who shares your name and got arrested for theft (thank God he lives in a part of the country I have never visited).
But more than once, he jumped into projects and features that he knew other people on the team were already working on, implemented them himself in a rush without coordinating with the other developers, and pushed his code instead.
Sometimes he would take shortcuts to get it done faster while his teammates were working on a more fully developed version of the feature. And since he was first, that was the code that would be used. The other developers were left with nothing to show for their efforts, less of a feeling that they were valued members of the team, and a significant loss of reputation in the eyes of management.
Cold hard code is important, of course. But it's not the only thing.
At least from the first page, it seems he's mostly working on documentation, specifically changelogs. But honestly, those changelogs are fantastic and definitely make a difference in my life (I don't want to comb through tons of commits to figure out what has changed between versions of Node). It might not be code per se, but the contribution is noticeable.
Even if all you do is make people feel welcome in a community or bring people in, those are still worthwhile (new people can mean more code). And if you're an amazing programmer but make everyone want to leave the project, one can see how that would also affect the code (contributors leaving).
"Cold hard code" contributions are an option available to anyone who feels comfortable with donating their labor under an opaque pseudonym. It's a good way to proactively shield oneself from disputes of this nature. It's a natural continuation of the quip "On the Internet, nobody knows you're a dog" -- except if you tell everyone you're a dog. Plenty of people contribute to collaborative projects solely on the merit of their contributions, even as many projects have come to follow the trend of considering other factors as well [1].
Are you going to accept cold hard code contributions from someone who regularly writes excellent code and has the technical sense of the community about 80% of the time, and is at odds with the technical sense of the community 20% of the time, and regularly tells everyone involved in the 20% case that they're idiots and the project will fail if they don't merge the remaining 20% of their code (which is technically excellent too, just not implementing the design people want)?
Are you going to accept cold hard code contributions from someone who generally writes good code that works on the first try but refuses to listen to code reviews?
Are you going to accept cold hard code contributions under the wrong license? (Licenses are politics, not code!)
That said, I am at least happy to see a he's going for a middle ground - he seems to be saying he won't step down, but he also looks like he's apologizing for anything he did wrong. Perhaps that's the best way to end the argument despite it not 100% pleasing either side
This is not the same and highlights why a code of conduct focusing on moral issues is not always the best path for a project/language.
[1] <http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-...
But transparency in the process is also important. I don't have a good answer for this. It seems to be damned-if-you-do, damned-if-you-don't.
Not being allowed to criticize something is the first red flag, for me personally, that the idea is likely to be worthless. There shouldn't be any debate about whether or not an idea can be criticized and the people in this thread who seem to be ok with firing/excluding a person because of their opinion... man that is just bizarro-land to me.
No. It is not. Saying that the specific accusations were removed to keep Rod from getting harassed suggests that it must have been something serious. Fortunately there's the Web Archive and you see what was the 3 most serious crimes that rod was accused of, and I quote:
1. "Rod’s first action was to apologize to a contributor who had been repeatedly moderated" 2. "Rod did not moderate himself when asked by another foundation director" 3. "Most recently Rod tweeted in support of an inflammatory anti-Code-of-Conduct article"
Some of this is NOT EVEN TRUE - see Rod's response: https://medium.com/@rvagg/the-truth-about-rod-vagg-f063f6a53... - as no evidence was ever provided that he was indeed asked to "moderate himself" (read: remove what he posted in a comment on GitHub which was not even ever accused of being incorrect).
The third point is deliberately misleading and you can see for yourself - just see the tweet in question: https://twitter.com/rvagg/status/887652116524707841
Rod twitted no more no less but: "If you've never considered the potential downsides of codes of conduct, here's a good place to start" and posted a link to The Neurodiversity Case for Free Speech by Geoffrey Miller - who is described by Wikipedia as: "Geoffrey F. Miller (born 1965 in Cincinnati, Ohio) is an American evolutionary psychologist, serving as an associate professor of psychology at the University of New Mexico and known for his expertise in sexual selection in human evolution, and for his views on the evolution through sexual selection of the human brain as sexual ornamentation." - see: https://en.wikipedia.org/wiki/Geoffrey_Miller_(psychologist)
As you can see, when someone is quoting a very interesting article of a known professor of psychology with the only comment of "If you've never considered the potential downsides of codes of conduct, here's a good place to start" and THEN someone else describes it as: "Rod tweeted in support of an inflammatory anti-Code-of-Conduct article" then it is a deliberate misinformation - but who will take the time to search for the real tweet, follow the article, read it and read about its author? No one. But the rest of the world is already describing Rod as "a person who has generally been standing in the way of making Node.js an inclusive project" because of the mysterious accusations that were later removed - see: https://github.com/ayojs/ayo/issues/4
Now, even if all of the accusations were indeed true and even if they were not blown out of proportion - it all boils down to 3 points:
1. he apologized someone for being censored 2. he didn't respond to self-censorship request fast enough and instead got censored by someone else 3. he twitted a link to an article on Twitter - a medium where no one can censor him unlike on GitHub, an article that (God forbid!) explains the exact same problems that we see here.
See the original accusation and think for yourself - were the actual accusations removed to defend Rod from harassment or to make us think that it must have been serious misbehavior if there was a risk of harassment if anyone knew the facts involved? THAT is the real reason of never talking about the real "crimes". Think about it.
See: https://web.archive.org/web/20170821212745/https://github.co...
> I mean, under the current circumstances, a public, enumerated list of all your supposed crimes is pretty much guaranteed to bring a mob down on your head, and it would probably rocket to the top of Google searches for your name -- regardless of how the process turned out.
See? Even you assumed that those must be something that rod should be ashamed of. Meanwhile it was ONLY those 3 things that I described above. Now, when those were removed, people who google for his name will see articles like "Node.js forks again – this time it's a war of words over anti-sex-pest codes of conduct" and think that he must be a "sex-pest" because all of the actual accusations were (deliberately) removed.
I am wondering about introvert geeks accused of "toxic behavior" silently sitting in the corner.
This has been happening more and more recently, both online and in geopolitics.
I'm trying to figure out if this response is similarly of zero information value - interesting, but should not convince me either that he's in the right or that he's in the wrong - or of nonzero information value, convincing me that he's in the right. I'm currently leaning towards the former.
They don't have the training, resources, or infrastructure to make it work.
Really, they should just be realistic, and say "we're gonna look at what people say, make a completely arbitrary decision, and stick with it".
Because that's what is really happening.
Given the types of complaints and their subjective nature in some instances, I imagine you're probably looking at something close to 4-5 hours at least to get enough context to form an objective opinion of your own on this situation if you aren't coming into it with that background knowledge already. I'm not willing to invest that.
https://thenewstack.io/node-js-forked-complaints-repeated-ha...
It's amazing how quickly an organization or platform can just die like this. Sure, it isn't dead dead, but it's descended into a pit of political BS and petty drama.
I don't follow Node, but I've seen the Bitcoin community get to a place where understanding the politics alone could be a full-time job. It's pretty sad.
Prediction, the side that forked loses.
Since the primary complaints against him involve details that he does not specify (and may not be easily findable after a lot of digging), I was interested in the 3rd listed complaint, which was about how he allegedly conducted himself on Twitter:
> Most recently Rod tweeted in support of an inflammatory anti-Code-of-Conduct article. As a perceived leader in the project, it can be difficult for outsiders to separate Rod’s opinions from that of the project. Knowing the space he is participating in and the values of our community, Rod should have predicted the kind of response this tweet received. https://twitter.com/rvagg/status/887652116524707841*
Point 1 of his rebuttal:
> The post I linked to was absolutely not an anti-Code-of-Conduct article. It was an article written by an Associate Professor of Evolutionary Psychology at the University of New Mexico, discussing free speech in general and suggesting a case against speech codes in American university campuses. In sharing this, I hoped to encourage meaningful discussion regarding the possible shortcomings of some standard Code of Conduct language. My intent was not to suggest that the Node.js project should not have a Code of Conduct in place.*
Point 4:
> To re-state for further clarity, I have not made a case against Codes of Conduct in general, but rather, would like to see ongoing discussion about how such social guidelines could be improved upon, as they clearly have impact on open source project health.
Here's his Tweet and its reply chain: https://twitter.com/rvagg/status/887652116524707841
I don't think the tweet rises to the level of demanding his removal. I don't know Vagg or his Twitter account so I don't know what his rhetorical style is (and I tend to give everyone the benefit of the doubt that Twitter is part-performance). But I didn't find his rebuttal to be convincing. It's not just that he tweeted out an article that may have annoyed/offended people. It's the way his tweet replies are what you'd expect from someone who just doesn't like CoC's, but is too politically savvy to say it, e.g.
"And folks who think there's a possibility that CoCs may not be achieving their stated aims? No room for discussion on that?"
"I accept that, but there are surely valid concerns about their current implementation that could lead to improved solutions"
"If we're talking evidence, I'd love to see some solid data on the use of CoCs, it doesn't exist, we just have to have faith."
"But I have witnessed the negatives, again and again, the most tragic are against those who don't naturally fit in"
Even accepting that Twitter is just not ideal for substantive debate, it's hard to not feel he's being less than upfront. He wants an open discussion about CoC's. But every tweet has the tone of "But maybe CoCs can be bad? Why isn't there data? etc etc". For the sake of argument, I'll happily assume his premise -- that CoCs may be inherently flawed and lead to the injustice they purport to fight -- but why doesn't he describe an actual example? Calling for "open discussion" and then just retorting with points so vague that no one can honestly discuss them is one of the most annoying things to see. e.g. "But there are surely valid concerns about their current implementation that could lead to improved solutions" If you think this surely must be the case, why don't you kick off the discussion with just one of those things you've considered?
Back to his posted rebuttal on Github. I'm glad that he pointed out his record for supporting Node.js's CoC and using CoC in his own projects. But when he says:
- "I have never made a case against the Node.js Code of Conduct."
- But on Twitter, he implies that people aren't skeptical enough of CoC's and that he has "witnessed the negatives, again and again".
Is his lack of criticism of Node.js CoC ("I have never made a case") because Node does it right? Or is it because he doesn't think it's worth it for him (in his position) to critique Node.js CoC (which is an understandable position). His rebuttal, when looking at the source material, doesn't feel direct enough to me. How can he claim that "the post I linked to was absolutely not an anti-Code-of-Conduct article" when the article starts off with:
"In this article, I’ll explore the science of neurodiversity, and how campus speech codes and restrictive speech norms impose impossible expectations on the social sensitivity, cultural awareness, verbal precision, and self-control of many neurodivergent people."
Concludes with:
"Campus speech codes discriminate against neurominorities."
Followed by:
"In a future article, I’ll outline a legal strategy to use the ADA to eliminate campus speech codes that discriminate against neurominorities."*
Reading the entire post a couple times over, if the professor believes that there are code of conducts that are not inherently discriminatory, he doesn't cite any evidence of their existence, or make an attempt to outline what an acceptable CoC looks like.
----
Putting aside all the other complaints leveled at Vagg -- not because I think they're unimportant, but because there's not enough info for outsiders to have an informed opinion -- I sincerely hope that Vagg and Node.js's governance can come to an amicable and transparent resolution at least on whether Node.js CoC is as good as it can be -- which seems reasonable if Vagg's public record of supporting it comes from his personal principles.
I do believe that CoC's are both well-intentioned and worth fighting for. And I also agree that they are and will always be a hard problem, because they attempt to address and mitigate hard problems. I don't know what the resolution to Node.js's conflict is, but the last thing we need is yet another fucking blowup in which the entire debate gets reduced to the lazy polemic of "Objective programmers yelled at by SJW soft scientists"
>> "I have never made a case against the Node.js Code of Conduct."
> But on Twitter, he implies that people aren't skeptical enough of CoC's and that he has "witnessed the negatives, again and again".
If you use anything enough times, you'll witness the negatives again and again, even if you feel the positives outweigh the negatives and overall recommend it. Viewing something as a net positive, let alone not making a case against it, does not require you to be blind to it's negatives.
But without a transparent process where the accusations are clearly stated, I see two practical consequences:
1. The lazy polemic you quoted.
2. Reserving judgment.
Is there another option I'm not seeing?
Poor guy, they will eat him alive.
"Rod has his opinion on CoC and you have yours. Now play nice or you both go to bed early with no TV."
I believe Rod and his detractors are all earning a different sort of punishment though. Who wants to hire a bunch of drama queens like this? It's too bad salary data isn't public like tweets. It would be interesting to see exactly how much internet drama negatively impacts a person's lifetime earning potential.
They proceed to throw a temper-tantrum and create a useless fork which so far has done nothing but bike-shedding.
https://news.ycombinator.com/newsguidelines.html
(We detached this subthread from https://news.ycombinator.com/item?id=15102018 and marked it off-topic.)
Not saying I disagree about the temper-tantrum, but there was no reason to state it in the way you did.
The frustrated comment I gave is from the perspective of someone who is not an american; I don't see american californians as the moral authority of how open source software must be developed.
It is a sad day when politics must be paramount when contributing to a foss project. If developers wanted this burden they'd need look no further than working in a soul-crushing multinational mega-corp.
EDIT: please do not downvote the parent comment to this. He/she has commented to continue discussion, if you disagree please discuss, not downvote.