Hacker News new | past | comments | ask | show | jobs | submit | argentpyro's comments login

Ben Noordhuis reverted a commit that had removed gendered language from libuv documentation:

https://github.com/joyent/libuv/commit/804d40e

Joyent received a lot of flak because people believe that Ben was a Joyent employee (he actually worked for Strongloop). Joyent came out with a post separating themselves from Ben, saying that they were in support of gender neutral language:

https://www.joyent.com/blog/the-power-of-a-pronoun


Which is all well and good, but the author of that blog post, the one who stated he would not hesitate to fire Ben if he were an employee, has no problem mocking bisexuals in public presentations:

https://www.youtube.com/watch?v=bGkVM1B5NuI#t=3059

To date, Bryan Cantrill remains CTO of Joyent. The corporate position appears to be that blatant homophobia by employees is acceptable, but improper pronouns are terminable offenses.


Never heard of him or Joyent till now, but I tried watching that video, skipping along and had a hard time not finding him being offensive. He even goes on to make light of nazis and mock a past co-workers "galactic butt", so then I just skipped even faster.

What's sad is that he seems to be talking about introducing 'drag' within the company and yet I doubt he realizes the irony given 90% of his talking content is just that.


That's extraordinarily hypocritical when you compare it to his blog post. That joke was completely inappropriate.

http://www.joyent.com/blog/the-power-of-a-pronoun


I'm not sure I'd call that "mocking" bisexuals, it's closer to mocking the shitty way other people treat them.


That does seem like an inappropriate joke, bad taste no doubt, but a firing offense? Only if this was representative of a pattern.


throwaway wasn't suggesting that Bryan should be fired for that.


The thing that annoys me most about this post is that

> to reject a pull request that eliminates a gendered pronoun on the principle that pronouns should in fact be gendered

is not what Ben was doing, and nothing Ben said on the subject could have given that impression. "Empathy is a core engineering value", and when you ascribe untrue motivations to people, you are completely failing at it.


The business context of the post is interesting: IIRC at the time there'd been friction between Joyent and Strongloop (who Ben works for) and each company had two core contributors (one of whom was Ben). After the commit controversy Ben, IIRC, stopped contributing to core for awhile.


I think that's quite one sided. He rejected the commit because the author didn't sign the contributors agreement. He was following the rules.

His crime was the tone of voice. I don't think it's worth forcing someone off a project for that.


I don't believe that was the reason he used in the discussion thread. His reply was:

"Sorry, not interested in trivial changes like that."


He went into more depth later: https://github.com/joyent/libuv/pull/1015#issuecomment-29568...

Among other things that might change your impression of Ben: 1) The work that the PR required from him was much more than clicking the merge button. 2) He's a non-native speaker of English and at the time he reverted the commit, he was under the impression that the difference was academic. 3) In his spare time, he teaches young people (especially women) to code.


Ben's answers on this have always been deeply unsatisfactory:

1) a) the merge was accomplished trivially by another maintainer; the idea that there was "more work" required of ben is demonstrably false.

1) b) he undertook more work to revert the existing commit, also see 2)

2) a) at the time he reverted the commit, there was substantial explanation on the issue on why it was important.

2) b) because Ben failed to check with his own colleague, he was unaware the commit had in fact been signed off - there was no rule problem here, apart from "not telling Ben".

3) lots of people do nice things and are assholes in other circumstances.

Apart from the sarcastic tone of his post ("if this gets us scores of female contributors" indeed), the grapevine says he was pretty deeply offensive to Issac over the issue as well.


That's precisely what I mean by tone of voice.

Egalitarianism (and all kinds of society-improving imperatives) are important, but if someone submits a change that is objectively a small number of bytes (regardless of the social ramifications) and doesn't follow the procedures, then they are causing him a problem.

He could certainly have phrased it better (which I characterised as 'tone of voice'), but as you get your daily work done you can't always be aware of the huge weight of people with a cause ready to descend when you slip up. People need the latitude to have an off-day. Who knows what else was on his mind.

I know Joyent wasn't his employer, but if I slipped up as part of my work and got a tirade of abuse as he did, I would hope my employer would support me not stab me in the back.



That was a great blog post, one that I don't remember having seen. That's exactly what I'd hope for.

It kind of throws into contrast Joyent's. http://www.joyent.com/blog/the-power-of-a-pronoun


> I think that's quite one sided.

IMO argentpyro explained the incident in a pretty neutral manner.


Actually reading that particular conversation about the commit (there were several) does demonstrate the reasons for reverting the commit.

(And the amazing speed at which things escalated)


I honestly believe it was a malevolent attempt by Joyent to oust Ben for joining StrongLoop.


I've never used F#, but I found an SO question [0] which provided the following:

- Functors (https://realworldocaml.org/v1/en/html/functors.html)

- OCaml-style objects (https://realworldocaml.org/v1/en/html/objects.html)

- Polymorphic variants (https://realworldocaml.org/v1/en/html/variants.html#polymorp...)

- The camlp4 preprocessor (https://realworldocaml.org/v1/en/html/the-compiler-frontend-...)

- Stronger guarantees from type system. F# allows null values, it seems, while you would need to use an Option type in OCaml.

[0] http://stackoverflow.com/questions/179492/f-changes-to-ocaml


Thanks, this was super helpful. I'll have to spend the time going through functors this weekend to try to grok them. But also F# doesn't allow null values, it uses the Option type as well.


F# most definitely allows null values. They might not be encouraged, you can't always assign a literal null to a type, but null is very much a first class concept in F#.

You're far less likely to run into them in F# code compared to C#, though.


I've used this library before and really liked it. I made a really simple roguelike with it:

https://github.com/melloc/roguelike

I remember running into some minor issues, but for the most part it's an awesome, mature library.


Your API could be mapped to a filesystem. (Although you might consider consider a filesystem a database.) If this were the case, it would make sense to use PUT for commands like chown and chmod, which are idempotent. Calling "PUT" "CREATE" here would (IMO) be confusing. I'm not creating something. I'm performing an action, putting things in their proper place, if you will. Another example could be home automation. You might design a REST API where you can PUT cameras to turn them on.

The way I see it, the great thing about HTTP verbs is that they are mostly (not all) unbiased about what they map to, and allow us to be more descriptive. If I'm inspecting the requests my browser is making, I'd much rather see "DELETE /path/to/resource" than see "POST /path/to/resource" and only discover that that call deleted my resource because the body of the request contained '{ "action" : "delete" }'.


Doing a "chown" or "chmod" would be an UPDATE operation, not CREATE. The permissions and owner values already exist by value of the record existing, so of course trying to call CREATE on them seems silly. Same with turning cameras on/off; that's UPDATE on the state on the camera. CREATE would be to add a new camera to the system.


> Doing a "chown" or "chmod" would be an UPDATE operation, not CREATE.

Right, which is why calling PUT to do them "CREATE" would be confusing. But PUT is still the right verb (well, for things like chmod 777; for chmod +X, PATCH would be better.)

PUT isn't "create" its "assign".


Thanks for posting that. I'm quite impressed by what's in there, especially the bit of cleverness involved with the bilby.Do() syntax.


Before today, I never heard of Mark Crispin. After reading your post and the e-mails sent for him, I wish that I had. Like whitewhim, thank you for enlightening me for a man I will never know.


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

Search: