The Brogrammer’s Guide to Derailing

Soon enough, you'll have defeated all those misguided Social Justice Warriors, for the good of mankind (where mankind = brogrammers)!

by nina de jesus on June 30th, 2014


This guide is a supplement to Derailing for Dummies, a general guide to shutting up and shutting down those pesky Social Justice Warriors (SJWs). (For the purposes of this guide, you can understand ‘Social Justice Warrior’ to mean any person not a white cishet man.)

The examples used in this guide were taken from one comment thread on a Github pull request (PR) for the Django project. The pull request replaced the use of ‘master/slave’ terminology to describe database configuration, initially proposing ‘leader/follower’ as replacement terms but ultimately selecting ‘primary/replica’ based on the few useful comments in the thread.

fcurella, the SJW responsible for the PR, claimed that the justification for this was master/slave “may carry racially charged meanings to users” but discerning brogrammer and redditor, DoTheEvolution, notes that the real reason behind this change is “to appease political correctness”.

At the time of the writing, it looks like the Django maintainers have dug in their heels, despite several brogrammers deploying many of the rhetorical, derailing strategies listed in this guide. However, one should not take this as evidence that these strategies are ineffective or do not work. They do. But sometimes their impact is indirect. While it may be the case that Django is a lost cause, drowning the comments of this PR with these derails ensures SJWs understand that while they may win occasional battles, they are losing the war.

Everyone is doing it

The basic outline for this strategy looks like this:

Github comment that reads: In this case, master/slave is used by every database server, in every documentation (redis, mysql ...)

Oh my days this is silly. Master/Slave, for better or for worse, is the industry-standard terminology for this pattern, and trying to replace it with anything else impairs the transparency and readability of the documentation.

'Primary' and 'Replica' aren't especially bad choices, but they're also wrong. The correct terms are `master` and `slave`. They've been used in databases, hardware setups, server setups and god knows what else for god knows how long.

This is a much-loved and highly effective strategy. It raises the specter of standards. It is ingenious because it disguises the conservatism that motivates your actions. This appeal to ‘standards’ is actually an appeal to tradition/the status quo/etc., because no such standard actually exists.

In appealing to a non-existent standard, you set yourself up as the Authority, the expert: thus, everyone should be listening to you (and not those terribad SJWs who want to fragment standards and ruin tech for everyone)

It also allows for a corollary derailing tactic: moving the goal posts. If, perchance, someone were to point out that the last comment says ‘for god knows how long’ of an industry/technology that is maybe fourty or so years old, rendering the statement hyperbolic at best, you can simply shift the goal posts. Perhaps to “the transparency and readability of the documentation” as proposed in the second comment.

What was that sound you just heard? The whooshing of a goal post moving. And (the sweeter sound of) the agonized tears of the SJW you’ve just ruined with your derail.

Good job!


This is a fairly simply strategy to deploy, recommended for brogrammers who are too busy doing Real Tech Work to bother with using a more subtle or thought intensive derail. Consequently this is a fairly common tactic, which is also one of its strengths: the more people who use it, the better it works.

The way it functions is by creating so much noise that it becomes difficult to actually ascertain or find any genuine attempts to discuss or engage the topic. It renders the discussion trivial by drowning it in comments with zero substance or importance.

Here are some examples:

The 'master' branch should be renamed too.

'Leader' and 'follower' have opressing and non-tolerant semantics for me, rising bad memories from my bullied childhood. Please revert.

Is that a real life?.

I just changed the replica servo on my breaks yesterday.

But leader and follower is so much discriminating the followers of some leaders! They both should be 'equal', that would not be discriminating!

There are many more such comments in the thread (good job on effectively and collectively deploying this strategy!). Who knew we could be so clever and terrifically funny? And people say we have no sense of humour. You sure showed them!

I don’t know about you, but I’m incredibly happy to see that there are so many busy, important brogrammers busily creating software and tech that is changing and improving the world in Real Ways.

God bless America.

Who called the PC Police?

‘Political correctness’ is practically like air for SJWs, so depriving them of it is a sure-fire way to put out the fires they like to start with their endless bleating about “you need to treat other people like human beings”, “respecting people involves using language that isn’t violent or hateful”, or other ridiculous notions they use to disguise their true desire for everyone to be politically correct.

The great thing is that ‘political correctness’ has become a four letter word, making this tactic ridiculously easy to deploy: any time you see a SJW talking about how to use language in ways that demonstrate your respect for all living people, call them the “PC Police”. You literally do not have to do anything else, simply labeling them and the discussion as ‘PC’ will win you allies and friends while reducing their support base.

Here are some examples:

This is a matter of egregious political correctness that serves no real purpose in moving tech forward.

I don't know how the terms master and slave, or even slavery itself, are 'racially charged'. But whether they are 'racially charged' or not, it is sad to see a such an awesome project take any decision at all based on political correctness.

