Author Archives: brainwane

About brainwane

Sumana Harihareswara is a geeky woman living in New York City and teaching newer coders, reading science fiction, writing technical documentation, and programming (most recently at the Recurse Center). She has managed programmers at an open source consulting firm, led the open source community behind Wikipedia, and co-edited a speculative fiction anthology. She dents and tweets as @brainwane.

What if free and open source software were more like fandom?

This is the second of a two-part post about feminism and the philosophies and vocabularies of “open stuff” (fandom, open source, etc.). Part I is at Crooked Timber, here, and I suggest you read that first.

Recently I was thinking about abstractions we open source software folks might borrow from fandom, particularly the online world of fan fiction and fanvids. I mean, I am already a rather fannish sort of open sourcer — witness when I started a love meme, a.k.a. an appreciation thread, on the MediaWiki developers’ mailing list. But I hadn’t, until recently, taken a systematic look at what models we might be able to translate into the FLOSS world. And sometimes we can more clearly see our own skeletons, and our muscles and weaknesses, by comparison.

Affirmational and transformational

While arguing in December that the adjectives “fan” and “political” don’t contradict each other, I said:

I think calling them fanwork/fanvids is a reasonable way to honor fandom’s both transformative and affirmational heritage

I got that phrasing (“affirmational/transformational”) from RaceFail, which is a word for many interconnected conversations about racism, cultural appropriation, discourse, and fandom that happened in early 2009. (In “Feminist Point of View: A Geek Feminism Retrospective”, Skud discussed how RaceFail influenced the DNA of Geek Feminism (see slide 15).) RaceFail included several discussions that X-rayed fandom and developed new models for understanding it. (And I do mean “discussions” — in many of the Dreamwidth links I’m about to mention, the bulk of thought happens in the comments.)

obsession_inc, in a RaceFail discussion, articulated the difference between “affirmational” and “transformational” fandom. Do you bask in canon, relaxing in the security of a hierarchy, or do you use it, without a clear answer about Who’s In Charge?

When we use these terms we’re talking about different modes: different approaches to source texts, to communities, to the Web, to the mass media industries, and to each other. It’s not just about whether you’re into pages of words or audio/video, and it’s not necessarily generational either:

So when I see the assertion that as a group, print-oriented old time fans don’t know how to deal with extensive cross-linked multi-threaded fast-paced discussion, all I can do is cough and mutter “bullshit”.

We have a long-standing heritage of transformational fandom — sometimes it surprises fans to know just how long we’ve been making fanvids, for instance. (What other heritages do I have that I don’t know enough about?)

And I’m mulling over what bits of FLOSS culture feel affirmational to me (e.g., deference to celebrities like Linus Torvalds) or transformational (e.g., the Open Source Bridge session selection process, where everyone can see each other’s proposals and favstar what they like). I’d love to hear more thoughts in the comments.

Expectations around socializing and bug reports

I reread the post and the hundreds of comments at oliviacirce’s “Admitting Impediments: Post-WisCon Posts, Part I, or, That Post I Never Made About RaceFail ’09”, where people talked about questions of power and discourse and expectations. For instance, one assessment of a particular sector of fandom: “non-critical, isolated, and valuing individual competition over hypertext fluency and social interaction.” This struck me as a truth about a divide within open source communities, and between different open source projects.

Jumping off of that came dysprositos’s question, “what expectations do we … have of each other that are not related to fandom but that are not expectations we would have for humanity at large?” (“Inessential weirdness” might be a useful bit of vocabulary here.) In this conversation, vehemently distinguishes between fans who possess “the willingness to be much more openly confrontational of a fannish object’s social defects” vs. those who tend to be “resigned or ironic in their observations of same. I don’t think that’s a difference in analysis, however, but a difference in audiencing, tactics, and intent among the analyzers.” When I saw this I thought of the longtime whisper network among women in open source, women warning each other of sexual abusers, and of the newer willingness to publicly name names. And I thought of how we learn, through explicit teaching and through the models we see in our environment, how to write, read, and respond to bug reports. Are you writing to help someone else understand what needs fixing so they can fix it, or are you primarily concerned with warning other users so they don’t get hurt? Do you care about the author’s feelings when you write a report that she’ll probably read?

Optimizing versus plurality

In fanfic and fanvids, we want more. There is no one true best fic or vid and we celebrate a diverse subjectivity and an ever-growing body of art for everyone to enjoy. We keep making and sharing stuff, delighting in making intricate gifts for each other. In the tech world I have praised !!Con for a similar ethos:

