
Zed Shaw: Github's Favorite Joke - pufuwozu
http://sheddingbikes.com/posts/1306816425.html
======
rtomayko
I'm the GitHub employee that fixed the bug. I usually try not to get involved
with stuff like this but I feel like I'm in a unique situation to correct the
record here.

 _"They purposefully allow this glaringly obvious mechanism for insulting and
annoying their members and are actually involved in the joke."_

I've never heard of the joke. I've never heard of anyone at GitHub being
involved in one of these jokes.

There has been one case that I'm aware of where someone mass added people to a
repository in order to fill up activity feeds. That person was banned. It's an
issue we'd like to address more generally.

 _"Until I broke their server they were all laughing at my 'testing' then they
were pissed when they had to fix the bug I found."_

I fixed the bug without being aware of any of this. I check our exception
monitor every day. It was there. It was obvious. I fixed it.

It was a simple bug triggered by branch names that look like commit SHA1s.
Here's the commit:

<https://gist.github.com/88bc774d0c97e6c955c0>

It affected only branch list pages with branch names matching [0-9a-f]{40}.

 _"If you don't believe me, look at the HackerNewsTips twitter account, which
I know is astroturfed by a github employee."_

That is _not_ a GitHub employee. We don't hire anyone that witty as a rule.

~~~
zedshaw
> It's an issue we'd like to address more generally.

I wish you would. I'm apparently not the only one who's had this "joke" played
on them, and it'd be nice if it was ended.

Here's how you do it: If someone adds me to a project, either I can reject
that add, OR I can block a project and they can never say anything to me
again.

Pretty easy.

Also, you should talk with Tom about this joke, I'm sure he knows allll about
it.

~~~
rtomayko
As a first measure I think we could make it so that once you removed yourself
as a collaborator from a project, it would not be possible for the person to
re-add you. I realize that's not ideal but would be much more trivial to
implement than UI / additional server state for confirmation before being
added.

~~~
zedshaw
That'd be a good moderate solution. It'd keep the simplicity of your
collaborator UI intact, but let me avoid this kind of abuse. You might want to
make it a "remove" and a "remove and block" so that people don't get into a
bad state on accident.

~~~
bigiain
Twitter's "block" and "report as spam" choices for unwanted followers seem an
obvious thing to copy here...

------
nestlequ1k
Zed really has a victim complex. As Ryan validated above, I can guarantee you
anyone who has any authority at all at github did _not_ encourage or sanction
this behavior. It may not have been high on the fix queue, but thats because
they expected people to be rational, and they can just manually ban the people
who abuse the system.

Zed.. seriously... the world is not out to get you. We love your code and your
contributions. Don't let a few losers get you down.

~~~
zedshaw
I don't have a victim complex, I stand up for myself, there's a big
difference.

~~~
nestlequ1k
Also a difference between standing up for oneself and feeding the trolls.

~~~
zedshaw
You have to stand up to the trolls now. The internet has created a permanent
record of slander and humiliation from anonymous people, so if you don't stand
up to it then it'll be assumed that there was some merit to what they said.

~~~
dazonic
If you paid it no attention it would go away and find someone else to annoy.

~~~
bigiain
If Zed's story is correct, an it'd be foolish of him to have claimed this it
if wasn't, then this particular individual is proof that ignoring trolls
doesn't work.

There's also another problem with your response - why the hell should anyone
_else_ have to deal with unwanted dickjokes? Github almost certainly don't
like the way Zed's brought attention to this, but it's _their_ poorly though
out infrastructure (or more optimistically, their incomplete implementation of
a good idea) that's providing a platform for Nick to go round harassing people
he doesn't like. Nick needs to grow the fuck up and understand that unwanted
dickjoking and homophobia isn't funny outside his special little circle of
friends, but Github need to understand there's millions of idiot-Nicks out
there, and ensure their product doesn't even allow this sort of behaviour to
start.

