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:
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:
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.
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.
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.
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.
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.
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.)
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.
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