In the best fannish traditions, we see the Other as someone whose fandom we don’t know yet but may soon join. We would rather encourage vulnerability, enthusiasm and play than disrespect anyone; we take very seriously the sin of harshing someone else’s squee.

Sometimes we make new vocabulary to solve problems (“Dead Dove: Do Not Eat”) but sometimes we say it’s okay if the answer to a problem is to have quite a lot of person-to-person conversations. It’s okay if we solve things without focusing first on optimizing, on scaling. And I think the FLOSS world could learn from that. As I said in “Good And Bad Signs For Community Change, And Some Leadership Styles”, in the face of a problem, some people reflexively reach more for “make a process that scales” and some for “have a conversation with ____”. We need both, of course – scale and empathy.

Many of us are in open stuff (fanfic, FLOSS, and all the other nooks and crannies) because we like to make each other happy. And not just in an abstract altrustic way, but because sometimes we get to see someone accomplish something they couldn’t have before, or we get comments full of happy squee when we make a vid that makes someone feel understood. It feels really good when someone notices that I’ve entered a room, remembers that they value me and what I’ve contributed, and greets me with genuine enthusiasm. We could do a lot better in FLOSS if we recognized the value of social grooming and praise — in our practices and in time-consuming conversations, not just in new technical features like a friction-free Thanks button. A Yuletide Treasure gift exchange for code review, testing, and other contributions to underappreciated software projects would succeed best if it went beyond the mere “here’s a site” level, and grew a joyous community of practice around the festival.

What else?

I’m only familiar with my corners of fandom and FLOSS, and I would love to hear your thoughts on what models, values, practices, and intellectual frameworks we in open source ought to borrow from fandom. I’m particularly interested in places where pragmatism trumps ideology, in bits of etiquette, and in negotiating the balance between desires for privacy and for publicity.

Quick Hit: The Word “Girl” in “Supergirl”

CBS has just released a “first look” teaser for the new Supergirl TV show, coming this fall. I’ve always frowned at the name “Supergirl” for an adult woman, finding it infantilizing. The teaser tries to address this:

