December 15, 2012

I'm Sorry

The one-eyed snake
It appears I've been that guy (again). I've seen those "sorry if you were offended" apologies, and they are bullshit. So let me begin by unreservedly apologizing for my inappropriate behavior. Then perhaps I can tell you what this is all about. I do so in the doleful expectation that this post will generate more heat than light, as is typical for this subject matter in geek circles, and will be the cause of a large amount of ill-informed, unhelpful and possibly personally damaging commentary. Since it gives me the opportunity to discuss a few issues of importance I accept that as the price.

Last This year, at PyCon, I had a Square, a device to accept credit card payments through my cellphone, and inter alia was soliciting donations to the Python Software Foundation. As a part of my schtick I was offering to take photographs, and offered the option of a prop, a little Beanie Babies™ bean-stuffed Python which my dog, when a  puppy, had once got hold of and played with so enthusiastically that she tore off (and probably swallowed) the glued-on bead that represented its left eye. I've had this snake almost ever since I started using Python (almost twenty years now) and I'm very fond of it. It often travels with me as a talisman, since I usually travel alone.

Because I am so familiar with it, in retrospect it seems a little odd that I had never particularly dwelt on the fact that it is, literally, my "one-eyed snake" though I had used the phrase at home with family and friends as a joke. [For readers not familiar with colloquial English and American, I am obliged to point out at this stage that "one-eyed snake" is one of many euphemisms for the penis]. I was amused enough, on that day, by this fatuous coincidence that I offered to include "the chairman's one-eyed snake" in the photographs I was taking, of men as well as women.

People appeared (in my opinion, not actually the opinion that matters as it happens) to tolerate my risqué attempt at humor, feeble as it was, and took it in good part although certainly not everyone asked for the snake to be included. The conference ran its course, I went on my way, unaware that a storm was brewing.

The storm's gestation in fact took another event to trigger it, a recent motion by the PSF board that we would require any conference we funded to implement a code of conduct. The board collectively felt that this would be a forward step, and would actually be helpful to conference organizers who had not yet addressed this issue. PyCon has has a code of conduct for several years, and since the conferences I run professionally also have codes of conduct, I had no hesitation in voting for the motion.

