FLOSSPOLS report on gender and Free/Libre and Open Source Software

There’s two reports in fact: D16 – Gender: Integrated Report of Findings; and D17 – Gender: Policy Recommendations (a sub-report from D16). I’m in the middle of reading the first one. I don’t know how the general public is going to go with them, even I have trouble not wincing at the use of ‘discourse’ and ‘narratives’ and I both have a rogue semiotics major and know perfectly well that it’s unmarked jargon.

I’ve never felt really able to contribute to the why [so few women in this IRC channel]? discussion other than tending to dismiss the women’s brains don’t work like that argument for totally incorrect reasons. That is, I dismiss it largely because they seem unable to put ‘most’ in front of the words, and what kind of evidence of mathematical superiority involves making a absolute statement about an entire population in a conversation with one of the exceptions? That’s right, I’m completely petty about that one.

More seriously, I’ve always wanted to solve the problem of why I personally don’t contribute F/LOSS code before going at the bigger question. I mean, I’m in all the right places. I report the bugs. I have myself been a professional programmer, and now I’m a postgraduate computer science student which puts me even closer to the ‘likely to spend entire life on free code’ demographic. On the rare occasions when I even look at the code of stuff I use I can generally curse its inadequacy and also find the bug I’m looking for. (I have trouble fixing them even then though, because I tend to subscribe to a ‘master plan’ theory of the code in which I worry about breaking other things if I have to do any rearranging to fix the bug. I guess I’m the person test driven development was invented for.)

Some of it is this problem. Some of it is the social problem: that hurling out random patches is actually so seldom successful when fixing bugs, especially non-trivial ones, compared to spending oodles of time in Yet Another IRC Channel and finally winning commit access. (It’s possible a different choice of projects to fix bugs in would help, but that tends to be the problem with the under-resourced small ones.) Much of it, however, involves just not opening up the code in the first place.

A couple of things in D16 speak to me though: the first is the review of how important the idea of complete individual volition is in F/LOSS culture(s); that one’s choices to code or document or play will dolls are made in a social vacuum. Another interesting note, probably a tangent, from D16 (page 34):

Often it is almost as if software projects are not about software production but about code production, where members imagine that within code lies exclusive access to worthy knowledge. In this sense, F/LOSS resembles academic computer science more than engineering. It is perhaps not a coincidence that proportions of women in F/LOSS resemble academic computer science numbers.

Note that I cheat in academic computer science too: computational linguistics has a relatively large proportion of women. Still, I’m sure, a minority, but it’s difficult for me to notice that when it’s a sizable minority. But I wonder if I should tottle off and have a closer look at the ‘women in computer science’ literature now. It’s still an open question as to whether it will answer any questions I have about myself though.

Google demands, we deliver

Unlike my more organised compatriots (Pia, Scott) I didn’t go to the Google Open House party last night. But since they employ in my research field, I did head over to their Software Engineering ads in order to scope things out. After all, I like Sydney. I might want to live here after my PhD. (To be fair, it’s a bit of a long shot in that they don’t have computational linguists in Sydney.)

It’s interesting to see that they want a Masters or PhD for the position. Even modulo the usual about degrees not proving anything about anyone, I wonder what sort of Masters they’re looking for. A Masters degree is not usually a PhD feeder in Australia (four year Bachelors feed straight into 3 year PhDs with some provisos). While there are research Masters, which are just like doing a PhD except only about two thirds of the work is expected, most Masters programs are terminal coursework programs. In IT, they’re often career entry programs too, they don’t assume prior knowledge of the field. So hiring a Masters is just like hiring a Bachelors except your job candidate is older and is guaranteed to have a Bachelors in something else too. It says nothing in particular about some personal investment in or aptitude for research-like software development like it may in the US.

This is more a human resources problem for Google than anything else. It is, I assume, tough to get a decent picture of how tertiary and professional qualifications work globally. It’s a little concerning in a local sense: Australia at present does not usually demand Masters degrees for professional work except in the rare fields where there’s no undergraduate degree that qualifies you for the profession (and even medicine, dentistry and law are undergraduate, although in many cases they cheat and require that it be your second Bachelors). I’d be just as happy if it stayed that way. There’s nothing wrong with twenty-somethings being allowed to start actual work, surely.

PhD management

I’ve started a thesis, these are my toys:

Bazaar (yeah, the new one, I’m not that crazy…) for version control. As you might expect, the distributed element is a wee bit of overkill, but not as much as you might think. It makes backups easy.

LaTeX and BibTeX. I’m not a complete LaTeX purist; I find it’s more trouble than it’s worth for shorter documents, or at least, it has been since office suites on Linux started being easily installable and usable for me. (I recall, for example, in 2001, when Abiword exported to PDF but did not export the paper orientation with it. Since I’ve never owned a printer, export to a portable format for printing has always been my feature of choice.) But for a 200+ page thesis, it’s better than the alternatives, because it doesn’t involve typing XML tags and it is text based and therefore can be version controlled without custom proprietary tools and recovered by hand. And it’s designed for academic papers.