News announcer on television: “Media Magnate Cat Grant, of National City’s new female hero: Supergirl.” (news channel displays “#Supergirl”)

Kara Danvers: “We can’t name her that.”

Cat Grant: “We … didn’t.”

Danvers: “Shouldn’t she be called Super…. woman?”

Grant: “What do you think is so bad about ‘girl’? I’m a girl. And your boss, and powerful, and rich, and hot, and smart. So if you perceive ‘Supergirl’ as anything less than excellent, isn’t the real problem you?”

Calista Flockhart plays an authoritative Cat Grant, a casting choice which itself implies (to me) a defense of the type of femininity Flockhart performed as Ally McBeal in her best-known role to date.

I don’t find Grant’s argument convincing, since my particular beef with the “girl” suffix is around connotations of immaturity, and particularly because we do not tend to call men of similar ages “boys”. That’s unequal. But I appreciate that at least this teaser attempts a defense. And overall I loved the teaser, and it made me cry. Stories of women discovering and claiming our power, in ourselves and to help others, will always get me.

Thoughts?

cover of TRADE ME by Courtney Milan

Book club: “Trade Me” by Courtney Milan

Hello! I’m helping relaunch the Geek Feminism Book Club, with a bit of a tweak in the interests of getting us going again swiftly (details at end). The book is Trade Me, a new contemporary romance novel by Courtney Milan, and we’ll talk about it in a comment thread here on May 28th.

In January, I snarfled up Trade Me. It stars a Chinese-American woman studying computer science at UC Berkeley. It’s about class and classism, deconstructing the Prince Charming/billionaire trope in romantic fiction, a product launch, Bay Area tech, ally fails, how to deal with cops, authenticity and adaptation, safety and freedom, trust, parents, and work. And one of the main secondary characters is trans, and all the physicality in the relationship is super consensual, and there is a kind-of reference to Cake Wrecks, and (maybe only I see it) to Randall Munroe’s “What If?” blog. I link it thematically to Jo Walton’s The Just City, Ellen Ullman’s The Bug, and the good parts of Amy Tan’s The Joy Luck Club. It’s pretty great, and you can read the first chapter for free at Milan’s site. (ROT13’d content warnings that are spoilers: qvfbeqrerq rngvat naq gur arne-qrngu bs n cnerag.)

Overall, Milan’s work is funny and loving and moving and smart. I like how she sets up and calls back to other books within series, I love that The Heiress Effect included an Indian guy, and I’m happy that she depicts queer characters and characters with disabilities. As a woman of color (“half-Chinese” in her words) she’s also especially aware of the importance of writing fictional representations of women of color in STEM, and of fixing broken standards that lead to unequal representation.

And she’s not just a geek, but a geek of my persuasion — specifically, an open source software maker. She wrote and wants people to reuse a chunk of GPL’d software to autogenerate links to a particular book at multiple online bookstores. Also she used to use Gentoo Linux. Of course she gives her readers permission to strip DRM from their copies of her books. Basically I would not be surprised if there is super flirty pair programming or a double entendre in a bash script in a future Milan book.

So this is the book for the next book club; usually we vote on what book to discuss next, but in the interests of getting momentum going again, I figured I’d choose this one by fiat and we’ll vote on the next one. Trade Me costs about USD$5 via any of several ebook retailers, and may be available via your local library‘s ebook lending program as well. Read it sometime in the next month and then come back here and we’ll talk about it!

Cookie of the week*: men defending feminist space at PyCon

Cookie of the Week* is an occasional series highlighting action in the geek community to fight sexism, in order to show that fighting sexism is possible and happening.

This week’s winners, several men attending this year’s North American PyCon, we know of thanks to a guest post from Lisa Hewus Fresh. Lisa is a Python programmer living the good life in beautiful Portland, Oregon. You can follow her on Twitter @bugZPDX.

feminist hacker lounge at PyCon 2014

Liz Henry’s photo of several visitors to the feminist space at PyCon 2014, licensed CC BY-ND

For context: throughout the conference, open spaces were available for hacking and discussion. Geek feminists of all genders hung out in one of them, a feminist hacker space — a “a great place to go relax, decompress, and hang out with friends” and to “always find other women to hang with”. This year’s North American PyCon also featured 1/3 talks by women, a charity auction to benefit PyLadies, a talk by Naomi Ceder discussing her experiences as she transitioned from male to female while staying involved in the Python community, and a keynote by Python founder Guido van Rossum in which he chose to balance the playing field by only taking questions from women. In general, I believe women and feminism were more consistently visible at PyCon 2014 than at any previous North American PyCon.

Lisa’s story (Warning: contains one quoted ableist slur):

PyCon 2014 in Montréal was a first for me. As a person new to programming, Python, and even Portland, Oregon, I didn’t really know anyone in the community — famous or not. The point is that I didn’t personally know anyone involved in the discussion I am about to recount.

Six or seven of us PyCon attendees were sitting in the lobby of the Hyatt, late one night, discussing a multitude of subjects, such as which text editor is best, how best to name a Git repo, what talks we attended, and so on. I just happened to be the only female in the group and was really enjoying the friendly banter. Someone accurately described it as like being in IRC, but in person.

At some point, a couple of additional men wandered in and came over to our group. One of the men was really angry, and was saying how horrible PyCon was now and how much better it was before. He said that next year he was going to have a “Brospace” right next to the feminist space because “It’s just not right. Women have ruined PyCon!” He then looked at me and said, “No offense.” I’ve been in plenty of misogynistic situations, and as the only female in a group of unknown men I chose to keep my mouth shut and avoid danger.

Everyone else just sat there as well and let him talk a bit more. He went on about how Guido van Rossum, the inventor of Python, “doesn’t give a fuck about anything! Well, he cares about PSF [the Python Software Foundation] but nothing else!” and how unfair he thought these women are making things for men. One of the men in our group said something like, “Well, when you have been excluded from something for years, then you can complain, but you don’t know what that feels like because this environment has always been yours.” The guy responded, “Yeah OK but this is TOO much! Now they just want to take over the whole thing and push us men out!”

He went on to rant about someone who was banned from PyCon for two years. I am not clear on who this is or why they were banned, but the same member of our group firmly said, “Rules are rules. We all know what they are ahead of time and he violated the rules.” The angry man replied, “But he’s done SO much for this community! Yeah, what he did was stupid and wrong, but TWO years?!” The man in our group said, “So? The rules apply to everyone and it’s strictly against the rules so it doesn’t matter if he is a great guy and did a lot for Python and open source.­ That doesn’t give him permission to break the rules.”

The angry guy, who was getting angrier, started talking about a tweet that someone, who was in or near the feminist space, allegedly sent. He claimed that the content of the tweet berated a male who mistakenly entered the feminist space where he didn’t belong. How could this person be so mean to this poor man and exclude him? At this point, another man who had been lounging back on the couch, quietly typing on his laptop yet listening to every word, very calmly said to the angry guy, “Yeah, I guess that wasn’t very nice. But one instance doesn’t really concern me. Imagine if it were hundreds of instances of this type of behavior. This would be a problem and I’d be really concerned.”

I could see the pieces fall into place for the angry man as he realized that he was upset about the very thing that marginalized groups have been upset about for years.

Everyone was silent and then not­so­angry­anymore­man said, “I guess you are right. I’ve been thinking about this the wrong way. I’m going to go to bed before I say anything else that’s stupid.” And he left. Slayed with logic!

I was so incredibly proud of this group of men I didn’t know. My mind was completely blown that the conversation went the way it did. Thank you Honza Kral and Asheesh Laroia for being awesome. I didn’t know you then but I’m sure glad I know you now.

Thank you for the story, Lisa! I’d like to highlight a few things that I especially like about this story:

  • Men speaking up and using their privilege to argue with sexist speech, helping out when a woman chose to protect her own safety by remaining silent
  • The allies stood up for the conference’s code of conduct, late at night while in a hotel lobby technically outside the conference venue
  • So much better than that PyCon thing last year
  • They changed that guy’s mind! It can happen!

So, here’s that cookie:

Does anyone else have any cookies to spare this week?

* Disclaimer: cookies may not be baked weekly! This offer does not commit Geek Feminism, its bloggers, affiliates, sponsors, commenters or fans to a posting schedule.

NAND and NOR gate sketch, coincidentally in the shape of a heart

Hacker School Gets an A on the Bechdel Test

NAND and NOR gate sketch, coincidentally in the shape of a heart

NAND and NOR gate sketch, coincidentally in the shape of a heart – by me this week

cross-posted from Cogito, Ergo Sumana

When part of the joy of a place is that gender doesn’t matter, it’s hard to write about that joy, because calling attention to gender is the opposite of that. I want to illustrate this facet of my Hacker School experience: mostly, Hacker Schoolers of all genders talk about mostly the same things. And we talk about them in all gender combinations — including, just by chance, among women.

The “Bechdel Test” asks whether a work of fiction includes at least two women with names who talk to each other about something other than a man. Thus in my blog I have an occasional series listing topics I’ve discussed with other women. My life passes the Bechdel Test! ;-)

