TR Member Perks!

Updated Editor’s Note 11/7/2017 – In an effort to further commit to our editorial vision of quality content about nothing but games or the industry, we are leaving this note here to let you know that this article does not meet the standards of that vision as it exists today. This article may be poorly written, or it may be well-written but with charged political content, which we have stepped away from. It’s not the ideas we have a problem with, as we do not discourage any viewpoint, we are just moving away from this sort of content. This article no longer represents TechRaptor’s editorial vision today and into the future. You can read more about why we are doing this here.


Apparently Twitter has not a singular problem, but six of them, if Tadhg Kelly is to be believed.  One of the six problems is harassment, or, if you’re of Kelly’s particular ideological ilk, unorthodox thought.  In making his case, he namedrops the now infamous Randi Harper, serial Twitter abuser and “developer” of the ggautoblocker.  Kelly’s implication is ggautoblocker is a tool for preventing harassment.

We, of course, know better.

I talked about this before, but ggautoblocker is not an anti-harassment tool.  What it is designed to do is issue a passive-aggressive threat to everyone active on Twitter that, should they choose to follow people who commit crimethink, their Twitter handle could be given to professional organizations and prospective employers with the implication the Twitter user in question is a harasser.

The threat of guilt by association blacklisting is overt, per both the ggautoblocker github,and the ggautoblocker page of the “developer” herself. That might be part of the reason that the false positive rate of ggautoblocker block list members as “harassers” is 99.35% based on data from WAM in November 2014.  It could also be why ggautoblocker couldn’t prevent Tauriq Moosa from getting “harassed” off of Twitter, either.

Long story short, ggautoblocker fails all its stated requirements as an anti-harassment tool.  But what does it do, exactly.  For that, we’re going to dig into the code.

Ggautoblocker Today

To start I’m going to ignore all the unprofessional names of variables, arrays, and so on, and focus on methodology.  Using insulting names in variables and arrays gets you fired from software development organizations in the real world, so it should get talked about, but this commentary is not the place to do it.  Further, any time someone defending ggautoblocker claims it wasn’t intended to be a blacklist, remind them the name of sourcelist.txt was blacklist.txt.  Then, watch them squirm, hedge, and weasel around that fact.

The methodology of ggautoblocker is to take a base list of names contained in the text file sourcelist.txt consisting of the following:

  • Nero (Breitbart Commentator Milo Yiannopoulos)
  • FartToContinue
  • PlayDangerously (Author Mike Cernovich)
  • Roguestargamez (Indie Game Developer Slade Villena)
  • TheRalphRetort (The Ralph Retort owner Ethan Ralph)
  • RealVivianJames

Each of the names in this list is sent through a subroutine called get_followers, which does exactly as it says on the tin. So all the followers for the names in sourcelist.txt are assembled.  If a person shows up as a follower at least 2 of the names in sourcelist.txt, the names are added to one of two files, block_names.txt or shared_names.txt.

Notice ggautoblocker’s colossal design flaw.  It does not block users based on the content of their tweets; rather, it only blocks based on association.  The corollary to this is if you’re of conservative or libertarian political leanings who is routinely harassed by the army of perpetually offended authoritarian progressives on Twitter, this tool has a 100% chance of failing as written.

Defenders of autoblocker are going to say the user can always change the list of names in source_list.txt file and run the tool to create their own.  Strictly speaking, that’s true; however, association shouldn’t be the basis by which Twitter users block people or attempt to prevent their own harassment.  Further, the configuration files alienate everyone not of the authoritarian progressive slant. The message sent by autoblocker and its “developer” is simple: “If you don’t believe in anti-progress authoritarian progressive ideologies, you do not deserve relief from online harassment.”

So let’s fix it.

The Anatomy of a Tweet

Here’s an excerpt of a tweet from my Twitter timeline from a few days ago:


I got this excerpt by directing a browser to my timeline, and doing a “Save page as,” then selecting “Webpage, HTML Only” as the file type.  If someone wanted to read their Twitter feed in native html format, they can then open the file in a text editor, like Notepad.

I picked this particular excerpt for a couple of reasons.  First, this excerpt contains all the data we need for assembling a proper block list of Twitter users based exclusively on the content of their tweets.  Second, I chose this excerpt specifically so we can talk about performance a little later on.  Looking at Twitter timelines in their native format creates some huge files—my small timeline snapshot was 686KB, and I’m a bit of a Twitter hermit—that we’ll want to extract the content sections of tweets in a user’s timeline to a separate text file to increase performance.

Blocklist Methodology

Here’s how our block list tool is going to work.  First, the script takes a snapshot text file of a user’s Twitter timeline as an input and extract parts of the feed similar to the excerpt above.  Then, the script compares entries in the “p” tag against a list of user provided words and phrases that the user deems “harassing.”  The words and phrases can be anything.  The script will take the user supplied list of harassing words and phrases and compare the list to the text file excerpts

