Tag Archives: programming

The linkspam-whore dichotomy (17th May, 2010)

If you have links of interest, please share them in comments here, or if you’re a delicious user, tag them “geekfeminism†to bring them to our attention. Please note that we tend to stick to publishing recent links (from the last month or so).

Thanks to everyone who suggested links in comments and on delicious.

One year ago today: what have your formative geek experiences in the past year been?

Girl With Computer (Ashley McClelland) has a post titled “One year ago today — Learning to Embrace the Tech Community”.

One year ago today, I also had a very pivotal experience. I attended my first technical conference— an unconference, a barcamp — at the Rochester Institute of Technology… up until that point, I had only ever seen HTML and CSS (sparingly.) I was familiar with HTML and in-line styles. And I knew how to use things like myspace and facebook. My background was exclusively education and English (literature and writing.) I was interested in programming, but I felt a severe barrier to entry: I thought it was too technical for me…

That day, despite my intimidation, I was inspired by the things I saw. I attended an excellent talk on Haskell during which the presenter admitted he had very little experience with the language… I saw another talk on the OLPC/XO by an awesome woman, Karlie Robinson, who detailed the effort and reached out to the tech community to engage their skills towards a cause for education. I could relate. I even brought myself to go up to her after the talk and give her my e-mail address, given my experience in education, thinking maybe I could help. For the first time, I thought, maybe there is something worthwhile that I can contribute to the tech community.

I started programming one year ago today, because I was inspired by the technical talks I saw that day, and because I realized I am not any different than any other extraordinary geek…

I gave a talk on learning programming today at BarcampRoc 2010… I no longer feel limited by what I don’t know. Because I know I can learn. I didn’t know this small, and seemingly obvious bit of knowledge, one year ago today.

Today, I know.

What formative geek experiences have you had during the past year? Post your stories in the comments.

FLOSS inclusivity: pragmatic, voluntary, empowering, joyous

Lucy Connor’s “Diversity at what cost?” and Benjamin Otte’s blog post on equality got me thinking about the backlash against diversity and outreach initiatives in open source. Specifically, I sometimes see arguments that inclusivity

  • is a slippery slope into coercion and quotas
  • should not be a FLOSS value, or
  • competes with the core mission of his/her software project.

In response to Otte’s thoughts on whether the principle “all men are created equal” stands in opposition to core GNOME and Fedora goals, I said in part:

The words “equality†and “inclusive†can be easy to misinterpret. Advocates often use them as a softer way of saying “don’t be sexist/racist/etc.†and “let’s give due consideration to people we’re inadvertently leaving out.†Perhaps [critics] are misreading this suggestion as greed for market share, or conflating cowardice with the intention and practice of thoughtful inclusivity.

Yes, it is an important principle that all people deserve to be treated equally *by the law*, and as an ideal to reach toward, it’s laudable. However, it’s a straw-man argument to suggest that advocates for equality and inclusion propose that all seven billion people’s opinions should have equal relevance in every endeavor and choice.

Every organization has a specific mission, such as “change the government’s policies to improve the environment†or “maintain an excellent Linux distribution with cutting-edge innovations.†This is its “value proposition,†in US English. It embodies some of its core values. The Fedora project is indeed facing a tension between its value proposition and one facet of inclusivity — suitability for novice users. But there are many other aspects to inclusivity and an interest in equality, such as accessibility, nonsexist language, university outreach, and documentation. Don’t throw the baby out with the bathwater.

You may also be interested in http://geekfeminism.org/2009/11/29/questioning-the-merit-of-meritocracy/ for thoughts on meritocracy in FLOSS.

… If you simply find any good product unstylish as soon as a certain proportion of the population starts to benefit from it, that strikes me as needlessly snobbish, and implies a misanthropy that will permanently be opposed to even the least controversial inclusivity initiatives.

We linkspammed Connor’s piece a few days ago, and commenter koipond noted:

I hear the sentiment, but it’s kind of missing the point. No one is saying “Diversity at all costs†where they want to force people in who don’t want to be there. It’s more a case of trying to break down the barriers that prevent people who might be interested but see a toxic morass and refuse to swim in the pool.

My comment was along similar lines:

When I read http://geekfeminism.org/ or the http://geekfeminism.wikia.com wiki, or listen to the women on the Systers mailing list, I don’t hear a general and undifferentiated “WE MUST GET MORE WOMEN INTO FLOSS†or tech agitprop agenda. I see lots of initiatives to help underrepresented groups — African-Americans, women, people from developing countries — get in on the joy and empowerment of hacking.