So here is an list of some things I’ve discussed with Hacker School women. (About half the facilitators, cofounders, participants, and residents are women.)

Some Things Hacker School Women Talk About

  • why LVars and set operations relate to current work in distributed systems
  • The Kids Are All Right
  • IRC etiquette, and when to use IRC instead of a mailing list, videocall or wiki
  • troubleshooting git-review
  • the Haiku operating system’s key features (many of them similar to BeOS)
  • refactoring a function a guy wrote so it doesn’t do everything in main() (technically breaks Bechdel?)
  • whether to work at a nonprofit or for-profit
  • where is that maple syrup smell coming from? (answer: someone was making oatmeal)
  • our GitHub report cards
  • how to use machine learning techniques to train a Markov chain to generate funnier sentences
  • how the hell Makefiles work
  • what the hell a cuticle is
  • binary search and Huffman coding
  • saving time with useful Python standard library modules (string, time, os, etc.) and packages, e.g., requests
  • Too Much Light Makes the Baby Go Blind
  • where pip gets its info (PyPI)
  • the Pythonic convention for reading from a file, with open('file','r') as f, and the fact that it’s a context manager
  • when and how to use list comprehensions and dictionary comprehensions, generators and decorators, ord and chr
  • why we use pass for stub functions or classes instead of return
  • birth control amortization
  • how you would override Python’s default behavior to raise an exception when slicing a list with a negative int
  • how to write a hill-climbing algorithm and why
  • G.K. Chesterton’s use of the mystery genre
  • what the #! (hashbang) line at the beginning of a script actually does
  • song currently stuck in one’s head (“Gettin’ Jiggy Wid’ It”) and confusing “Wild Wild West” with “Back To The Future III”
  • what it takes to work remotely
  • security issues inherent in creating a sandboxed version of an interactive Python interpreter
  • who put this post-it note on the fridge saying “No Java on Monday”? When? Did the author mean the beverage or the language? Was it descriptive or imperative? Why did they never take it down?
  • an awesome 1982 Bell Labs video about UNIX featuring Lorinda Cherry

I could make this list probably ten times longer. My point is, if you don’t care about gender, Hacker School is awesome. If you’re irritated by the tech industry’s usual gender crap, Hacker School is blissfully free of it and you can — if you want — turn into someone who doesn’t care about gender for three months.*

You can apply now for the next batch — apply by Saturday night, December 14th.

* an oversimplification! But you get what I mean.

someone using a backscratcher

From “sit still” to “scratch your own itch”

When I started off in open source, I believed that bit of “The Cathedral and the Bazaar” that said:

Every good work of software starts by scratching a developer’s personal itch.

