Blockheaded blocking, GitHub style

From comes this surprising development about the block functionality on GitHub. From the article:

Users who are blocked will no longer be able to open or comment on issues or pull requests, nor will they will not be able to add or edit any of the project’s wiki pages.

…both of these sound reasonable so far, but then there’s this:

Blocked users are also prevented from forking any of the organization’s repositories.

It is this last one, however, that I have a huge issue with. While rare, forking is generally considered the best way to resolve differences of opinion on a project. There are also other valid reasons for forking such as wanting to recode substantial parts of a project for different hardware (anything from a completely different architecture to a newer or older generation of CPU), to satisfy different jurisdictions’ legal requirements (example: a GPLed arcade game software needs recoding for Texas’s somewhat oddball redemption game limits), or even rewriting the original code in a new language or new variant of that language (Inkscape in C++ versus Sodipodi in C).

This problem is compounded by Github’s terms of service A.7 which disallows one person or legal entity from having multiple free accounts. Otherwise, the easiest workaround would be to make a one-off account just for forking a project one has been blocked from, and transfer it to the “real” account. Someone who wished to fork a project after being blocked would either need to form a new legal entity such as an LLC (!) or have someone fork the project on their behalf. I’m not even sure if that would provide full functionality.

I am, however, pretty sure that the vast majority of ghost accounts on online services, GitHub or otherwise, go undetected for years. Outside of legal action, there’s no real way to stop them. (Example: I could get a cheap voice/text only “burner” phone plus $10 worth of airtime, pay for it in cash, go down to an Internet-connected cafe such as a Starbucks like the one I am in now, and set up a new Gmail account within minutes. If there are more than 5 people in that Starbucks at the time the account was created, and/or there’s no reason to suspect monkey business until after the video surveillance system at Starbucks erases/overwrites the video from that time, it’s going to be damn hard to figure out who really made that account. Personally, I’ve never done this, but I’m sure some people have. Bonus points for using Tails/Tor Browser on top of all this.)

Too many people who use platforms like Facebook and Twitter have no idea what blocking actually does. Too many use it as an “easy way out” with regard to avoiding differences resolvable with minimal effort. (As an aside, in the case of Twitter specifically, it has changed over the years. At one time one could still easily read public tweets of a user that blocked them. Now, there’s just a screen that says “You have been blocked from following @skquinn and reading @skquinn’s Tweets. Learn more”. One huge problem I have with this setup is that it is taking the user’s authentication information and using it against them; it’s possible to see the same timeline as a not-logged-in user. Twitter does not even restrict me from making a second account just for the purpose of evading certain aspects of blocking, though things like a prohibition against harassment and stalking are still in play.)

Also, blocking is an all-or-nothing proposition in most cases. There’s no way to line-item block certain posts from certain people that are no longer friends. The closest one can come is, on Facebook, to make a custom filter that amounts to “all friends except Joe Dummy” or similar. Indeed, GitHub’s block function appears to allow no easy way to allow just forking, and was made with the assumption someone would want to prohibit a diverse and far-reaching set of actions with one button most of the time.

So again we have a service which has made the block function far more powerful than it really should be. As unfortunate as it is, there is still time for GitHub to fix this unfortunate mistake, and I am hoping that they do.

The great PyCon lewd joke controversy of 2013

This one hits remarkably close to home for me. It’s a storyline we’ve seen so many times: person A sees something done/said by person B and posts it to a blog/Twitter/Facebook taking exception to it, person B doesn’t like being called out, all hell breaks loose.

Here are the relevant stories and blog posts I found, in what I believe to be chronological order:

The storyline, for those who haven’t read it: Adria Richards attends PyCon, and has the unfortunate luck of sitting in front of two PlayHaven developers who make rather tasteless computer geek jokes about “forking” and “big dongles.” Adria posts a picture of them on Twitter with a description of what’s going on. PlayHaven doesn’t like having their brand attached to this kind of thing, and fires one of the developers. Anonymous, the group responsible for generally wreaking technical havok with DDOS attacks when something happens that they don’t like, decides to launch a DDOS attack (big surprise) against SendGrid. SendGrid fires Adria.

Adria’s blog post linked above describes that the decision to post what she did was carefully thought out. She even links to the PyCon code of conduct, which I’ll quote in part (from the short version):

PyCon is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of conference participants in any form.

All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any conference venue, including talks.

Be kind to others. Do not insult or put down other attendees. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for PyCon.

It’s obvious to me that the sexual jokes about forking and about large dongles very clearly cross the line. In fact, there is no way that any sane person can read the above parts of the PyCon code of conduct in a way where this kind of thing would be allowed. There’s no information on whether or not they were allowed to stay at PyCon from that point forward (possibly on purpose, more on this later). Certainly, there’s a strong case for kicking them out of the conference without a refund.

There are also people saying the PlayHaven developer who was fired shouldn’t have been. It’s really hard for me to agree with that point of view. He knew the rules, he broke them, he made his company look bad, he was fired. I don’t care if he does have three kids. Maybe his kids, once they grow up, can learn from their daddy’s mistake: break the rules, lose your job. Hey, I’ve been fired from jobs for smaller mistakes before, and I have a friend who was fired from a job for little more than getting hurt on the job (long story).

Adria shined a bright light on this flagrantly unacceptable conduct. Honestly, I think it needed to be exposed. This is 2013, and while some decades ago it may have been unusual for women to work in the technology industry, that is no longer the case. The only thing that could be worse than two guys making clearly inappropriate jokes at a tech conference, is having someone bring this conduct to light–and lose her job for it. Unfortunately, that’s exactly what has happened to Adria.

PyCon appears to want to address this type of situation going forward by placing an emphasis on confidentiality and privacy, which I disagree with in principle. I think the threat of bad publicity has done far more to raise awareness of this issue than anything done under the cloak of privacy and confidentiality.

I do realize Adria’s job is developer relations, and in that context, it’s unfortunate that SendGrid decided to say “[Adria’s] actions have strongly divided the same [developer] community she was supposed to unite.” It makes me wonder if perhaps there exists a population of (mostly male) developers at SendGrid that felt they have the right to make these kind of jokes. That’s the only way I can see Adria’s actions being divisive. If that’s the case, maybe SendGrid should be beefing up their sensitivity and harassment training. Certainly this would do much more for developer relations than firing an employee for speaking out against a flagrant violation of a conference’s conduct guidelines.

I’ll close with two of the better quotes from the two blog posts. First, from Adria’s:

The forking joke set the stage for the dongle joke. Neither were funny.

And second, from Steve’s:

Want to keep your job or save face after you’ve made sexist jokes at a tech conference?

Don’t make sexist jokes at a tech conference.

That sums it up far better than I ever could.