I think there is a separate argument to be made that everyone, of every gender and from every socioeconomic, ability and ethnic background, should be generally technically literate, which means being able to code a “hello world†in some decent language and feeling empowered to modify their computing environment a little. To extend the analogy, I know it ruined your [Connor’s] enjoyment of Model UN when the teachers forced everyone to participate, but you’re not against the goal of everyone learning a little about how international politics works.

And because these sexist behaviors and attitudes keeping women out of high-status and high-paying professions are just now starting to fade, it’s important to take an extra look at seemingly innocuous traditional attitudes to make sure they don’t conceal yet more barriers and discouragement. As Kirrily Robert pointed out in her OSCON keynote, the community as a whole grows organically and benefits greatly from (voluntary, of course) women’s participation:

http://infotrope.net/blog/2009/07/25/standing-out-in-the-crowd-my-oscon-keynote/

Like you, these advocates like helping people. Check out http://gnomejournal.org/article/88/the-un-scary-screwdriver for an example of the kind of noncoercive, entirely opt-in outreach that most advocates, well, advocate.

As I noted to Connor: Sure, coding, and open source work, are not really intrinsically appealing to lots of people. But because there are so very many external factors keeping interested girls and women away from tech careers and open source, I’m comfortable prioritizing breaking those down, so that maybe in fifty years people’s intrinsic interests will shine naturally through. And then we’ll talk and see what interesting patterns show up.

A linkspam in every home (23rd December, 2009)

If you have links of interest, please share them in comments here, or if you’re a delicious user, tag them “geekfeminism†to bring them to our attention. Please note that we tend to stick to publishing recent links (from the last month or so).

Thanks to everyone who suggested links in comments and on delicious.

From comments: FoolishOwl on those pesky distractions

FoolishOwl commented:

I looked at Gail Carmichael’s blog post, “Quick Thoughts on Pregnancy and Grad School,†and was immediately struck by how the women commenting on it were in general agreement, based on careful thought about the optimal moment to have children. It struck me by contrast with some “how to be a good programmer†essays I’d read lately, written by men, which emphasized the importance of discipline and concentration on programming, and eliminating all distractions from one’s life.

It’s striking me that the emphasis on monomaniacal concentration only works on an implicit assumption of privilege — that important matters other than programming will be handled by someone else.

I find it all too easy to lapse into such an attitude.

At the risk of asking a Feminism 101 question, what’s a better way to balance these things?

Just a note to start: I don’t think this is a feminism 101 question. Feminism 101 questions are more along the lines of “why is feminism important?” or “why does feminism care about this aspect of society?” This kind of question seems to me to be more of a “how do I live in the kyriarchy?” question, which is a different beast altogether.

I don’t have a completely thought out response to FoolishOwl’s question. It’s something that’s come up a lot in discussions of being a woman in academia and many other professions which have some of the following characteristics:

  • substantial time expenditure needed to master the field;
  • emphasis on it being highly preferable to do a substantial amount of legwork in the field at a certain (young) age;
  • work in the field being at least believed to be benefited by sustained, uninterrupted, quiet, focussed workdays; and
  • expectation of at least occasional, and often frequent, long workdays which are sustained, uninterrupted, quiet and focussed.

Some examples that spring to mind other than programming or academia include medicine, which also has the structured training requirement of very long hours, and especially mathematics where the lore about needing to do your best work before age 25 seems to have achieved particular acceptance. (I’m not inside mathematics though, perhaps this is an outsider’s belief.) Academia and, I gather, medicine, both have an additional structural problem for women who want children, which is that they have a period of what is supposed to be very intense work (postdocs, fellowships, specialist training) that tend to fall right across most intending mothers’ preferred (or only possible) reproductive years.

The immediate question that FoolishOwl’s comment made me think of about programming was, how true is this? I know a lot of programmers, and being able and willing to work more than a 35—40 hour week (which I will note is already quite a privileged thing for someone to be able to do) is a decidedly mixed bag. For some it’s brought them further mastery. For many others, it’s brought chronic injury, ongoing mental health problems, or loss of enjoyment. Most of the better programmers I know aim to eliminate distractions from their work hours, not from their life.