Regardless of the truth of this assertion, somewhere along the way I got the impression that people usually get into open source via “scratching their own itch,” and I mixed up prescriptive and descriptive to boot. Personally, I started dabbling in open source testing hoping to learn a bit of Python, and then really got stuck in when I saw a clear unmet need for documentation even though I wasn’t personally going to use it. Sometimes I thought I was inferior — surely I ought to have been thinking up my own projects, improving my work environment, and writing things that would help me out, thus getting me into a virtuous circle of learning?

I’ve since learned more about how I learn (see previous posts on beating certain learning anxieties). And I’ve found it helpful to talk with other newbies and see the patterns.

Here’s one: the newbie who finds it frustrating that they “don’t have ideas.” This person, like me, has heard the message that a REAL programmer or a REAL open source contributor is supposed to be a self-starter who comes up with their own project ideas from the start and uses them to learn. Or the newbie knows they learn best by doing, but they feel a discouraging malaise whenever they attempt to think of an idea to pursue.

This affects people of all backgrounds, but I wonder — is it harder to reflexively “scratch your own itch” when you’ve been taught, as so many women have, to stop scratching and sit like a good girl? If you’re part of an oppressed group, and parents, schools, peers, mass media, and bosses have all consistently punished you when you speak up about a missing stair, then is it any surprise that you’d be slow to start picking up the saw and hammer?

metaphortunate articulated that youthful indoctrination:

I had finally learned that whenever I got angry and I tried to do something about my anger to the source of my anger, everything just got worse for me.

So in the long run one answer to this is that we have to work to make sure everyone has agency and feels it, their whole lives. But, given that some of us struggle with remembering our agency, and that it’s fine to have different learning styles, here are some ideas for priming the idea pump, or for alternate pathways into learning and getting into open stuff.

  1. Embrace boringness. Look at other fields, like sewing, where it is totally fine to start off by making a simple handbag off a common pattern. In open stuff this might be the “same old same old” LED clock or blog platform. If an idea appeals to you but there’s an inner censor saying “that’s too boring” or “what’s the use,” you can tell that inner voice that Sumana says “shut up.” For me, it’s Skud saying “shut up” to that inner censor.
  2. Embrace silliness. Perhaps the equivalent of embroidering a happy face onto an oven mitt. Again, if you think it would make you a scintilla happier, go ahead.  And again, I have a Skud in my head telling the naysayer to buzz off.
  3. Find someone else’s pain point. It is perfectly legit to work to improve shared tools. Look around at places online or in your local community where people are asking for help. Maybe you can find a ridiculously tedious data entry job that you can help with a corner of, or it would be nice if a light over here lit up when such-and-such happened. In a sense, this is what Outreach Program for Women, OpenHatch, and Developers For Good offer: the organizers have already curated the TODO lists so you can pick out the tasks that interest you. It is fine to simply piggyback on existing projects and drift around a bit learning lots of little things that way, and the more you learn and do, the more needs and opportunities you’ll discover.
  4. It’s fine to take a class. Different people at different times learn differently. If you think you’d benefit from structure, encouragement, sociability, and exercises, opportunities from edX to Hacker School to your local community college are worth checking out.
  5. Work with scraps. I get anxious over wasting food or cloth or paper, so when I cook or sew or write stand-up comedy or poetry, I feel more comfortable working with scraps, with leftovers. When I am scribbling ideas for stand-up bits, I prefer to use textfiles that already have miscellaneous jottings in them, or little half-full notebooks, or odd-shaped scratch paper. No doubt my preference for pre-ruined materials reflects my perfectionism and anxiety over worth. I can be creative more easily if the materials were just going to go to waste anyway. I think the trick to addressing this mindset, in the long run, includes habits of deemphasizing and subtlety, tricking oneself into not making a big production out of any given attempt. I’m not good at that. But in the short term: scraps. Find patterns in datasets you already have. Look through old academic papers to find citations to add to Wikipedia. If you have a web presence you barely use, repurpose it as a CSS playground. I’d love more ideas around this theme.
  6. The examined life. What do I actually want? Is there a thing that could make my life better? Honestly I find this question really hard to answer; it requires that I address the pain of unfulfilled desire instead of just accepting my world as it is. But if I have conquered some of the ways the kyriarchy has colonized my brain, then it’s possible to hear the “$foo would make my life better” signals and perhaps address them through technology.

What have you found useful in overcoming the myth of boundless ideation, or in learning to listen to your own itch?

Hiking boots on sand

Makeup, mobility and choice: the things you don’t have to do

Cross-posted from my personal blog, originally titled “The Kind of Feminist I Am”.