I’m not so enamored with BibTeX because I find it’s an easy format to get wrong. I suppose I should at least try EndNote someday so that I speak the same language as my librarians, but even if it is as good as everyone claims, it takes a lot to get me to switch operating system. (I have, in fact, only done it twice: DOS 2 to Windows 3.1 to Linux.) I probably should play around with BibTeX frontends again. Last time I tried pybliographer it was missing some useful features, although now I can’t recall what.

Tomboy for note-taking. This is my real discovery of the past month or so. I like wikis for notetaking in principle (hyperlinkiness is next to godliness) but in practice I find that the press edit, wait, edit, press preview, wait, edit, press preview, wait, edit, press save, wait cycle is too slow for comfort on a web connection. They’re also not really well designed for the task of taking notes into several pages simultaneously, or bouncing between them. So, I ran apt-cache search wiki specifically in search of the wiki idea implemented as a desktop program and Tomboy is what I found. I’ll be curious to see how their ability to interface with other programs goes. If it looks attractive I might try and hook it up to one of the BibTeX frontends I’m yet to find.

The bounty puzzle

My mind may be a little warped at the moment from spending time as a programmer for client driven projects and the associated perils, but every time I think about open source bounties something in the back of my brain starts squealing painfully.

I mean, these things just seem like a potential minefield to me. And I don’t mean legally, in the sense of people suing each other over bountified things that did or did not happen or bounties that did or did not get paid. I just mean in the sense of an enormous amount of sweat and blood spilled over the details of when the task is complete.

Consider the kind of features that are being bountied, for example parental control for Ubuntu. There are so many ways that one might not like an implemented solution to this problem, both reasonable and petty:

  • it might not completely control the users’ access in any one of a number of ways (doesn’t block IM, is missing some porn websites, doesn’t block use of alternate proxies…);
  • it might not be written in a programming language you favour;
  • it might manipulate packages or user settings in a way that is contrary to the way the rest of the distribution works;
  • you may disagree with its author about what parents might want to control;
  • it might have an unusable GUI, or one that you claim is unusable; or
  • it might have security flaws you can drive a truck through.

Moreover, upstream might have their own set of reasonable or petty objections, ranging from "I wanted to do that myself, it sounds fun, so I won’t use your solution" to "cleaning this up so that it works for us is going to be months of work" or "it has security flaws you can drive a truck through." And any or all of these might be the end of the project in a normal situation. But when some small amount of money is added, there’s a whole new fight on about what constitutes a completed bounty for the purposes of payment.

Even with companies, which are fairly motivated to be profitable, and even with specifications longer than the Bible, these fights can end up costing more person hours than the total value of the project. With bounties maxing out at USD500 or so, I’m willing to bet that the review time alone will cost more than the value of the bounty in all but cases so trivial that writing the code is faster than writing the specification anyway.

But the main problem for me is that doing client driven work now without a very clearly defined relationship between myself and the client (I’d like the armies of the undead to be involved, but failing that, serious review of the specification before coding begins) just gives me the willies. I’d rather take my chances with scratching my itch and hoping that the community agrees that it’s worth applying the patch than have the community try and assume a client relationship with me, let alone someone peripherally involved in the community who wants me to do the work of getting the feature that they personally want added.

There’s a problem here to be solved. It’s the old nasty one: what does a good specification (one where the specified task can be judged complete with as little ambiguity as possible) look like, and how does one write one?

Ubuntu and Malone

Apparently I haven’t gone mad, and the security fixes announced in this and this announcement do not, for all intents and purposes, actually exist for end users at the moment (bug 31584 and bug 31585).

Malone (the Launchpad bugtracker now used by Ubuntu) must have improved since I last used it. I remember way back when every time I filed a bug against something else I would have to file four bugs against Malone itself. Now I’m down to a one-to-one ratio (bug 31581 and bug 31583) plus a couple more nitpicks (bug 31586 and bug 31621). This is still much more frustration than I’m really happy with: I spent literally an hour trying to report that those security updates were missing, and it was only as small as that because I’m one of the twenty people in the world who live with a Launchpad developer. Alas, since I use Ubuntu and need to give them feedback on my problems if I want my computers to keep working, they have me all locked up on this one. And I normally find bug scutwork soothing in small amounts…

LiveJournal and planets; Planet todo

LiveJournal and planets

For some as yet not well explained reason, LiveJournal has changed their URLs so that each user has their own subdomain.

The upshot of this is that the Planet software has now moved some LJ users entire feed (last 15 or 20 entries) to the top of the planets they’re on. Sorry about that, LinuxChix Live and Planet Twisted. You can bump them off by writing more entries…