It's difficult to describe this situation in anonymous terms, since verbatim quotes are required in order to allow me to properly discuss the way this situation has turned out. But those who wish to know the identities of the proponents must do so by using {{search_engine_of_choice}}. What happened when news of the motion came out is that someone posted a comment on Hacker News which included the following content
From what I understand, the code was approved by the Board of Directors of the PSF, and not the PSF as a whole. Please, correct me if I am wrong. This is ironic since one of the Board members was walking around the conference last year with a damaged stuffed python toy asking, "Would you like to see my one eyed snake?"
This was said to one of my female colleagues. I asked her if she would like me to say something and she replied, "No, it is just creepy, but I'm an adult."
I'd like you to particularly note two things: first, the quote is inaccurate, I believe (if I uttered those words I would have to accept I would have gone over the line with anyone but a close friend); second, the colleague herself chose not to complain. This is significant because of what happened next. Clearly the comment had received some attention, since shortly thereafter a second person, one I think it is fair to say is known not to be well-disposed towards the PSF, tweeted (in reply to a third party who may for all I know have been a fifth or twelfth party)
Wait, I didn't read this comment closely enough. What fucktard was walking around asking women to pet his one-eyed snake?
Note again: the already inaccurate quotation has been through the mangler once more. So now we (that is me and the PSF, though in this post I must put my director's hat aside and accept personal culpability) have a situation. This is not something that would have worried me hugely in my personal capacity, but the fact is that it has brought a lot of pressure to bear on someone who, through his heroic efforts to improve on last year's incredible PyCon, is already under quite enough pressure. So it is necessary for me to write this explanation lest his efforts to bring in sponsorship and promote diversity of all kinds in the Python community are damaged by my bad behavior.

Now to the several points I should like to make about the outcomes so far. I hesitate to think of the fallout to my professional life.
  1. I am lucky to be a man, since any woman posting about similar issues of female sensitivity is likely to be harangued and harassed until, unless she is of extraordinary character, she either allows herself to be silenced or leaves the Internet altogether (yes, well-known women have received threats that they felt obliged them to do this).
  2. Context is important. Although my behavior may not have been appropriate, it was taking place in broad daylight in a well-populated area so nobody felt especially threatened by it. The same offer (let alone either of the two misquoted ones above) made to a woman who is the only other occupant of an elevator at 1:30 in the morning would, I think, be reasonably interpreted as a possible if not an actual threat. Anyone who doesn't understand that isn't really fit to be out alone.
  3. It isn't up to me to decide whether my behavior is appropriate, but those with whom I interact. I teach professionally, have taken (and passed) sensitivity training classes, and am accustomed to behave in a professional manner that does not run the risk of attaching stigma to those I represent.  Because I feel that many members of the Python community are my friends, I perhaps overstepped the boundaries of professionalism, believing that nobody would mind.
  4. The fall-out of righteous indignation about events like this often lands on the wrong person. There is now heavy pressure on Jesse Noller as PyCon chair for not taking action about this. There have been definite suggestions that Jesse is being hypocritical in promoting a code of conduct for PyCon while condoning inappropriate behavior by a fellow director. There are two things worthy of note about this. 
  5. Firstly, since the issue only came to his and my attention eight months after the conference (and, indeed, after both he and I voted for the motion requiring codes of conduct) it is difficult to know what he could have been expected to do at the time. He has been heroically silent (for him).
  6. Secondly, the code of conduct exists precisely to reassure people that harassing actions can be reported, and will be dealt with, no matter what the position of the offender in the community. So I think anyone who is gunning for Jesse about this should give him a pass. If he had come to me because he had received a complaint I cannot say what action I would have felt correct, but at the least I would have expected to make a public apology. I do not expect that Jesse would have felt able to let a transgression on my part go without action: he has far too much integrity for that. I like to think I have enough integrity to accept being told when I have transgressed (hence my dislike of the "if anyone was offended, sorry" stuff).
  7. Circumstances alter cases. The code of conduct is not expected to protect people in a vacuum. If you find someone's behavior offensive your first recourse should be to say so. Hopefully an apology should be forthcoming, or at least a civilized discussion about your differences in standards. If the issue cannot be resolved in person then is the time to invoke the code of conduct. This is what makes variations in behavioral standards acceptable: when you are with people you know you are unlikely to go wrong; when you are not you should take others' input as defining acceptable limits.
  8. It is unreasonable to expect perfection. We all slip from time to time, and a slip should not necessarily lead to a fall. I noted with a parenthetical "again" in the opening paragraph that this is not the first time I have behaved inappropriately, and sadly it may not be the last. I can say, though, that on the few occasions my behavior towards an individual was definitely capable of causing offense I have apologized sincerely and without reservation, usually before further contact from the other party (i.e. I am capable of recognizing bad behavior on my own part and voluntarily apologizing for it). I am happy to say that I count some of those to whom I have had to apologize as friends even now, and believe those feelings are reciprocated.
  9. I specifically do not want the support of men weighing in with some equivalent of "what the hell, man, you didn't do anything wrong, what are the women complaining about?" Perhaps when your knuckles stop dragging along the ground we can talk. I very much would like the support of men who are equally liable to do stupid things (and have done) and yet still remain open to the possibility that one can be equally civil and courteous to members of all sexes. It's easy for men to say "we've all been that guy," but I hope that women don't imagine that guy conversation is laced with tales about how we were "that guy". We don't talk about our goofs even among ourselves (unless there's some club I'm not a member of). Men who are sensitive to the need for gender diversity find these mistakes painful to remember, and only dwell on them in private (this has not been an easy post to write). Men who are not sensitive to that need, please re-read the opening sentence of this paragraph. Support from others will also be more than welcome. 
  10. Diversity is not just gender diversity. Because I speak fluent English it is easy for Americans to imagine that I have absorbed their culture fully, though even after fifteen years I often have to stop to clarify cultural referents common to most natives. They forget that I am, in fact, an immigrant who was brought up with different standards. I am not trying to suggest that I should not be subject to the values of the USA, but would hope that when I overstep the bounds some leniency might be shown. I in my turn sometimes forget that standards are different over here.
There is more that I could write*, but I feel that this post is already long enough. I will close by remarking that it turns out the female colleague of the original poster is personally known to me, and in our several meetings both personal and professional since then she has not mentioned this issue (unless my memory has failed me). Naturally I intend to apologize to her at the first available opportunity, and to ensure that in the future I do nothing to make her feel uncomfortable (the basis on which I believed I was conducting the relationship). If I was not confident that people would feel comfortable in my presence I would not feel able to attend PyCon, since that would exclude others.

As PyCon's founder I genuinely want to see it address diversity issues properly. For eight years as a director and three years as chairman I have worked to ensure that the PSF is seen to take these issues seriously. I am mortified that I ran the risk of bringing either into disrepute. I hope that by making this apology I continue to lead by example.

* I might, say, discuss the appropriateness of using the word "fucktard" in public discourse on such serious matters .


Carl Trachte said...

Not to the diminish the drama and misery of the parties involved, but I see this as pretty typical growing pains in a community. Tackling diversity issues head on is a major undertaking. There will be pushback and whatever fair or unfair arguments that are available will be brought forward.

This is probably a reflection on how I approach problems, but it is probably best to just keep pressing forward on the diversity thing. If a hypocrite or someone who shows favoritism is the worst thing you've been called, you're actually doing quite well.

As for the learning experience, it's just that, a learning experience. Yeah, it's too bad, but it's not the end of the world. Actually I'm glad you posted this because it gives me some awareness of how I should act at the conference. Thanks. Also, it, I hope, lets people know that we do recognize this as unacceptable and we're going to stop doing it. Even though it's tough to hear, the woman's testimony of being creeped out is also helpful. Being aware of what is creepy and what isn't is a good starting point. I hope I don't get slammed for saying this, but I don't think it's totally a matter of "you know what's right or wrong, just do the right thing." I don't want to say too much self-incriminating stuff, but if Steve is *that* guy, I've probably been *that other* guy on occasion.

When people twist the story and embellish it for their own means, it reflects more poorly on them than it does on you. Character assassination used to frame someone as a hypocrite is kind of ironic, really.

My 2 cents. CBT

Kirby Urner said...

Per the evolving code of conduct for Pycons, even some of the words in this blog post would be inappropriate on slides.

Given the Python community is encouraged to cite Monty Python and to weave in that groups comedy, there's an inherent tension between General Audience rated content, and
a fully Pythonic curriculum. Monty Python is more TV-14 than G.

"One eyed [trouser] snake" is from the lyrics of a Monty Python song, so Steve was actually being quite appropriate for a Pythonista, alluding to Python's namesake's humor in his own.

Having a Code of Conduct and eschewing TV-14 and above rated material (NC-17, R, MA etc.) are two separate concepts.

One can have a conference wherein profanity, off color jokes, sexual content, is not prohibited, and yet there's a strict code of conduct nevertheless.

The fact that Pycons and PSF are insisting on Codes of Conduct does not really settle all these issues. Pycons themselves seem heading into safe G-rated territory, but that just leaves more room for the competition to specialize in complementary ways (with or without codes of conduct).

Again, having a Code of Conduct is not synonymous with insisting that all presented content be "General Audience" rated.

That may be true in the case of the Pycons, but it remains to be seen if the PSF is open to helping with conferences that are open to "adult content" yet still have an explicit code that sets limits on staff and participant behaviors. And even if the PSF is not open to help with such conferences, that won't keep them from happening, praise Allah.

hackygolucky said...

Being new to the Python community and just having had the pleasure of meeting you in person for the first time last week at the Winter Coder's Social, I'd like to say that this is very much appreciated. PSF has set quite the precedent as willing to discuss/address these issues, and keeping them top-of-mind(regardless of it being painful) will continue to evolve the language and community. Why? Because it keeps the good people around. And this example will keep more coming.

I have said this recently, and I'll say it again--I think I'm being hornswoggled. Did I drink the kool-aid? I have been initiated into a community where every person I meet is just wonderful. They're friendly. They're helpful. They're wildly intelligent, and often opinionated. As long as we can keep this civil, we're allowed to disagree on things. However, having leaders who are willing to bear the brunt of ignorance calmly and apply these occurrences as teaching moments puts Python in a great place. Dare I say, maybe above the rest.

Michelle Rowley said...

Thank you for writing this.

As one of the women at PyCon last year, I remember this schtick. I should start by saying that I was in no way offended by it. I know you well enough to know that you have the best of intentions in all things, especially those related to the Python Software Foundation, evidenced by the fact that this is all in relation to you collecting donations for the Foundation.

I think it's well known in the Python world know that you would never do anything purposefully to harm the community. You've worked hard to support the efforts of the PSF to foster gender diversity at PyCon and in the Python community. I don't believe you'd ever intend to undermine your own hard work (work that is, by the way, much appreciated).

I believe this post proves that, the occasional suggestive joke aside, you are indeed a gentleman. Even though no formal complaints were made against you at PyCon or afterward, I appreciate your willingness to take responsibility when realizing that things you said could have made some people uncomfortable. It shows that you care about making the community comfortable for everyone.

Thank you for being an example of what makes the Python community awesome.

Unknown said...

I have stated that opinions about the Code of Conduct should be discussed in a public forum. I’ve had, at their request, ex parte emails with Jesse Noller and Steve Holden over the subsequent reaction to my post on Hacker News. The substance of the objections to my post and my responses have been addressed in these emails. In his last email, Steve suggested that if I wanted to discuss it in a public forum, which I have always advocated, I should try his blog So this is being posted there and at my blog

My full response is too long for the comments, so please take a look at

Steve said...

To simplify things dor readers I have responded on Bob's blog post. I will not repeat my comments here.

Bradley M. Kuhn said...

Years ago, I had a discussion with a colleague one about "have we crossed the line that certain jokes are just unacceptable, and should they be unacceptable?" and he made a really interesting point. I paraphrase it below:

People who rant about politically correctness being confining should watch some 1980s USAmerican TV and movies. There were stereotypes and jokes that were highly offensive, but at the time they were completely acceptable then, and wouldn't be now. We're better off as a culture for a certain amount of political correctness.

One example we discussed was the "Long Duk Dong" character in the 1984 film, Sixteen Candles. I thought of our conversation again a few weekends ago when that movie was on TV and I turned it on briefly: the portrayal is undoubtedly offensive and frankly just plain racist. Yet I remember distinctly (white) guys walking around my high school quoting lines from the portrayal fully oblivious to how uncomfortable it made the Asian-American students.

We're frankly better off that jokes that were once acceptable almost anywhere are now relegated only to a specific context. Comedians still make jokes that cross the line, but it's not ok anymore to merely quote them aloud around conferences. We're probably better off for that.

Meanwhile, I think what we're seeing here is that burgeoning system of "complaint and apology" worked. Steve did something he regrets, and someone was able to tell him about it and in response he sincerely apologized. It's easy to screw up and offend someone with a lame attempt at humor that ended up being offensive. The important thing is genuine regret, remorse, and apology -- all of which I think Steve is expressing here.

Steve, thanks for doing so.

Anonymous said...

Steve, you are one of the the most fair, honest and self-aware people I know.

You have always been the first to defend diversity where and when it's being challenged throughout Python communities around the world. Like may women who take a very public and vocal stand on these issues, you have become a target. Like so many women online, things you say will be scruitinized, and you're suddenly and ridiculously villified.

No one can convince me that you ever had or will have malicious intent. No one will ever convice me that you do not have the best interests of this community at the forefront of your mind. This is how we bacame friends, and you are one of the many reasons why I am forever grateful for the existence of this community. We're here for you, as you were here for us.

We remember when we called on you for help, in times of severe cases of sexism and discrimination, and you publicly defended and stood by us. Feel free to call on us when you need our support.


Justin said...

I appreciate the apology, but I definitely would not want to have anything to do with any gathering of tech people these days. The knives are out.

As Steve himself offhandedly notes:

Note again: the already inaccurate quotation has been through the mangler once more.


Steve said...

You are entitled to your opinion, but I can't see this as a case of "least said, soonest mended." Since I am already deeply involved in the tech community I don't have your choice, so my choice is to give the subject air and see if we can't do something to rectify it.

Increasing all kinds of diversity will, in my opinion, make the tech community a rather healthier environment than it currently is.