~~~
zacharypinter
I wouldn't necessarily fault github in this situation. The product started
with a great community and it would have been wasteful for them to have spent
their time early on implementing defense mechanisms against abuse instead of
focusing on features.

For example, I wouldn't expect them to add spam filtering to their message
system, but if viagra ads started popping up on github it'd be a worthwhile
addition. However, to label that poorly thought out or an incomplete
implementation of messaging seems unfair.

Of course, now that the community is larger and github is being used as a
platform for childish squabbles/recruiters/etc, it's a good idea for them to
fix these types of issues as they pop up (which they're already doing).

~~~
bigiain
Yeah, I guess that's where I was going with my "incomplete implementation"
alternative.

Sure, you launch with a MVP that doesn't include protection against trolls,
but you really want to have at least a plan for how you're going to deal with
them when you finally gain enough traction to start attracting them (and if
_I_ were Github, I'd be profusely apologising to Zed, and _very_ publicly
smacking down Nick (and his idiot copycat friends)).

------
marcamillion
Love Zed, Hate Zed or neither, it is disappointing if Github really allows
this type of abuse to happen with no repercussions.

...and I have been a major Github fanboi from day 1, so it sucks for me to see
such pettiness.

Quite frankly, I am not a big fan of Zed Shaw either...his hissy fits tend to
get on my nerves....but come on man Github.

You are a damn company!

~~~
rawsyntax
As far as I can tell the only side effect of being added to a project, is that
it shows up in your list of your repositories on your [private] dashboard.

Edit: see <http://github.com/zedshaw> , he's not listed on the dongml project,
because that link only shows your forks, not repos you have commit access to

Edit 2: Why the downvotes, am I wrong?

~~~
boundlessdreamz
Zedshaw is visible here <https://github.com/nickmartini/dongml/contributors>
Not sure if that is because he pushed commits or because he is added as a
contributor.

~~~
rawsyntax
It's because he pushed commits. I have commit access on a private repo on
github that I have not pushed commits, and I am not listed on the contributors
page.

------
gooddelta
I'm a bit surprised that Github would allow one of their employees to behave
that way without firing them. Love Zed or hate Zed, he's still a user, and
you're still a company providing a service; show some professionalism.

Zed: I'm on your side here, but _please_ stop rising to these assholes'
attacks. You're not going to convince them to change their ways, and getting
into a pissing match with them gives them what they're looking for. You won
this one, but your time is worth more than this.

~~~
silencio
I wouldn't mind finding out more about the whole story. Did Zed try to contact
someone at github to try to get a fix for this problem before writing his
little script? To get this person banned? Whatever it takes for him to stop
showing up as a collaborator, regardless of what dick obsession github
employees might have?

Or is the extent of his github contact just passive aggressively trolling a
troll and then blaming github for doing nothing when he did nothing to work
with them?

All I'm reading is assumptions and more assumptions in his post about who
might be the author of @HackerNewsTips and github employees liking dicks
therefore they won't help him and will just laugh. That's not terribly
convincing.

~~~
zedshaw
Yes, one of their employees actually fixed a bug I caused so someone there
knows, yet here we are again.

Now I know what you're saying, I should go through their bug tracker
bureaucracy for a few weeks. File some nice bugs, talk with people, go down to
their office, pick up some schwag, and _then_ after they've had about 6 months
to fix the problem I'll finally have dongml off my project list.

Sorry, but if they don't fix it after it causes a bug in their system, and
after other people complain about it, then it probably won't get fixed. Based
on that, I'll just write about it and move on to something else (again).

~~~
silencio
No matter github's priorities or prior knowledge of this issue, there is
always the option of manual intervention. That is probably what I would have
contacted github for if I found myself in your problem.

I was just wondering if you tried to contact someone at github before reaching
the conclusion that you needed to take this into your own hands. This is
_before_ finding the bug they needed to fix and letting the world know in a
super high profile blog post that you had a problem. Even if it wouldn't do
anything in the short term other than banning the account in question, github
would have documented history of abuse and another big +1 for fixing the way
adding collaborators works. I don't mean that you have to spend 6 months and
become drinking buddies with everyone at github to get anything done. Even a
simple one liner email like "this dick is being a dick with his dicks" to
support would be better than assuming they're not going to do anything.

Basically, I'm trying to see this from a developer perspective. We expect
these kinds of bug reports and emails from users (or, at least, analytics that
would correspond with a problem) and we know that we can't read minds (well, I
don't know about you, but I know I can't). We also have priorities. Yet we
have users and clients and bosses that want to disregard all that :) If you do
know that this was a well known problem to github and they didn't want to
address your particular issue, then kudos to you for your creative trolling of
a troll and deciding to switch to another provider. Otherwise, I don't know,
I'm pretty ambivalent on how I feel about people complaining without saying
anything to the company/person in question. I can't blame you for being
frustrated, but part of your frustration might be self-inflicted.