Why does this work? Particularly in a situation like this, where the discussion largely involves the descendants of enslaved Africans, calling them the ‘police’ (or implying it as above) does a great job of shutting down the discussion because of the Black community’s ongoing targeting and oppression by the actual police. So equating them (and most marginalized people) with a pseudo-military group who spends their time harassing, attacking, and otherwise harming their community is a super effective way to trigger this history of community trauma by telling them they are just as bad as the people who oppress them.

Clever trick, isn’t it?

Slippery slope is slippery

This is actually a tough tactic to use correctly. Mainly because the ‘slippery slope’ is a logical fallacy. However, because you are amongst the most rational and logical group of people to have ever existed, you obviously know that invoking a fallacy in your argument leaves it wide open to attack from SJWs.

Here is a bad example of how to use this derail:

The new terminology makes sense, sure, but it's absurd to suggest that this change ever needed to be made. Are 'whitelist' and 'blacklist' racially chareged now, because white = allowed and black = disallowed? Is the term 'penetration testing' as used in information security actually sexual innuendo? I have never in my personal experience seen someone be offended or shocked by seeing the word 'slave' when referring to data storage. The word 'slave' itself does not suggest racism or oppression in any way, just as 'blacklist' doesn't. 'Daemon' does not promote Satanism. 'FAT32' is not insensitive towards overweight people. This is a slippery slope. Django is also just one project in a huge ecosystem; changing terminology when there's no need to (increased clarity or reduced ambiguity) is pointless.

Word of advice, if you are going to invoke a logical fallacy in your argument, it is best to not actually name the logical fallacy (or derail). You’ve made your derail too easy to dismiss by anyone with even the slightest understanding of logic and/or rhetoric.

Fortunately, there are some more effective examples in the thread too:

Why changing only one term? Let's rewrite the whole project into newspeak!.

I propose that we replace `color: black` in CSS with `ethnicity: african-american`, because very offensive.

Sure. Also, I suggest to replace `kill` command with `stop-please`, because it's propaganda of violence.

See? Much better. Why are these successful, but the first is not? Primarily because they also deploy the LOL strategy as a way to disguise their slippery slope fallacy as a reductio ad absurdum argument.

Reductio ad absurdum is a logical/rhetorical way of discrediting someone’s argument by demonstrating that their premises (or conclusion) entail a contradiction (this is the ‘absurdity’). However, because we also know that because SJWs aren’t capable of true rational thought (they only mimic it), they can often be confused by a slippery slope fallacy mixed with some LOL, since many of them will not realize that ‘absurdum’ doesn’t actually mean any silly or absurd conclusion.

More Important Things

This derailing tactic is fairly straightforward, all you do is simply point out that this (and ‘this’ can be anything) is a waste of time. Bonus points go to the brogrammers who also directly or indirectly assert that there are more important things to do.


HAHAHAHA!!! Couldn't agree more. This is a complete waste of time. Go solve real problems instead of whining about words.

This is really eye-opening as to what the devs spend their time on nowadays.

Hipster and wannabe programmers (AKA Web devs) only want this change. This is absolutely pointless and messes up everyone's code. Fix some actual problems. Changing some terms won't make the world a better place.

This derail works by frustrating anyone with any sensitivity to cognitive dissonance. Consider the first example: in it, the person asserts that it is a waste of time and that people should ‘go solve real problems instead of whining about words’…

Except, that is exactly what is happening. Not only are they apparently not solving a real problem (if the trivial change is trivial, then the change isn’t an actual problem) but they are also, wait for it, whining about words since the current discussion is about a change in terminology. That they are whining about. It is like a recursive derail.

I know you may not quite perceive the cognitive dissonance at play here because, of your many virtues, a near insensitivity to cognitive dissonance is one of your greatest assets. But SJWs are often fatally sensitive to it. Thus, upon reading a statement like this, they’ll:

  1. Scream in frustration.
  2. Get stuck on an infinite loop, very much like an android faced with a logical contradiction, and their heads will explode.
  3. Dissolve into a puddle of goo.
  4. all of the above.

Only the most skillful masters of cognitive dissonance will be able to achieve (4), so be sure to hone your skills by practicing as often as you can.

The Lasting Delight of Vacuums

One of the pseudo-academic goobledygook words that SJWs are constantly bleating on about is ‘context’. This nebulous concept is simply something that SJWs like to invoke to confuse people into buying into their irrational notions. Context, they’ll insist, is necessary for understanding certain social issues or whatever.

Thus, this derailing tactic works by pretending that you exist in an atemporal vacuum. Fortunately for us, this isn’t a difficult perspective to embody, since many of you are white cishet men and thus, have the entire world validating your position as default human. And as default human, you don’t actually have any need or use for context. Whatever you say is the word of god, and that is that.

Here are some examples:

Equality among humans is not the rule, it is the exception, it took us until recent history to make this vital distinction simply because it is human nature to classify things. There is nothing bigoted about declaring lifeless, unfeeling inanimate objects superior or inferior to each other.

