In response to a friend's posting about a particular software technique, I explained a another software technique which, using something called traits, allows one to avoid dispatch issues related to multiple inheritance and the ordering issues inherent in something called "mixins" (it also avoids the implementation duplication problem associated with Java Interfaces). And you know what? That's fucking boring. It's very boring. I read the original traits paper several times trying not to fall asleep. I did this because I knew it was important and I had to read it.
Had I replied with a dry description of strengths and weaknesses of traits versus mixins, people's eyes would have glazed over and not read what I wrote. Instead, I replied with an counter-example using bombs and girlfriends. I have received an email from someone who is offended by my example and on the likely chance that others may have been offended, I think that responding publicly is a good idea (I can't quote the original email I received as I've not asked permission).
First off, to the person who contacted me, here's the short response: I am truly sorry I have offended you. Long answer follows.
Years ago, I was asked to write a training manual for our staff. I had to explain how to use our new cost accounting software. This topic is about as exciting as watching earthworms get frisky but it was important. People needed to read it, but anything related to both cost-accounting and software puts people to sleep faster than my "does this smell like chloroform to you?" pickup line.
My manual had references to an office affair, concerns as to whether or not using hotel rooms for said affair could be claimed as an expense and, for good measure, I fit the Seven Dwarves in there as well. It was very bizarre, politically incorrect and the sort of thing which gets employees fired. Management talked to me about the manual. They were not happy.
The people who had to use the software told me it was the only software manual they read cover to cover.
I kept my job (it was never in serious danger), but I learned a valuable lesson. It's easy to get people to pay attention to boring topics: don't be boring. The problem is that if the topic is boring, you have to find something else to "spice" it up a bit. Regrettably, this means that some people, somewhere, will be offended. This is a downside and I do regret it every time I get email from folks who are offended by something I write, but the upside is that far more people read what I have to say. I really can't figure out how to balance this.
In defense of myself, I know my mind and I know my history and I'm quite willing to put my history of civil rights activism in writing, protest marches, donations and direct action up against just about anyone's and I know that many people who read what I write know this firsthand. But how does fit with what I wrote about some software which implied that a hypothetical girlfriend has an uncontrollable fuse and a non-lethal explosive property? Well, I thought what I wrote was tongue-in-cheek enough that folks would see the humor in it. I've used that particular example in front of female programmers before and they've laughed themselves silly (at least one is a good friend of mine and she would have ripped an arm off (mine, I assume) and beaten me with it if she thought I was serious). I've also ripped on male programmers plenty of times and have made disparaging comments about men's ability to "think outside the crotch". I'm an equal opportunity jerk, I suppose.
That being said, take a look at the "knife-man" icon I use for this post. There are a few replicas of that knife set and at least one of them is named "the ex-husband". I expect that there are men who are up in arms about that, thinking it implies that it's OK to have violent thoughts about men. I expect that there are women who are up in arms about that, thinking it implies that someone women are violent and unstable. If I had used a "bombs and boyfriends" example, there are men who would have been upset with the example. The only way I can be safe is to ensure that I never write anything which could possibly offend anyone. Not only is that impossible, it's booooorrrrriiiiinnnnggggg.
The example was, I thought, so absolutely ridiculous, I'm hard-pressed to understand how anyone could take it seriously. I don't want to offend people, yet also think that people sometimes need to realize when someone isn't being serious and just ignore it. So if you're offended by what I write, I do regret it and I'm sorry, but I generally try to write about things that I think are important (politics, economics, software engineering, civil rights) and I will continue to do my damndest to get people to keep reading.