------
davidhollander
Interesting how this disappeared from HN's front page without being dead-ed.

I seem to recall the 'Programming, Motherfucker' link meeting a similar
mysteriously early demise, despite its 800+ upvotes.

~~~
zedshaw
Hehe, yeah, and I'm probably in their weird secret block list they vaguely
mention.

The thing to remember is most of the entrepreneurs claim to want a meritocracy
but don't really. They don't want people to criticize their products, call
bullshit on their marketing, or make something better to compete with them
directly. When they say "meritocracy" they mean "everything I make has merit".

So, in keeping with that, they like to take communities like HN and pretend
it's a free market of ideas supporting the meritocracy, then secretly
manipulate your opinions behind the scenes by killing articles and blocking
people they just don't like.

But hey, it's fun talking to everyone late at night between hacking bouts. :-)

~~~
statictype
>The thing to remember is most of the entrepreneurs claim to want a
meritocracy

Do they really? I think most people here are fine with pg weighing down on
what he thinks is inappropriate.

I have no idea what it is that got blocked or killed here so won't comment on
that but I don't think many people on HN are under the delusion that this is a
free market community of any sort.

------
shaggyfrog
Is GitHub really aiding and abetting this kind of anti-social
behaviour/feature? This kind of allegation demands an official response, and
soon. Otherwise it's mega bad PR.

More than anything, I'm surprised that you can add a collaborator to a project
unilaterally. A way to request an add seems like a natural choice considering
you can request pulls.

~~~
rdtsc
It probably was never a top priority feature ... until now.

But they should definitely respond, with an apology, regardless if they all
personally hate Zed and would love nothing more than see him get hit by a bus.

Zed throws hissy fits about shit like this, and attracts trolls, because,
trolls love public hissy fits. But at the same time Zed writes awesome code
and is well known in the open source community.

I am not saying whether we should personally like him or not, but Github
getting into a spat with him over this in public can only result in their PR
failure.

~~~
zedshaw
I don't want an apology, I want them to add a feature that prevents people
from abusing others. If throwing a "hissy fit" gets it done then rock on. If
not then I'll go somewhere else.

That's what's great about a meritocracy in a free market.

------
hardboiled
I think the larger community has to shun this kind of behavior from Github.
It's unacceptable and unprofessional.

Although I don't like how Zed is repeatedly qualifying the homophobic Martini
as a Ruby guy, as if Ruby made him this way, Martini is a douche from his
behavior. This has nothing to do with languages.

I'm with Zed on this.

------
kenneth_reitz
It should be noted that GitHub does allow users to remove themselves from
collab'd repos (the article stated otherwise.)

Being a collab on a repo has no affect (public or private), other than the
fact that it will show up in your personal repo list when you're logged in.

GitHub has also banned users in the past for abusing the service. I'm sure
they would have acted accordingly if a complaint was filed.