Marvelous, is it not? However, these aren’t actually the best examples of the vacuum derail. The best examples are the ones that make facile appeal to context.

To illustrate:

If people feel uncomfortable because they can't make the distinction in context, then that's their problem.

The meaning of a word is defined by its use, by the context.

It's of course inappropriate to use 'master', 'slave' in reference to any living beings, We've tried that many times and it always ended as a sad story. It looks, in computer science 'master' and 'slave' terms finally found ground where they can be used without any harm, in right, prefect sense from both logical and philosophical view. It's seems stupid to say that they're not welcome here either.

These are clever and subtle examples of this tactic because they actually appeal to context. Except that the context named here is extremely narrow and limited in scope. These three examples note that within a programming/database environment ‘slave/master’ carry no racial meanings, thus the usage is correct. But you know, as well as I do, that this tactic tacitly requires that you live in a larger socio-political/historical vacuum.

Aren’t vacuums delightful?

Coder by day, historian* by night

*Note: this can be exchanged for whatever domain of knowledge you need to appear authoritative on a topic you are clearly ignorant about.

In many ways, this derailing tactic is similar to the vacuum strategy. However, instead of asserting that there is no context, it asserts that a context exists, but that you know or understand it the best. No really, you do, you probably teach a class at Harvard about it. So SJWs best STFU and listen to you, or else!

Some examples:

What confuses me is this one-sided focus on a (relatively) smnall component of the history of human slavery. Human slavery and trafficking did not begin with the United States, and it certainly didn't end with us. Similarly, Africans were not the only targets of slavery. In fact, the very etymology of the word 'slave' derives from the capture and subsequent enslavement of the slavic people.

Except I don't think that many users of Django are or have been slaves. If we are to take this specific cultural context of the United States where slavery has a racial connotation, it has been aboloished too long ago for a former slave in the US to be even alive today. Why would someone be upset about a thing that didn't directly affect them?

The colour white was considered pure eons earlier than our Western civilization even started. Just because of the fact that everything can be seen on it during the day. Black or dark was the colour of night and thus the time of robbers, villains and dangerous animals. The colours had no racist meaning as they were probably used in Africa for the first time anyway.

Isn’t it amazing that you make the best historian, on top of being a most excellent coder? Is there any limit to your skills and knowledge? Such majesty.

The most effective ways to engage this tactic is to cherry pick facts. As the saying goes: the best lies contain a grain of truth. It is also crucially important that you don’t, in actual fact, know anything about history (or whatever domain of discourse) and have zero intention of ever learning about it.

Remember: you are the majestic, brave brogrammer. If you say it, it is true. If it isn’t already reality, it will soon become so.

Ur crazy!

This should only be considered a strategy of the last resort. Or if you really don’t have time to engage in the issue in any actual substantive fashion. Even so, if you are strapped for time, you really ought to aim for the LOL strategy (note how some of the best examples of that derail were quick one liners).

Here are ways to engage this tactic in a straightforward fashion:

This is a horrible insanity.

People that may be offended by seeing or typing those words are sick and must be cured. They definitely have a psychological disorder.

Now, some SJWs might insist that these are actually ad hominem fallacies, but they’d be wrong because they are incapable of rational thought.

If you are feeling up to it, however, you can take a more subtle approach:

If anyone feels alienated or offended by the use of terms master/slave, it can mean exactly two things: either you're a slave database, who dislikes being one; or you yourself use those terms wrongfully in an alienating and offensive way. As the latter is much more likely to be true: stop it. Now. Taking a term out of its context and using it as an offensive one says nothing of the term, but everything about the person using that term.

We should take a moment to admire the sheer elegance of this supremely logical and rational argument. Imagine how silly SJWs feel for not knowing this obvious truth about the world? Well, they should feel silly.

Keen SJWs who’ve learned to mimic the rational thought of their superiors (eg you) might point out that this comment invokes a false dilemma, but don’t pay any attention to their poor attempts to logic. Even if they learn the words, they rarely (if ever) understand them. Much like parrots.

In any case, the point of this derail is to demonstrate your superiority by refusing to engage in the substance of the SJW’s argument by simply attacking their person. This is why this is the most expedient (but also easiest to dismiss) derailing tactic. Since you are super busy and important, you don’t even have to read, consider, or think about the topic at hand. Simply drop in with a ‘lol, ur crazy!’ and zip out to your full and joyful life. Like the LOL tactic, this is best deployed by as many people as possible.


Phew! That was a lot of material to go through. Don’t worry if you don’t remember them all. Hold onto this guide and consult it periodically. Practice each of the tactics as frequently as you can.

Once you are comfortable with each, you can move on to more advanced tactics by combining two or more of the derails in a single comment!

Soon enough, you’ll have defeated all those misguided Social Justice Warriors, for the good of mankind (where mankind = brogrammers)!