I don’t use makeup. I put lotion on my skin and balm on my lips if they feel uncomfortably dry, if you want to call that cosmetic. If someone wants to film me then they’ll have to find some powders or whatever that suit my skin tone, because I don’t have any. I don’t shave my legs. I don’t own “heels.” I think a few of my shoes may have, like, a quarter-inch rise in the heel compared to the toe. I usually keep my hair so short that combs barely affect anything; if bangs start existing, an old headband keeps them out of my eyes. A barber shears my head every few months.

Also: I’m still not on Facebook. That’s right, I’m an online community manager, have been for two years, and I can get along fine without Facebook. I don’t eat red meat, and rarely have sustainable fish or organic free-range poultry. “Vegetarian” is basically right. I don’t imbibe massmedia about the visual appearance of famous people. I didn’t watch most of the Matrix or Lord of the Rings movies, and I don’t read TechCrunch or Gawker or that ycombinator news site.

I post this as part of the project to normalize diversity. If you think “everyone” is on Facebook, well, no, because I’m not. If you think every woman shaves her legs, no, I don’t. I am a successful person who has given influential speeches and mentored others, and I don’t have to do any of these things, so you don’t either. It’s all of a piece.

Caitlin Moran recently wrote a very good feminist book, How To Be a Woman. She discusses some sexist expectations (that women should wear uncomfortable shoes and epilate ourselves all over and so on). It’s unpaid labor and it’s nonsense and I say to hell with it. Some sexist expectations still get in my way. For instance, men interrupt me more often than they interrupt other men. And if I run a meeting efficiently, I’m less likely (compared to a man) to get thought of as a “strong leader,” and more likely to get thought of as a “bitch.” It’s annoying enough to have to spend any thought on avoiding that crap, so I skip all the other, more optional crap as much as possible.

It saves big chunks of time and money to omit “oh but everyone does it” junk. It’s pretty easy for me to just go with my own inertia — I never started wearing makeup, wearing pointy heels, or using Facebook, or smoking pot. I tried out leg-shaving and longish hair and earring-wearing and tens-of-thousands-of-people conferences, and they just don’t deliver ROI for me, so I stopped.

I know not everyone can just say “screw it” and walk away from this crap with no consequences. Intersectionality exists. Thank all goodness that I can dismiss as much of the crap as I can.

Mobility’s one part of that privilege. I move around a lot and have had a bunch of jobs, and sometimes that’s annoying, but a cool thing about it is that I’m not as stuck with one small consistent group of authority figures who might be jerks about my choices or reinventions. I can be blithe about other people disapproving of my choices, because I have a great job, certifications of a good education, a sensible spouse, a lucrative career, reasonably good health, and various convenient privileges. It also helps to be a bit socially oblivious, and specifically to have a tough time making out soft voices in crowds; if anyone’s gossiping about me in whispers, I won’t hear it! It’s great! (For me.)

So this is one reason why I’m in favor of good government-sponsored education and healthcare that levels the playing field for everyone, and reproductive rights, and easy border-crossings, and public transit. I love mobility. I love the means by which people can get away from their old selves and the people who thought they knew them. I love the fact that I get to choose whether I care about my high school classmates. (Make your own Facebook-related joke here!)

Exit, voice, and loyalty. Forking. For adults, the most fundamental freedom is the freedom to leave, to vote with your feet.

But right near that is the freedom to walk around in public without having to slather paint or a smile on your face. If you want to, cool! Performing femininity, like playing the guitar, ought to be a choice.

Quick hit: Apply for paid internships in open source, running Jan-March 2013

GNOME Outreach Program for Women

Máirín Duffy’s GNOME Outreach Program for Women logo

You might have heard about GNOME’s Outreach Program for Women, which pays USD$5000 stipends for three-month internships for women to work on GNOME. There are opportunities for work in coding, marketing, design, documentation, testing, and more, and you don’t have to have any open source experience or programming experience to apply.

Well, in the upcoming round of internships, there are eight mentoring projects offering at least 17 internship placements in total, and I’m proud to say that one of them is Wikimedia, the project that supports Wikipedia. (I’m the Engineering Community Manager for Wikimedia and basically buttonholed GNOME’s Marina Zhurakhinskaya at a conference in October specifically to ask whether Wikimedia could participate in this program, and I am delighted that we are taking part.) Other projects participating include Deltacloud, Fedora, GNOME, JBoss, Mozilla, OpenStack and Tor.

Any woman interested in working on these projects is welcome to apply, provided she is available for a full-time internship during this time period (more details). This program is open to anyone who identifies herself as a woman.