~~~
kuahyeow
Yes, that functionality is at <https://github.com/account/repositories> . I
think the problem here is that there's nothing (?) to prevent the user being
re-added. The article does state a github employee showed Zed how to do this -
no details though

~~~
zedshaw
There is nothing to block someone from doing it other than report them for
abuse or get a different account and hope they don't find you.

The problem with reporting this as abuse though is the owner of the project
wins his little lame-troll attempt. He got you to react, so he's all happy.
The only way to really stop it is if people's whole accounts were removed from
the site, but then they'd just go make another account and do it again.

Instead, they need to require a confirmation, and/or let you block projects. I
prefer the confirmation because you can just ignore it and then nothing
happens. A block would mean someone does it and then you have to do work to
stop them.

------
Jd
Yet another reason why some of us fear getting too close to the Ruby hipsters.

~~~
m0th87
Broad generalities like "Ruby hipsters" are just as juvenile as the stupid
dick jokes that begot the stereotype.

~~~
marcusbooster
I think his sentiment resonates with the numerous outsiders who are amazed
that this kind of drama always seems to bubble up from the Ruby community.

~~~
rimantas

      > bubble up from the Ruby community.
    

And somehow always involves Zed.

~~~
marcusbooster
I was referring more to the latent sexual confusion.

------
peterbraden
What a bunch of children.

It's not cool to antagonize people

It's not cool to DDOS a service.

It's not cool to call someone out in a public forum.

Grow up people.

~~~
zedshaw
Github is a company. Remember, they make money, have employees, and are a
corporation. I didn't say Tom Preston-Warner was an asshole, I said github has
a problem with how their collaborators work and they refuse to fix it. Without
people pointing out flaws like this and reporting on companies like this we'd
all just be a bunch of corporate slaves buying their random crap.

~~~
enneff
Here's a question: why didn't you take the issue up with Github before
trashing the dongml repository?

~~~
zedshaw
I knew some github employee(s) were in on it, and that if I removed it he'd
just add it again, and at that point just figured why the hell am I bothering
with this? Might as well fight back at the jerk and then hope he gets a hint.

------
grimen
Professionall trolling. GitHub made the world a better place - assuming open-
source makes the world better that is which I do - and they've done this
pixel-perfectly IMO downtimes aside. What this is about is pure hate from Zed,
probably jelousy that some people from his past succeeded silently building
one of the greatest web companies that exists with hardly no funding while Zed
himself was writing rants. Mongrel might very well require a intelligent mind,
but every intelligent person knows that the only way of owning trolls are by
the dog treatment: ingore the trolls, and go on building great stuff. I know
average people knowing this as common sense.

~~~
grimen
...and this was not snacks for the troll, this was a note for those who don't
know the history.

------
tantalor
All the dick jokes are hilarious when you're hanging out with your buddies,
but GitHub is a professional forum. Would you do the same thing on LinkedIn?
How does that kind of misogyny reflect on your colleagues and employer?

~~~
zedshaw
While I don't claim to be any kind of feminist or understand gay rights, I
will say this kind of odd "macho homophobe" seems to be a Ruby on Rails thing.

------
randrews
Livejournal had this problem a few years ago. You could add anyone to a
community, and everyone's profile page had a list of all the communities they
were in...

Zed should absolutely get off Github; he's enough of a troll magnet that
people will figure out ways to mess with him even after this is fixed. It's
easy enough to set up a bare repository on a random machine you have SSH
access to.

~~~
zedshaw
That's why I liked fossil. It was like a little mini-github in a tiny cross
platform package. Too bad it nuked my code.

~~~
randrews
Someone should make the Git equivalent of Wordpress: deploy this thing on your
server and have your own private Github-like engine.

I think Github is a lot like Rails: they took this cool thing (Ruby / Git) and
made it attract a bunch of douches.

------
eropple
The most entertaining thing about all this is that you can merge against
nonexistent branches in git.

I think my eyes just crossed.