Various questions for you all:

  • did you have a “larval phase” in your geekdom of choice, a period of immersion at the expense of other interests? do you think having one was essential, useful, just fun, or a bit of a negative in the end?
  • do you think this sort of mythos is at least partly gatekeeping, ie, not actually necessary to obtain the skills, but put in place to preserve the mystique and the status of those with the skills?
  • what role has privilege played in your ability to be part of geek communities and professions?

And of course, FoolishOwl’s question: “what’s a better way to balance these things?”

Because it’s me, a note: in general I think the conversation will be most interesting if people discuss the intersection between privilege and geek careers here, or give advice from a non-traditional geek point of view. I have a feeling this kind of question will be very appealing to men commenters, because it’s not specifically about women’s lived experience. But please consider if an extensive account of your geek career will add to thoughts about the intersections before leaving one.

Two more women-learning-python things

First up, via Nat at O’Reilly Radar, I found a link to Julie Learns Python, where Julie Steele is blogging her experiences learning the programming language.

She’s meeting regularly with a group who are working through an introductory Python book together, and her most recent post describes a recent programming effort, her trials and failures and eventual success, and what she came to realise:

The point is: it’s in me. I wasn’t sure that is was, and now I know—it is.

And what, exactly, is “it� It is the bug. It is the combination of native curiosity and stubbornness that made me play around with the code and take some wild guesses instead of running straight to Google (or choosing to stay within the bounds of the exercise). That might sound like a small thing, but I know it is not. I was determined to make the program do what I wanted it to do, I came up with a few guesses as to how to do that, and I kept trying different things until I succeeded (and then I felt thrilled).

As much as I have to learn, I know now that I really am hooked. And that I’ll get there.

Elsewhere, on Dreamwidth1, Elz, one of the lead programmers on the OTW’s Archive Of Our Own2, decided that there were some gaps in her education that she wanted to fill, and is drawing together a group who will study MIT’s Open Courseware Introduction to Computer Science over the next few months.

The course teaches basic CS concepts using the Python programming language, and doesn’t require any previous programming experience.

The community’s at intro-to-cs.dreamwidth.org. You’ll need a Dreamwidth account to join and post, but anyone’s welcome to follow along without signing up. If you want a DW invite code, let me know in comments — I’ve got a heap still to give away! I’ve signed up, because I’m sure my education’s got a lot of the same gaps.

I love hearing about women teaching themselves programming. Got any other links or stories like that to share?

Notes:

Your chance for geek feminist fame! Build us a cookie generator.

Liz and I think there should be a LOLCOOKIE generator so we can give cookies to people who deserve them, but we’re too lazy/tired/busy/spoonless to do it right now. But hey, GF readers are a bunch of nerds, right? There’s gotta be someone who’ll take this on.

Your mission:

1. Take this picture (click through for full size version)…

cookie

2. Write a script which will superimpose a message of the user’s choice, similar to the cookies shown in this Flickr set. Mimicking icing as closely as possible would be ideal, though straight text will do.

3. Add a web front-end, so people can easily build their own cookies. It should run on any halfway decent web host with minimal extra installs, please.

4. Bonus points: figure out a way to allow hotlinking within reason, but prevent DDoS. (Yeah, I know.)

Gender and Ohloh.net

While I was at Wikimania last week I was talking to a sociologist who is researching open source contributions. Turned out he’d never heard of Ohloh.net so I was glad to be able to introduce him to it. Ohloh, if you’re not familiar, is a site that reports on contributions to a wide range of open source projects over time, by scraping information from version control repositories. It has over 300k projects listed and almost 400k contributors.

Yesterday, when looking at Ohloh, I wondered whether we could guess anything about the gender of contributors from their user profiles there. So I set up a little experiment. Using the Ohloh API, I extracted a bunch of account data, then grabbed a small sample (100 accounts) to mess around with. (I didn’t worry too much about real randomness at this point, as it was just a proof of concept.)

Next I created a Mechanical Turk job where I asked participants to look at Ohloh profile pages and see if they could figure out the gender of the user based on username, avatar, or any other means. I got three people to look at each profile, paying 5c each, so the cost to me was 100 * 15c = $15, plus Amazon’s fee brought it to $16.50.

The results came back in about an hour. I downloaded them and ran them through a quick little Perl script. In any case where at least two of the Mech Turk workers had agreed on “Male” or “Female”, I counted the user as that gender. If the workers couldn’t agree or couldn’t tell, I counted the user as “unknown”.

