By SomeDriftwood (Own work) [CC-BY-3.0 (], via Wikimedia Commons

What she really said: Fighting sexist jokes the geeky way!

This is a guest post from Jessamyn Smith, an open source developer in Portland who tweets at @jessamynsmith and blogs at Dreamwidth. Read on to find out her technological solution to annoying sexist jokes.

I work at a startup, and most of the time, I enjoy it. Compared to most tech companies, and certainly most startups, we have quite a few people who are relatively clueful. There are relatively few moments of “brogrammer” culture. There is, however, one thing that has been bugging me for months, ever since it was introduced.

I took it for granted that everyone was familiar with the “That’s what she said,” joke, but a recent conversation with a consultant friend made me realize some industries don’t feature it on a daily basis. For those who haven’t heard it a million times, the idea is that when somebody says something that could remotely be turned into a sexual joke, e.g. “I’m trying to solve this problem but it’s really hard!” you say “That’s what SHE said,” in a lascivious tone.

Now, I admit to having made this joke myself, at times. Once in a while, I even find it funny. What I don’t find funny is a bot we have in our general IRC channel at work, that has some basic AI devoted to determining when to interject TWSS into the conversation.

I asked a number of times to have that bot function turned off, but got the usual combination of being ignored, being told it’s funny, and being told I should lighten up. I tried explaining once why it was objectionable, and managed to get the guys saying variations, e.g. “That’s what your DAD said,” for an evening, but that was about it.

Last Friday, the bot went a bit crazy and started throwing TWSS into the conversation with no apparent rhyme or reason. Finally, I had had enough. And then it came to me: I would write my OWN bot, that responded to TWSS with a quotation from a notable woman. If they are so keen on what she said, why don’t we get educated about what she really had to say. And so the “whatshereallysaid” bot was born. It might annoy the guys into shutting off the TWSS bot, or we might all learn about notable women. It’s a win either way, in my books!

I’d never written a bot, but how hard could it be? Python is my primary programming language these days, so I started searching for Python IRC bots. I tried a few different libraries before setting on twisted. I found a very nice example of a logging bot using twisted , and went from there.

Step 1: I copied the LogBot code into local files, and tried running it. Since the IRC channels I am normally in use SSL, I had to set up my own channel on a public IRC server for testing. It took a while to get the settings right, but finally I succeeded!

Step 2: I created a quotes file and put in a couple of my favorite quotes to test with. I created class to randomly select a quote from the file. I modified the log bot so that if you said its name, it would get a quote and post it to the channel.

Step 3: My ultimate goal was to put the bot in the work channel, so I needed it to support SSL. I found a stackoverflow thread about using a different connect function, one for SSL. Again, it took me some time to get the settings right, but eventually I got the bot to connect to the work IRC server.

Step 4: Now I needed more quotes! I found an excellent website of quotes by women and wrote a small script to scrape the quotes. I used the excellent python requests library. The script got the content of the main links page, and iterated over the links, using a regular expression to get the name and then following the link to the quotes page. Then it pulled the quotes out of the page content and stored them in a text file, one per line, with the woman’s name attached.

Step 5: I set up my own private channel and had my bot connect. I tested it to verify it was correctly noticing and responding to trigger phrases. Once I was confident of that, I tried in the general chat channel. Success!

Step 6: I cleaned up the code, removing everything unrelated to posting quotes, and adding a settings file. I made the trigger phrases configurable. I also added a virtualenv. I felt the project was now in good enough shape to post publicly, so I shared it on github.

Step 7: At this point, I was still running the bot on my own computer, which was clearly non-ideal. I wanted it to be in the channel all the time, not just when I was logged in! I found a python daemon implementation and made my bot run through that. Perfect! Now I could run it from one of the development servers at work.

Step 8: Unit tests, of course! No project is complete without them. I only have tests on the quote selector so far, but I am going to set up some mock tests on the bot logic.

Originally, I had called the project “whatshereallysaid”, but as I was working, I realized this could be much more broadly applied. Anyone could clone my github project and configure a bot to respond to whatever annoying comments they had to put up with. Inspired by “take back the night” and “hollaback”, I decided to rename the project “talkbackbot”.

I finished all this rather late on Friday night, so there was nobody around. I waited with anticipation to see what the response would be. To my surprise, many coworkers complimented me on creating the bot, including some I would never have guessed would appreciate it. Some people even retweeted my announcement that the bot was available on github.

It has been fascinating to watch the ongoing reactions. There have been complaints that we have too many bots in the channel now. There have been complaints about it spamming the channel. There were several “Make them shut up!” responses. These are not reactions I have seen the other bots elicit, certainly not with such intensity. One person even complained about the name being too long, though to his credit he realized right after he said that that several other people in the channel also have very long handles.

To me, all of this seems like typical geek behaviour: something is making them uncomfortable, and so they attack it on “rational” grounds. Most likely, they aren’t even aware of the gut reaction fueling their logic. Interestingly, the intensity of emotion seemed to carry over into subsequent discussions, including one about women in the Python community. For the most part, I have not responded to the comments. I did shorten the bot’s name to “twsrs”, and I pointed out that it’s trivially easy to have the bot not say anything: don’t say TWSS.

In any case, I feel that I have succeeded in constructively disrupting an aspect of my work culture that made me uncomfortable. This is the first personal project I’ve ever thought of, coded, and made public, and I am pretty excited about it! It makes me so happy every time the other bot says “that’s what she said,” and my bot responds with something like:

Our struggle today is not to have a female Einstein get appointed as an assistant professor. It is for a woman schlemiel to get as quickly promoted as a male schlemiel. ~ Bella Abzug

One of the most hilarious responses was a guy saying he was going to say TWSS a lot more, so he could get more quotes! I decided to add another trigger phrase just for him, since the last thing I want to do is encourage *more* TWSS!

67 thoughts on “What she really said: Fighting sexist jokes the geeky way!

  1. T

    This is absolutely amazing! I admire your:

    1) initiative, to be bothered by something and then take the time and effort to do something about it;
    2) creativity, to come up with such a cool and elegant solution to the problem;
    3) empathy, in fostering discussion and discourse over an issue rather than just condemnation; and
    4) skillz! Reading your explanation of how you went about creating this thing is so amazing to me. I’m in awe.

  2. Wraithan

    I love the idea of this bot. I look forward to pulling out the quotes and the random line grabber and tossing it into my bot ZenIRCBot as a service people can run. Thanks for open sourcing this!

  3. Violet

    Great post. Brilliant bot :D

    Frustrated by TWSS long ago I started saying, “That’s what he said.”

    Sometimes I say it in response to someone saying TWSS, but I’ll often say it just before anyone has a chance to say TWSS first. The way some men look at me when I say it is… priceless.

  4. Dan

    Love this. By the way, there’s a British idiomatic equivalent: “as the archbishop said to the actress”. It works exactly the same:

    A: “I’m trying to solve this problem but it’s really hard!”
    B: “As the archbishop said to the actress.”

    Although both forms imply a sexual situation between a woman and a man, it doesn’t really matter which gender does the saying. In the end, the joke isn’t inherently sexist, it’s just a bit childish and annoying.

  5. Mym

    I love this so much.

    One of my friends groups instead uses “That’s what zie said!” I’ve been trying to import this to the others, both as a better version and to raise awareness of the neutral pronoun.

  6. Katherine

    Thank you thank you THANK YOU. Occasionally I also find it funny, but more often than not if people are responding to what I say with ‘that’s what she said’ then it makes me feel like I can’t say anything without having to vet, scrutinise, and otherwise censor my own speech to avoid getting twss’d. I won’t be able to use the bot, as my issues are primarily people saying it on voice chat (Ventrilo) or in person, but I WILL be able to quote things at people myself, if I keep a few good quotes on me and some quote websites bookmarked!

    I had no idea how to counter this when I encountered it other than to remove myself from conversations. You’ve given me a snappy comeback for something that I thought impossible.

  7. Jessamyn

    I had no idea that somewhere else in the world there was another feminist geek named Jessamyn. Your bot was a work of genius!

      1. Jessamyn Smith

        Hi Piglet,

        Yes, I (the bot creator) am the Jessamyn you know from WisCon!

  8. C

    Cool project!

    I’m an academic librarian, and, FWIW, in my workplace TWSS would most likely get you stared down. Using it constantly would get you referred to HR. You might hear it once in a while during a lunch conversation, but usually with some indication by the person saying it that they know they’re being a bit outre.

  9. ollie

    This is hilarious and brilliant. It seems like you are hilarious and brilliant! It made me happy to read about this :-)

  10. Nicole

    This is awesome. I love that you
    1. developed a positive way to fight the purely irritating TWSS jokes rather than stooping to the same level.
    2. You used some best programming practice to implement this.

    A double hit to to the brogrammers.

  11. Rock

    This is really cool on so many levels. If only I was less of a schlemiel, perhaps I could do something as awesome :)

  12. Peta

    Genius! I have noticed that the best way to combat thoughtless sexism is to turn the tables and make them taste a bit of their own medicine, but I’ve never managed it with such style. Thank you for creating and sharing.

  13. maxomai

    “What I don’t find funny is a bot we have in our general IRC channel at work, that has some basic AI devoted to determining when to interject TWSS into the conversation.”

    Seriously, that’s just unprofessional.

    Good on Ms. Smith for turning this around.

  14. Jose

    Great idea and good work.

    Though I can sympathize with too many bots in a work channel. At first we had one that responded to stuff with silly chatter about monkeys and ninjas. Then someone added another one that… hmmm I can’t remember. Either way they started feeding off each other and the repetition of quotes was so ugh. We ended up banning them all. Except for the URL shortener one which was relatively quiet.

  15. kevix

    this is awesome of multiple levels. you addressed a problem in a creative way, using your tools empowered by free software, making a repo for all to share and hack to their purpose. Then you get your work culture to start to think about what they say and start a conversation in a non-confrontational way with humor and injections of knowledge to further educate them about the existence of smart women who say cool things. And it will hopefully seep into their consciousness and thus improve all involved.

  16. Doug

    What a great solution… it is thoughtful, addresses a problem, and does so with a bit of humor. If this can’t affect change, nothing can. And great story to boot! Recommended reading for all… thanks for sharing this. (Wouldn’t a collection of these stories be quite useful as a practical guide? Oh, and it could be a great graphic novel, too :)

  17. jon

    Brilliant! And interesting reactions to the bot, too. Thanks for taking the time to write it up so clearly and entertainingly!

  18. matew

    Congrats – totes like your idea … you know how to take them guys. Keep up the good work!

  19. Justin

    Nice work! Love how you fought fire with fire, and how you linked it to the very system with which you had the issue. If they want yours to stop, all they have to do is stop theirs. Brilliant!

  20. Amy

    I love this! I am a fan of quotes in general; but I love that this is in response to TWSS!

  21. Annabelle Wright

    You ARE wonderful and brave and brilliant, and I am so PROUD that you are my much-loved niece!

  22. Hamilton-Lovecraft

    Once the “TWSS” habit is set, it’s surprisingly hard to derail. I switched to saying “in Nathon Fillion’s mouth!” for a couple of days, and finally settled on “giggity” (Family Guy reference), which I’m torn on – alone, it’s gender-neutral, but its source material is certainly in questionable taste.

  23. Courtney Hall

    Fantastic! I would love it if you would post some screen shots of your bot in action.

  24. Brian

    I wrote a bot for use on our Jabber channel at work in much the same way you did, only mine was based on pyjabberbot. Since we’ve got lots of MySQL instances running around, I put all the data for things like that into MySQL (and the bot loads it at startup). Have you considered such an approach?

    [WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

  25. Rob Masters

    Pure genius.

    I am also amused by the rather unexpected (and deeply geeky) reaction of wanting to quote-collect.

    Out of curiosity (I am not a part of the Python community – I’m more of a Perl sort), what was the alternate trigger you came up with? I assume it is a fairly unusual phrase, to avoid accidental triggering.

  26. Abdabs

    Full of win!

    Working in a male-dominated industry (engineering, manufacturing), I got tired of being called ‘girl’. The worst offenders stopped once I started consistently referring to them as ‘boy’. I just wish I could do the same to sports commentators.

  27. PhDoula

    Excellent work! The one thing missing is the “Oh-Snap!” bot that replies immediately after the TWSRS bot.

  28. slfisher

    Not only is it a great idea, what a great programming project that you’ll be able to show off later.

  29. Mar Velouse

    Wow, how fantastic. Well done for such a substantial response.

    In the UK, twss is not used as much. They use ‘said the actress to the bishop’.

  30. Ben McKenzie

    Never have I wished so fervently that I still used IRC – or that I had a permanent channel all of my own to run a bot on. Brilliant idea, great execution. This is the geek way!

Comments are closed.