~~~
randrews
You can't. Maybe Github lets you, git just says "fatal: 'doesnotexist' does
not point to a commit."

~~~
eropple
'doesnotexist' wouldn't be a valid commit though, yes? From @zedshaw, when I
asked him: '@edropple Yep, you can just push randomness in various ways, my
favorite is: git push -f origin master:BIGASSHEX'

<http://twitter.com/#!/zedshaw/statuses/75423197192921088>

I don't have any git projects on my machine (migrated off of github and git a
while ago), so I can't try.

~~~
randrews
That doesn't actually do anything though. It pushes your local master branch
to a remote branch called BIGASSHEX (creating it if it doesn't exist). So if
you generate a new bigass hex each time you'll end up with a ton of randomly-
named branches that all point to the same commit, so they use no space.

I think he found a way to take down Github (having to do with having too many
branches in a project), but not actually a hole in Git.

------
ruethewhirled
Would be good to see github do something about it. Was looking to use github
for some new projects but after reading this now I might have a look at
alternatives

~~~
kuahyeow
I'll take the article with a pinch of salt. There's no indication that github
did anything actively here. Github's just missing some abuse reporting
functionality here.

------
ryan-allen
This story is no longer on the front page for some reason.

------
thenduks
This whole thing is a waste of bytes.

Simply adding someone to a repo makes it show up in their _private_
repositories list and nowhere else. Annoying? Probably. A big deal? Hardly.
(To have it show up _anywhere_ else you have to commit to it.)

The HackerNewsTips twitter account is not confirmed to be a GitHub employee
and rtomayko, who is _at least_ somewhat trustworthy, flat out says it isn't.

The only interesting thing here is the bug related to the `[0-9a-f]{40}` regex
-- and that's been fixed.

It's over, and it would be great if we could move on quickly from this one.

~~~
calloc
Except you also get emails and whatnot regarding that repo and when certain
actions occur.

~~~
thenduks
I'm not disputing that it's annoying. Props to GitHub if they improve it soon
for sure.

I just have better things to do than start a big flamewar over something like
this. If you add me to some joke repo and start doing these 'certain actions'
so I get useless emails... well, I'll just write a mail filter that blackholes
them and get right back to work.

------
kuahyeow
Time for Github to start banning people

~~~
Flow
Banning people is not enough, at least not if you only do it via technical
means. If you let the banned user know that further interaction with the
company's services will lead to legal action, you might have something that
could work, but I doubt that too.

Github should take a clue from Facebook and other social network sites. Those
sites often work in a explicitly-include-someone-in-my-social-sphere way
instead of the other way.

------
leif
While it would've been better to just ignore him, I must say, fighting back
with working code lends Zed some amount of class.

~~~
mitchty
[https://github.com/nickmartini/dongml/commit/b9b8ba94e807fc7...](https://github.com/nickmartini/dongml/commit/b9b8ba94e807fc70c3f8b20995388db6a675bbb9)

That isn't very classy, automated or not. It seems more like a pissing match.

------
awakeasleep
Zed, you gave me a hearty laugh.

But please take a minute to think about starting a mud-slinging contest with a
pig. Think about how you repeatedly stated that you didn't understand the
motivation to show you the peni, where you direct your limited attention and
time, etc.

If you are considering all that already, well rock on :)

------
Joakal
Reminds me of this troll 'Insulting source code': <http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=477454>

------
brown9-2
So does anyone know who runs the HAckerNewsTips twitter?

------
ryandvm
That was an obnoxious read.

------
prez
> Getting off github and onto bitbucket would another 20-30 minutes.

Actually, much less than that - 5 minutes at most, for creating the repo.

<http://hg-git.github.com/>

------
georgieporgie
Wow, so much drama.

------
fearsome
Zed: Here's how you fix it - Get the 4chan on it. They'll create projects with
all sorts of unsavoury content then add all sorts of people. They'll fuck up
GitHub once and for all and force it to shut down.

Live by the trolls, die by the trolls

