Sunday, January 20, 2019

Snowflake Sociology

"Snowflake" isn't a term I enjoy using: it's derogatory, demeaning, and can be used as a dismissive approach to ideas we don't like. Until you're snowflaked, it's an easy thing to not like.

I was finally snowflaked awhile back. I sat on it for some time, but given today's general political and conversational climate, I wanted to discuss the experience. Someone asked a Stack Overflow question I thought was very clear in its intent, roughly:
I can't seem to wrap my head around the logic for writing a function that looks something like eight(times(five)) in JavaScript.
 They want a math DSL, and they provided examples:
  • eight(times(five)) should return 40
  • three(plus(two)) should return 5
I mean... this is obvious. To me. Not to Ryan and Amy. They asked for clarification, I told them both it seemed very straight-forward what was being asked. Their hangup (at first)? "Eight isn't a verb, so it can't have behavior."

What? Are all method names verbs? (No.) Are all method names in a DSL verbs? Most assuredly not (attr_accessor is not a verb, it's a declarative assertion of intent). To me, it was crystal clear what was being asked (and apparently it was equally clear to the two people that answered it).

I was accused of being condescending and misogynistic. Many people have accused me of being condescending; when you're far enough along on the spectrum to be diagnosable, it happens. Not proud of it, but it happens. Misogynistic?! To anybody that actually knows me the idea is laughable. I was insulted, and badly. It hurt. It was embarrassing.

Could I have expressed my opinion that I thought the question was obvious in a better way? Possibly (and probably, but honestly, it wouldn't even register with most people). Could I have said something like "It seems like they're asking for a DSL; given the provided examples I think the intention is to treat the function names like mathematical operators." I could have just said that and let it be.

I didn't: I said it was "obvious" what was being asked. That was the mistake. Why? Because when something isn't "obvious" to someone, and it is to someone else, it can make the other person feel stupid. This can escalate quickly (as it did).

I have a different view of things: if something is obvious to someone else, and not to me, it means I have a knowledge gap. I don't like knowledge gaps. I might feel shame: one of my traits is that I know things. It partially defines who I am. When I don't know something, it diminishes who I am in some way. It's a non-functional emotional behavior (that I'm working on).

That I didn't know something doesn't trigger an external redirection of that shame, however: I don't take out my (perceived) shortcomings on the person that brought it up, at least not in a public forum. And I certainly don't accuse other people of being biased in any way (if they're being a jerk I'll call them on that, though).

Here's the thing: nobody likes to be wrong. People like to be told they're wrong even less. Some people lash out when they're told they're wrong, or that something might be obvious to somebody else.

There's always a balance. Online intent is very easy to mis-judge. The word "obvious" can be a trigger.

Lesson learned.

Back yet again!

As part of a blogging/writing blitz I'm back on this platform as well as others.

I'll be blogging here, as well as one of the bloggers at the Maker's End Blog, discussing a wide variety of topics, generally related to technology, but occasionally stretching far afield into general Making, society, crafting, and so on.

A few of the upcoming topics will include:

* JavaScript
* Embedded Systems
* Projects/Builds
* Technology Landscape
* Automating creative workflows
* Refactoring (with specific examples, usually from Stack Overflow)
* Code Quality Issues and Metrics
* IoT
* Integrations

As always, I'm open to suggestions for topics.

I just built the Pimoroni Keybow keyboard; check out the build and review (and build video). It's a pretty slick 12-key auxiliary keyboard powered by the Raspberry Pi Zero WH with an RGB LED under each key. It acts like a standard keyboard (USB HID) and I'm pretty excited to experiment with it.

Also, stay tuned for excerpts from an upcoming Maker's End book series, the Inspiration Series, which will cover a number of embedded platforms including the Arduino, various Adafruit boards, Sparkfun QWIIC boards and components, and some DFRobot boards and parts. First out of the gate will be the Arduino Inspiration book, a project-based Arduino tutorial, with a goal of inspiring relative newcomers to the world of artistic expression using technology.