It is not my nature to intentionally provoke controversy, or even to act in roles that directly interface with the general public. I lack that feel for public opinion, and my word-smithery can be sometimes a little off target.
Those who know me well have told me that in person I can often be noticably careful to choose my words. This comes from something of a bad history regarding picking the right words in conversations.
To the extent I hold any positions within the Perl community, or engage in debates, or speak in public forums such as this journal, I try to contain myself to technical positions and technical topics.
However I make an exception for talks at conferences, as they give me a chance to both entertain and teach things I think more people should be aware of. And the talks make a great vehicle for meeting a lot of new people.
And so if this post has taken me quite some time to write, please be aware that it is because I hope to be accurate about my feelings.
At the Open Source Developers Conference 2007, during a Lightning Talks session on day two, I presented a talk called "How to name your CPAN module".
The concept for the talk came from another talk the previous day by Jose Castro about the CPAN's "Acme::" namespace, which acts as an area for quarantining humerous modules, technical proofs relating to obscure language debates, and other modules that should never ever be deployed on production systems.
One module discussed was Acme::Playmate which looks up the, how can I put it, "details" of a Playboy Playmate for a given year and month.
Bemused that Playboy would actually bother to provide this information as any sort of formal web service, I took a quick look at the source code while sitting there in the audience and found the module just web-scraped the playboy.com public site, quite badly in fact.
At dinner while explaining to some non-Perl people about CPAN's module naming issues, the idea was born that a lightning talk could be created that would demonstrate various module naming issues and methodologies. As the focal example, I could start with the (broken) Acme::Playmate and by repeatedly extending it create the most satirical and rediculously unlikely module possible.
And so I started that night on the code to support a 5 minute lightning talk that would extend Acme::Playmate and mix in a number of other modules, resulting in a work of high farce, Acme::Playmate::Object::Doublet::Outsource::AU.
This module would take a year and month, retrieve the Playmate data, and normalise their measurements into objects using the Data::Vitals module, which was commissioned by a modelling agency to implement functionality relating to the common problem of metric vs imperial measurements of both male and female models.
The new Acme:: module would then automatically generate a png file of the sewing pattern for an Elizabethan Doublet tailored to that specific Playmate, using the Costume::Doublet module.
And then it would further use the Email::Stuff module to email the pattern to somebody to have the doublet actually made.
Finally, it would show the standard CPAN localisation technique of subclassing by country code, in this case AU.
All in less than 50 lines of code.
While an outline was written up that night, most of the slides were created in the meal break before the talks, and while the other lightning talks were in progress (I asked to be moved to the end so I could actually finish it).
The speaker immediately before me had made the gaff of thinking his laptop did not work. He presented his his talk orally, while unbenownst to him the Linux boot sequence for his laptop rapidly scrolled on the screen behind him, completely (and humerously) distracting the entire audience from his actual talk.
Seeing the obvious potential for a joke pointing out the importance of not distracting people during your talks, I grabbed an image (waist up, partially clothed, breasts exposed) from the playboy.com page I'd been testing my code with and dropped it at the front of the talk. I was pretty certain that would distract 100% of the audience from my warning about not distracting the audience (obviously for different reasons for men and women, and different subgroups thereof).
I put the same image in later after the slide mentioning "Data::Vitals::Chest" as a "callback" joke about filthy minds (the following slide was "Ugh..."), and then got up to give the talk.
The spoken component of the talk was literally made up on the fly as I went through the slides.
The distraction joke got a lot of laughs, and from my perspective the talk seemed extremely well recieved, with applause at the end.
None of this excuses my actions, but I hope it will go some way to explaining the context in which they occured to those who were not present at the talk.
Although people I spoke to after the talk were positive about it, I was informed by the organising committee that a small number of men had complained to them about my talk immediately after the lightning talk session, and the committee officially warned me against using any similar material in any future talks.
Having reviewed the slides for the talk again after the conference, it is apparents to me that they take the talk well over the line of what is acceptable at a technical conference.
That mistake was compounded by a bad assumption on my part that all of the audience would know what the Acme:: modules were and thus see the satirical nature of the talk (negative comments seem to have been primarily from outside the Perl community) and then made worse again by some very bad choices of words I made while delivering the talk.
From subsequent informal surveys done by friends, I've have an estimate that around 25% of the audience were uncomfortable with or offended by the talk.
To those present in the audience who were merely offended by the talk, I can say only that I hope you can come to an understanding that the talk was intended as a work of satire, and does not reflect my personal beliefs. It was an attempt at humour (that did seem to work at the time) and it was certainly not my intent to create offense.
I will be correcting my mistake and NOT giving that talk again.
There are two groups for which this mere explanation and request for understanding goes not nearly far enough.
Foremost, to all the women who were present in the audience for the talk I would like to publicly and unreservedly apologise for the subject, content and delivery of the talk.
In particular, that I added the image DESPITE knowing it would be shocking to you was utterly stupid on my part. I completely misread how badly it would be taken.
I SHOULD have recognised immediately that the talk would have had a stronger impact, and created feelings of being singled out from your peers solely due to gender, or feelings of being unwelcome in the room. And in one case I'm aware of, of creating a fear about being in the room itself for a minute or so.
With two younger sisters of my own, I cannot express how guilty I feel that I might be responsible for creating anything like that "walking alone at night" feeling for you, especially in a conference environment where there are already so few women, and in which you should be welcomed with open arms.
Secondly, I would like to publically apologise to the organising committee, and to the sponsors.
You already have far too much to do organising a conference of this size and you have all contributed so much to make it happen and to make it a success.
I'm terribly sorry I dropped this situation in your lap when you REALLY didn't need it, or in the case of the sponsors for anything I may have done to bring you into disrepute.
I can assure you all I won't be delivering anything like that at any future conference. I've learned my lesson.