October. A month filled with fun events, such as Halloween - wait, nah, fuck that event! Kids going trick or treating?! Who does that anymore? You’re more likely to get police called on you for trespassing than getting a big bag of candy! Nobody relives their childhood anymore!

sob

That said. October is host to one more special event - for developers, anyway - and that is Hacktoberfest.

Some assholes gaming the system

It began with this article from freeCodeCamp telling everyone they could get a free T-shirt if they made 5 random PRs to different repositories. Obviously, people perked up. Free fucking T-shirts? Free? Like they ship it to us? Holy fucking batman! I’m not homeless, I have a computer, but I must now resort to committing utter crap to get my hands on these soft, soft cotton fibers!

Naturally, this resulted in a lot of stupid idiots trying their best to learn git and vim (nah, that’s too advanced) in order to claim their Hacktoberfest T-shirt. Resulting in pretty hilarious PRs like these:

Right now? FreeCodeCamp’s main repository’s pull request tab has 4,722 PRs (as of October 21st, 10:46PM GMT+8). That is pretty freaking huge. Even if FreeCodeCamp has a rockstar group of reviewers, possibly even hundreds of people, they would have to sift through each comment to make sure what is valid or invalid. People will have to consult each other to set the standards on PRs. It’s going to be a goddamn mess.

But I’m pretty sure the original article’s author is very proud right now. He got what he wanted - to get everyone (including trolls and bots) to contribute to open source.

But I’m grateful

I’m glad DigitalOcean, GitHub, and Twilio didn’t set the system to “Top 5% of developers” or some ranking system like that. The point of the event is that everybody can contribute to open source, and if they did a ranking challenge, then only elite programmers would get T-shirts, leaving many discouraged.

I guess these “spam” PRs and commits will pile up regardless of Hacktoberfest. It’s just that, blinded with the prospect of adding one more garment to their wardrobe (and to be clear, these T-shirts could be easily bought by the bundle on fucking Taobao, just not necessarily the same design), people do weird, crazy, sad, stupid shit.

It would be interesting to prepare unlimited T-shirts, but enforce stricter rules (like three invalid PRs and you can fuck off) to weed out potential trolls, spammers, and bots. Maybe for next year?

I’m also surprised

I joined Hacktoberfest pretty late (October 19th, I guess.) But I already had 4 PRs lined up during October 1st~4th. I knew Hacktoberfest was coming up since September, but had forgotten to sign up until the email had come from DigitalOcean. Once I signed up, I quickly finished the challenge by bringing one of my repositories up to date with upstream (a lazy move, but the rules do allow opening PRs against your repository and I limited myself to one upstream PR so as to not violate the spirit of Hacktoberfest.)

But surprisingly, the stash of 50,000 T-shirts for this year had not been depleted. Right now (as of October 21st), only 26,457 participants have completed the challenge, leaving 23,453 T-shirts up for grabs.

I think reviewers of repositories are doing a pretty good job of weeding out stupid, pointless commits. God help them until Halloween.

The bottom line for everybody out there

Giveaways, events - they all attract people trying to game the system. Honestly, I’m not totally surprised, and neither should you be. This is what you get when you open up a challenge to the entire world - people try and cheat it quite hard.

Anyways, I didn’t want to wrap this blog post up on a sour note. Thanks to DigitalOcean, GitHub, and Twilio for sponsoring Hacktoberfest, and maybe sending me a cool T-shirt I could wear to conferences (if I ever get invited to one of course.) It’s a great event I only became aware of this year and it gives me a drive for development. Thanks to the three companies for doing something cool!

Oh, and also, good luck, PR reviewers. See you on Halloween!