For any positive check in the “p” tag, the script gets the screen name of the person who sent the tweet. Once the script gets through all the “p” tags extracted from the original Twitter feed text file, the script provides a list of potential blocked Twitter screen names to the user for approval.  The script gives the user the opportunity to remove flagged users from the potential block list or approve the block list wholesale.

Finally, the script operates on the list of screen names and executes the blocks, cleans itself up and exits.

Voila! We’ve designed a script to create Twitter blocks exclusively on the content of what was tweeted, instead of creating a blacklist based on association with a user’s ideological enemies.

Obviously, this is not the only solution, nor the best solution.  It’s a solution, based a fair bit off of the way ggautoblocker was designed originally—in the software biz, that’s called “reuse”—with an improved methodology for creating the blocklist based on content.

Tadhg Was Right, Kinda

The fact that Twitter’s customers have to design third party scripts to do mass filtering and/or blocking highlights a major hole in functionality of the service.  On that, Kelly and I are in total agreement.  That said, if Twitter’s customers are going to have to develop their own tools to plug the functionality holes, then the tools that are created ought to actually do what their developers say they do. Ggautoblocker is not that tool, no matter how much name dropping writers like Tadhg Kelly do.

Raptors: Time to weigh in.  If you were designing a tool to prevent harassment on Twitter, how would you do it?

Todd Wohling

A long time ago on an Intellivision far, far away my gaming journey started with Lock n' Chase, Advanced Dungeons & Dragons The Cloudy Mountain, and Night Stalker. I earned both a BS-Physics and a BS-Mathematics from the University of Wisconsin-Eau Claire. Today I spend most of my time on PC. I left a career of 14 years in aerospace in Colorado, so I could immigrate to Norway.

  • John Howard

    I only need one tool to combat online harassment.

    The power button. It’s a novel concept, actually. Press it, and the ENTIRE INTERNET goes away.

  • Indeed.

  • freakcion

    Private account and mute button.
    Or just “close tab”, however your browser does it

  • Cole Pram

    Well said.

    That is the crux of the issue. People want to have a megaphone to scream at others, but don’t want others to have any ability to respond. That said, a blog won’t suffice because then there’s no one, at least fewer people, to tell you you’re right and stroke your ego.

    With twitter you’ll generally have a LOT more people that will follow you who agree with you and will tell you how awesome you are. For all the moaning they do the simple reason whiners continue to use twitter is because the people disagreeing with them is generally a minority compared to the people that stroke their egos. None the less they can’t deal with a minority of descent, everyone must agree or it’s harassment. The real kicker her is they could get around the issue by just making their accounts private. Then only the people they chose to follow will be able to respond to them.

    But that’s not what they want, and I know it seems contradiction to everything I’ve just said. What they really want though is for people to disagree with them. They want to get into arguments because they want people to call them out on their idiocy. That way they can appear to be “victims” and get attention. The real goal is to get people to stroke their heads and tell them how special they are. Otherwise a blog would be a much better fit for them.

  • I don’t understand why people still use twitter, the website is poorly designed and ill managed by the owners. Personally, wouldn’t it be better to just leave the website instead?

  • Ricardo Lima

    I want to block everyone who blocked me using that list.

  • There should be a master list (hldden for security purposes) of all the accounts using it, and everyone ON the blocklist should have the option to block everyone USING it.

    This helps cuts down on the number of Social Justice Retards passive-aggressively subtweeting or Tweeting at someone they blocked (which, if it isn’t already, should be made a violation of Twitter’s ToS). It’s cowardly as all hell.

  • Johnathon Tieman

    “Raptors: Time to weigh in. If you were designing a tool to prevent harassment on Twitter, how would you do it?”

    I’d start the same way you did – namely, pulling the text out of the tweets and basing the decision off of their content. However, I would differ in how I check the contents of the tweet. As some quickly found out, you can’t simply block anyone using, say, the GamerGate hashtag, because it lacks context. I would say probably the best thing that could be done is find a good set of tweets that are examples of what you want to block, and then train some sort of machine learning algorithm to recognize them (as the example you used above – harassing tweets), and use that as a basis to generate the block lists.

    Of course, blocking individuals as a whole is a *really* poor idea to begin with. I’ve yet to meet anyone that absolutely *nothing* they say is of any interest to me. It would be much better to simply block individual tweets rather than people, and a good machine learning algorithm could do that too.

  • Be careful not to drop that….

  • Cenobite

    First I think I would make a script called, “TheEchoChamber,” what it would do is figure out who all is subscribed to the GgAutoblocker, and offer to block them. Thus building the digital version of, “The Mending Wall.” However, I actually think I would build a better Twitter from the ground up, and then leave this one behind in it’s Ideological black hole.

  • Ricardo Lima

    For fairness if you block me I block you.