My results for the test batch of 100 users:

6 female
23 male
71 unknown

Turns out it’s hard to tell gender from Ohloh profiles! Some of them are truly impossible — usernames that are just initials, for instance, and profile pages not filled out at all. And sometimes my MT workers just seemed to have odd opinions, or didn’t know much about names. For example, they all marked someone named Didier Durand as “?” although that is a common French masculine name. Similarly, someone named Pavel Shiryaev also came through as unknown, with two “?” and one “M” though Pavel is the Russian version of the masculine name “Paul”. dianelamb320 got a vote each way for “M”, “F”, and “?”, also resulting in “unknown”, though I would have guessed female. On the other hand, svpavani came through as female (two “F”, one “?”) and I can’t for the life of me figure out why, as there is nothing on the profile page to indicate it.

So… with 71% unknown, I don’t really feel this was successful enough to extend to a wider sample, given that it costs real money to do so. But I do think it was interesting that in the small and not-particularly-random sample I used, 5% were clearly feminine usernames (that is, 6% minus “svpavani”). This is considerably higher than the 1.5% of female contributors usually cited from the FLOSSPOLS survey.

What do you think? Would it be worth trying again with a larger sample? Do you have any ideas for how to get fewer “unknown” responses without compromising the data? Any other ideas on how we could mine Ohloh’s account information to learn things about gender?

Sewing pattern archive for all you textile geeks

From Indie Craft Gossip I heard about a huge pattern archive with pictures and data on sewing patterns from the U.S. dating back to 1860. There aren’t any instructions for sewing, but the pictures and the pattern designs themselves are amazingly cool and funny. I don’t even sew, and it was fun to browse their pages on the “guest access” password. Check out these matching dresses with oven mitts from a 1943 Simplicity pattern:

Matching oven mitts!

The search interface is a little annoying to use, but if you take a look at a pattern or two, you might notice that the urls are all the same and end in a pattern ID number. In fact, each picture on the pattern pages is named after that pattern id. If you would like to use them for private research or study purposes or personal use, that seems to be permitted.

In fact you can do that really handily by making a short shell script,

#!/bin/bash
for n in {1..100}
do
wget -r -l1 -np http://guest:pattern@www.uri.edu/library/special_collections/COPA/garment.php?patID=$n
wait 3
done

This would get you the first 100 patterns and you can search through their metadata on your hard drive with grep instead of using the clunky search boxes on the web site. I would recommend you not get too many at a time because it might be rude to their server, but find a range that you think are interesting, or copy the pattern ID numbers from a particular search. So if you wanted to fetch only patternIDs 14287, 10001, and 20, your script would look like this:

#!/bin/bash
for n in 14287 10001 20
do
wget -r -l1 -np http://guest:pattern@www.uri.edu/library/special_collections/COPA/garment.php?patID=$n
wait 3
done

This is assuming you’re using Linux or on a Mac with Xcode or where you have installed wget.

That wasn’t at all obvious to me at first and I messed around for 2 hours tonight trying to figure out how to do this. First I tried using curl because you can put a range of numbers in brackets to download sequential urls like this:

curl http://guest:pattern@www.uri.edu/library/special_collections/COPA/garment.php?patID=%5B1-10%5D -o pattern-id-1#.html

But that doesn’t get the images, which is no fun.
wget alone can get the images but only from a single url:

wget -r -l1 -np http://guest:pattern@www.uri.edu/library/special_collections/COPA/garment.php?patID=10

I tried writing some perl but wget is very annoying when you try to do a system call with it in Perl. Let’s not even go there. Meanwhile there was some really dorky googling of things like “files sequential variable mirror wget”… and “bad port number perl wget system call”.

Then I tried this script called curlmirror which almost worked.

Suddenly I stopped messing with it and wrote a 4 line shell script instead, feeling a little sheepish.

So, if you had set out to do this would you have realized how to do it quickly? Or do you have a better or different way to do it? On a meta level, have you messed around like this in several dead ends and do you find that to be stressful, normal, or downright fun? (I found it a mixture of all three; stressful because it feels like I “should” see the way to make it work, or the best way, immediately. It’s fun because I enjoy dabbling in all these possible methods and learning something.) Would you explain that you did non-working things for 2 hours first or do you think it’s better to just come out with the solution and not say how you arrived there?