Saturday, December 7, 2013

A Promise to Reveal The Secret Recipe for Dealing With Assholes

Stay tuned closely to TheHackerCIO, because in a week or so, I will reveal the secret recipe for dealing with assholes.

The series on Dealing With Assholes came from ThePronounPrick Company: Joyent.

And in conjunction with the PronounPricks, TheHackerCIO has been dealing with an Asshole in his own inimitable way all week.

As a teaser, always remember that everyone in a company already knows the a-hole within.

I Remain,


Friday, December 6, 2013

Assholes Revisited

Recently, Joyent, the Node.js corporate side chose to make a public fool of themselves by being assholes about a pronoun. It would be funny if it weren't so perverse, but these paragons of "tolerance" and "empathy" would have no problem instantaneously firing someone for using grammar correctly.

As TheHackerCIO mentioned before, the old-fashioned Grammar pedants were a bit silly, but at least they wouldn't fire someone for a grammatical lapse. The Political Correctness crowd is an order of magnitude meaner, less tolerant, and lacking in empathy.

Naturally, they put this "empathetic firing" forth while linking to  this slideshare, about "Dealing With Assholes." [note: the actual site is called "Assholes are killing your project, but the link in Joyent's blog is called "dealing with assholes."]

I took some time to view the slideshare, because I just had a run in at a client with a major asshole, and so I'm thinking about them quite a bit. I was quite amused to read this slide:
What is an Asshole? Two Tests 
1. After talking to the asshole, does the target feel oppressed, humiliated, de-energized, or belittled?
2. Does the asshole target those less powerful?
I'm pretty sure that  Ben Noodhuis -- the unfortunate, correct grammarian,  would have felt oppressed, humiliated, de-energized, and/or belittled if he had been under the power of UnJoyent and had been summarily fired just before Christmas for grammatically correct use of pronouns. Furthermore, AssholeJoyent.js were indeed targeting those less powerful -- specifically, anyone who works for them.

Then there was this slide:

Word of mouth transforms one asshole into an avalanche
How do you fix it?
    personal interactions: have a conference
    provide expectations: Nobody knows your culture when they start. Do you want them to learn it from an asshole? Provide a code of conduct.
Again FascistJoyent did NOT have a personal, private conference, did they? Instead they published publicly in order to brag about how fascist they were about pronouns. In other words, they skipped the word-of-mouth, and moved straight on to the avalanche. And I wonder if they could provide us with a copy of their code-of-conduct, with proof that it existed prior to their blog-posting, where they specified that use of gendered pronouns was an instantaneous firing offense.

As to my own wisdom about assholes, I'll have to talk more about that another day.

In the Meantime, I Remain,


Thursday, December 5, 2013

Alice in NoSql Land

In the Alice-in-Wonderland of NoSql databases, unavailable means available!

The CAP Theorem, a.k.a. Brewer's Conjecture, holds basically that you can pick any two of "C", "A", or "P", where these stand for:

  • Consistency
  • Availability
  • Partition Tolerance
Consistency is the familiar "C" of relational database's ACID property of transactions. They must be:
  • Atomic
  • Consistent
  • Isolated
  • Durable
In the distributed world, and specifically in the NoSql world, consistency is traded off for availability. Many NoSql databases are never brought down for any kind of maintenance window! But this comes at a cost: the cost of "eventual consistency." 

In many applications, consistency isn't all that crucial. For example, if you've got a social network type of application, does it really matter if the number of "likes" is inconsistent? I've actually seen this fluctuate in real time, and who knows or even cares whether the "likes" are actually being toggled by some user, or this is simply an artifact of the node-cluster getting the consistency propagated throughout. 

But there are many "gotchas" with this new paradigm, and the "availability" meaning is perhaps the most troubling. TheHackerCIO hates it when people create a technical term that is diametrically opposed to common or popular usage, but this is a case where we are stuck with it, and there is nothing to do about it, except to note it carefully.

"Availability" in the CAP theorem is not your ordinary availability!

You might assume that a Server being up and functioning is available, but such is NOT the case. 

In the CAP-theorem, if you can talk to a node in the cluster, it can read and write data. 

So, if your cluster partitions -- say the European nodes get cut off from the North American nodes -- then one way to preserve "availability" would be for all nodes to stop talking to any clients! Then they would be "available," because "if you can talk to a node in the cluster (and you can't), it can read and write data (which you don't want to happen until the partitioning event resolves)." 

I'm not making this up. Here is a quotation from Martin Fowler's NoSql Distilled:
"However, this would mean that if a partition ever occurs in the cluster, all the nodes in the cluster would go down so that no client can talk to a node. By the usual definition of 'available,' this would mean a lack of availability, but this is where CAP's special usage of 'availability' gets confusing. CAP defines 'availability' to mean 'every request received by a non failing node in the system must result in a response.' [Lynch and Gilbert] So a failed, unresponsive node doesn't infer a lack of CAP availability."
So be careful with your "availability."

I Remain,


Wednesday, December 4, 2013

Fire 'em All!

Joyent will fire you for grammatical incorrectness. They blogged about it here. To insist on principle that pronouns have a gender is an instantaneous, walk-you-out-the-door, firing offense!

And it isn't just Node.js who wishes they could fire for this, but also the employer of the unfortunate offender, who in a much more cowardly fashion said here, that they would fire him, but didn't mean that literally. Except they did. I'll let another commentator describe it:

Quoting Isaac Roth:
If Ben can’t learn, we’ll fire him. [Edit: See comment below. This is not meant literally.]
Huh? How in the world that cannot be literal? You have created a poisonous environment with your coworkers/employees, where they can be held at gunpoint and be told "or you learn, or I'll fire", where learning means agreeing with your point of view, whether is correct or not. If you think you are a leader you are dead wrong.
Your extreme "political correctness" is nothing more than a fascist regime.

TheHackerCIO thought that old-fashioned Grammar-Nazis were a bit over the top, but this newer breed of Politically-Correct-Grammar-Nazis make them look like plush dolls.  Moreover, this is claimed to derive from "empathy!"

If this be empathy, then I call for eliminating it from the workplace.

It's a "zero tolerance policy."

I Remain,


Tuesday, December 3, 2013


TheHackerCIO is ever on the hunt for efficiencies. Now he's putting together a FAQ, so you can quickly refer to it before contacting him.

It's so much better to get to know someone before LinkIn with them. This will allow recruiters and outsourcers to read my strongly held opinions before they send me their LinkedIn requests.

Check it out here.

The LinkedIn spam is really getting thick these days.

I Remain,