Please take a look and start the application process as soon as you can, since the application process includes getting in touch with a mentor and completing a small task. And help us spread the word!

Quick Hit: a GF approach to events

I help plan technical events at the Wikimedia Foundation. I think we’ve improved in making them more welcoming and inclusive over the course of my time there. We just recently filled to capacity on registration for an upcoming event, and I thought I’d share a few things we’ve done:

  • A friendly space policy
  • Event info page shows photos of people of different genders, allows people to opt in to sharing their names/attendance
  • Registration form doesn’t ask for sex or gender; instead, it asks what kind of t-shirt we should provide (including a “None, thank you” option) and “If you need accommodation: would you prefer to share a room with a woman or with a man?” (options: “women’s rooms”, “men’s rooms”, “either will be fine”)
  • We’ll aim to document as much of the event as possible in realtime text
  • We’re ensuring that at least one of the social events is not booze-oriented
  • I’m working to ensure people can put whatever names they prefer on their badges, including handles/nicks for those who don’t want to share their wallet names
  • Free to attend, and we provide travel sponsorships to encourage participants from far away
  • Hostel very near the venue

I failed at:

  • childcare – just didn’t put in the time to ensure we could provide this
  • ensuring our venue is accessible to those with disabilities (I’m not sure, and didn’t emphasize this as a key criterion when my contact in Berlin was scouting venues)
  • clarifying many of the points above to prospective attendees
  • and probably more

What have you done to make your geek events more welcoming?

A breakout group at the Boston Python Workshop work at laptops around a table

– the anxiety of learning and how I am beating it

Beating learn-to-program anxiety with good gamification and courses

I have anxiety about learning technical skills. I wrote about this a little while back. But now I know more about how I learn, and, in bits and snatches, I am gaining proficiency and confidence. Here’s a summary of my journey over the last several months with learning more programming skills (in this case, mostly in Python), with links to some resources in case you’re like me.

I get anxious when learning skills that I think I should already know; I feel behind and guilty. Structure, little rewards, friendly sociability, and encouragement from other women help tremendously. Tedra Osell writes about this in the context of writer’s block, and FlyLady and Cheryl Mendelson’s Home Comforts speak to that problem in learning to keep a comfortable home; the people and resources I mention (CodeLesson, OpenHatch’s Boston Python Workshop for women and their friends, CodingBat, and the Python Challenge) provide many of the stimuli I need. Also, my anxiety spikes if I think I am supposed to compare my speed or quality of work with others (hence my post’s title), but cools down if I see evidence that someone else wants to patiently help me. These resources helped me learn without pushing my “argh everyone’s better than me” buttons.

So, first: CodeLesson. The vintage and handmade store Etsy ran a free four-week online course in HTML, CSS, JavaScript, and the Etsy API. Hundreds of people signed up; I got on the waitlist, and eventually did three of the weeks in September and October. (I then had a big crunch week at work and didn’t finish, but I intend to finish that last week’s work anyway, to learn animation and pagination in jQuery.) It was exactly what I wanted — well-written tutorials and exercises to get me over the initial hump. I now know a little CSS, JavaScript, and jQuery, which is infinity percent more than I knew before. I had lots of fist-pump “Yay, I made it work!” moments. And the instructor’s praise of my work helped; I’m a social animal, and recognition and praise from instructors helps reassure me that I’m on the right track.

Thanks to Etsy for the free class. And I liked the CodeLesson interface and infrastructure enough that I may pay for additional CodeLesson classes, or get my organization to follow Etsy’s lead and offer classes through them to increase our users’ skills.

A couple months later, I had a chance to attend OpenHatch’s intro-to-Python workshop specifically meant for women and their friends. I’d read about these before, on GeekFeminism and elsewhere, and it sounded like it would fit how I learn as well as help me plan to hold similar events in my community. So, on a Friday in December, I took the bus from New York City to Boston.

An instructor looks at a student's laptop at the Boston Python Workshop

An instructor looks at a student's laptop at the Boston Python Workshop

It’s a good thing that the Friday night prep part was three hours and that I already knew a bunch of stuff that other people were new to (familiarity with the command line & the Python prompt, etc.) since I was an hour late! It was good to fix the syntax-y bits in my mind. The CodingBat exercises were great practice and I got a big triumphant fist-raised feeling when all those unit tests passed.

In between sessions, I chatted with some of the people who run the program. It sounds like each individual run of it costs about $300 for lunch for everyone and that’s practically it, since they use volunteers and the venue time is donated (and then like $10 total for pens/sticky nametags/laser-printed “here’s the workshop” signs/etc.). That’s practically out-of-pocket for a tech community, and they get grants. So it’s totally replicable. I’ve been reminded that it’s important to treat these kinds of workshops more like a community introduction than as standalone events; local user groups and communities should be the teachers, and email blasts and encouragement should integrate participants into their local hobbyist groups.