Actually, given that planet is kind of evil about redirects, it might be better to edit one’s planet config, so that all feed addresses that looked like http://www.livejournal.com/users/username/data/rss/ become http://username.livejournal.com/data/rss/ (or http://users.livejournal.com/username/data/rss/ if the username began with _ or -, or see the announcement for information about whatever the hell is going on with communities).

Planet todo

Speaking of the Planet software:

  • It needs a complete go-over to convince it to dump as little as possible into RAM at various points. My two planets each take up to 40MB of RAM during generation. Potential problems include: feedparser does not stream; templating software does not stream. But even with those limitations, it shouldn’t be loading the complete cache of all entries from all blogs at once.
  • Redirection code may need fixing.

The trouble with IRC

I’ve been fussing about whether or not I want to use IRC for ages now. So I’ll put my dilemma out there into the void so that years later people can remind me how silly I was back in the day.

In this post ‘IRC’ means ‘hanging out on semi-technical IRC channels with people I barely know [in any sense of the word]’ and ‘hanging out on mostly-social IRC channels with people I do know.’ My feelings aren’t readily extensible to person-to-person IM, with which I’ve had so few obviously positive experiences that I seldom bother with it, and with IRC private messages, which I regard as essentially a more reliable way of getting Andrew to answer questions about his whereabouts and doings than email (he’ll answer about 50% of them rather than none).

Reasons why I keep using IRC

In order of decreasing importance:

  1. There are several people I know slightly for whom I have some substantial degree of fangirlishness (in the nicest possible way, I love smart people), respect or general admiration who it is not practical to interact with in any other way: typically they live in other countries; and I’m not close enough to them to be comfortable taking up their time for a one-on-one conversation in any forum whatsoever. This leaves spending thousands of dollars flying to the conferences they attend or hanging out in their IRC channels as the sole means for me to bask in their company.
  2. For several projects in which I’m interested, IRC is an important or essentially sole means of decision making.
  3. For one social group I’m peripherally involved in, IRC is a fairly important medium for making social plans.
  4. There are some coding activities that are easier to coordinate and some discussions it’s much faster to have on IRC than on a mailing list.

Reasons why I keep wanting to give it up

  1. The vast majority of IRC conversations are dross. I’m not sure whether this is a function of the higher social bandwidth that comes from seeing people’s faces, but while I’ve had very good conversations with people on IRC, I seem to have them in person more often.
  2. IRC is mildly addictive for me, and not in a nice way. The setup is much like the computer game model where there’s a certain amount of back-off in reward (to get from level 1 to level 2, you need to kill 3 rats, to get from level 29 to level 30 you need to kill 3 dragons and date two princes without either finding out about the other). On IRC, there’s always at any moment the possibility of fusion happening and a great (or important) conversation springing up from nowhere. Hence, just as I will tend to keep playing a computer game until the next reward state is reached, I’ll tend to stick around on IRC waiting for it to catch fire. Neither computer games nor IRC are terribly addictive for me, but both of them tend to have a net negative effect on my mood thanks to this usage pattern.
  3. A small minority of the time, IRC conversations, typically political ones, absolutely infuriate me due to some conversation of the content being expressed and the manner of that expression. This probably isn’t noticed most of the times that it happens because I tend not to participate in them, but I absolutely loath having my blood pressure raised like that and each time it happens I’ll vanish for some days if not weeks.
  4. Partly as a result of not valuing IRC very highly, I’m never in the inner circle of any channel I participate in. This means that every so often people will indulge themselves in a comforting social ritual that makes me feel like an alien anthropologist (various Twisted people like virtually squishing each other, some of the LinuxChix like to pretend to be cats…) and an unwelcome one at that. (Also, and I’m notoriously bad at explaining this and people keep misunderstanding me and thinking I’m claiming sexual harassment but here goes: this kind of thing would be extremely intimate behaviour coming from me and being in a place where people indulge in what I consider an extremely intimate behaviour and they consider to be a kind of mild social lubricant is just, well, weird.)

And a pony

So really, the upshot is that somehow I wish I could have the positives of IRC (working with some smart people I know on some interesting things they work on; and/or shooting the breeze) without the negatives. One alternative would be to give up on IRC and seek those things elsewhere, but unfortunately that means accepting losing most or all contact with a number of people who I don’t want to lose contact with. So far I have no alternative plan.

Things I learned by being offline for two weeks

  1. I don’t actually dislike reading blogs and mailing lists, but I don’t miss them when they aren’t there. I’d say that this might lead up to minor purges, but last year’s purges were so ruthless that the only thing left to purge might be going online at all.
  2. Actually, scratch that, I’m happier without IRC.
  3. I do confess to worrying that some kind of awful tragedy in the lives of people I know that I ordinarily would have been informed of via the net. (I did hear about an arrest in Thailand, but if there’s anything more recent than that, um, I probably haven’t heard.)
  4. Noone calls my mobile to see what I’m up to and where the hell I’ve got to.
  5. I did get an SMS invite to an NYE party I couldn’t get to though, so that’s OK.