Saturday morning’s lecture included some review of stuff I knew, but it went fast enough that I was still learning most of the time — like, how to ask for the nth character in a string, or how for-loops quite work, some subtleties of scope, etc.

Then the project bits — the teachers and their presentations weren’t quite as polished as Jessica McKellar, who had led the earlier parts of the workshop. But I still learned a lot and got to make cool things happen using, say, the Twitter API, and that was very neat. As designed, the workshop led me through small, basic exercises first (the equivalent of finger exercises in piano), then showed off visually satisfying things we could do with Python and its ecosystem.

Aside from tiny minor delays, the workshop basically ran like a Swiss watch the whole time. I was impressed. It takes a lot of preparation, skill, and practice to make an event like that go so smoothly and teach so many people; congrats to the workshop volunteers! And I’m glad I went, learned and remembered Python, and got more confidence to attempt projects.  On a community management level, I’m also massively grateful that I’ve seen firsthand an example of how we can construct and maintain these parts of the pipeline, to help more girls and women get into STEM.

The workshop so excited me that I then did all the Python exercises on CodingBat, and started Python Challenge (I’m at step 4 or 5 right now). They’re complementary. They both gamify learning, and you don’t have to look at how other people are doing, and they both have somewhat granular ways of kindly telling you when you’ve done something slightly wrong. With CodingBat it’s the unit tests, which go from red to green when you cover another edge case. In Python Challenge, for example, at one point I went to a URL where I had transformed the filename from the previous URL per a transformation hinted at in the challenge. The URL had ended in .html, and after the decryption, it ended in the extension (making this up to avoid spoilers) “.ywnb”. At that address was a text file that the server signalled you should download. I downloaded and opened it and it just said, “have you ever heard of .ywnb files?!” or something like that, implying basically that I shouldn’t have transformed the file extension, just the filename. So, it didn’t just fail, it gave me a nicely furnished dead end, signalling kindly but playfully that I had done something understandably wrong.

Screenshot of two progress graphs from CodingBat

Progress graphs from CodingBat, showing my attempts to solve two problems; the green portions are unit tests that passed, and the red and pink portions are unit tests failing. The exercise "String-2 end_other" took me a while, but I got it.

There’s probably some game design term for this kind of compassionate railroading, but it makes me think of the caring side of the caring-to-combative community spectrum. And in both cases I got that feeling of being nurtured by someone who cared, even if that someone else is Nick Parlante (CodingBat’s author), years ago and a continent away.

Also, CodingBat is pretty clear about how you solve any given problem (declaring that this set of problems is about lists and only 1 layer of for-loops, or what have you), whereas in the Python Challenge you have a puzzle that you know you can solve with Python but that you can hit a bunch of different ways. If you want an experience with arguably more realistic exercises, the author of CodingBat also made the Google intro to Python, which includes exercises along the lines of “munge the semistructured data in this file with these guidelines.” I intend on doing that this year.

Python Challenge logo

Python Challenge is mysterious, yet friendly.

It was good to have my spouse Leonard nearby to help me when I was working on the Python Challenge, to (for example) help see that I had called a variable inconsistently, to notice that I couldn’t import a file as a module because I’d named it “1” instead of something starting with a letter, to remind me how to learn of (“dir(filename)”) and then use (“filename.function”) the functions within it, to tell me about string.replace, and to tell me how to use the interactive prompt properly to investigate how you call a method on an object of whatever type. But I did nearly all the work myself. And as of today I feel a lot more comfortable using for-loops, knowing what data structures to use for a problem (I decided to use a dictionary datatype the other day! And it worked! So exciting!), getting stuff in and out of dictionaries, and generally thinking “I can learn this!” Data structures and algorithms had felt mystifying to me. Now data structures no longer do. I remember the moment in Python challenge when I thought, “I’ll use a dictionary!” and I was right! It’s great.

CodeLesson, CodingBat, the Python Challenge, Leonard available for occasional consultation, and the Boston workshop are the dance partners I needed.

I’ve just begun CodeAcademy and stalled (as with all the rest of my learning-to-code endeavors) due to lack of time, as my job is pretty absorbing right now. (Worth a skim: Scott Gray’s thoughts on CodeAcademy.) I also haven’t tried Philip Guo’s online Python tutor which may suit me better since I’m more interested in Python than JavaScript right now. But I thought it might help others to talk about my journey so far.