Reply to Rev. Dr. John C. Dorhauer regarding white privilege

To the honorable Reverend,

Privilege comes in many forms. As a person of the cloth, you have privileges that I, as an atheist, will never have. Yet I don’t see you acknowledging your Christian privilege. Instead you are going on about “white privilege” without realizing what privilege actually is. Given that whites are leaving the church at a far, far higher rate than blacks, I have to question your motives for writing an open letter regarding “white privilege”.

Again privilege comes in many forms. But like racism, the word “privilege” is starting to lose its meaning because of how much it is being thrown around. Anyone wanting to call attention to a perceived disadvantage tends to throw around that word. Yet I’ve yet to see an atheist emphasize the word “privilege” when it comes to Christianity. The concept is perfectly valid there and brings to light another common social justice term: intersectionality.

Privilege can certainly be hard to see, since you are not seeing the privilege you have being a Christian. But it is not defined by what doesn’t happen to you. It is defined by the groups to which you belong, either de facto or not. For example I have various privileges by being a licensed driver, a member of Phi Theta Kappa, and a permitted carrier of a concealed weapon. Do I have various privileges for being “white”? That’s a little harder to defend, in part because the commonly-cited examples of “white privilege”, some of which you’ve reproduced in your letter, have alternate explanations that are just as plausible. So if you are going to declare that the only reason those particular examples occur is “white privilege”, you have your work cut out for you defending them — and you didn’t even do any leg work in that direction.

But before I get into your examples, let’s for a moment reflect on Christian privilege since it calls into view one concept that seems to escape a ton of people: tribalism. Obviously being a member of a group will afford you privileges from that group that you will not have with others. One of which is trust before question — by that I mean that a black person is more likely to be trusted by other blacks without having his or her motives questioned, and the same with a white person with regard to other whites. A black person is more likely to be hesitant to trust whites, and whites are more likely to be hesitant in trusting blacks. While not universals, they are true in the general sense of things.

Christians are more likely to trust other Christians, even after egregious wrongs on the part of a Christian have been discovered — case in point: Josh Duggar. Atheists are also more likely to trust other atheists before they trust other Christians. The reasons on this actually play into the discussions on “white privilege” yet are rarely discussed: how have these groups interacted in the past and present?

With regard to racial inequalities, the past is the focus more than the present, as the past has details that are far, far more applicable. So with that out of the way, let’s get into your examples.

We aren’t getting arrested at four times our population rate.

There are multiple reasons blacks are arrested at a far, far higher rate than whites. For one, they are committing far more crimes. While many assert that blacks and whites commit the same number of crimes, that still doesn’t fare well for blacks because it still means that blacks commit crimes at a far higher rate than whites. I’ve seen comments saying that whites are more likely to get away with crimes than blacks, yet there is no way to prove that statement as far as I’m aware.

And to quote the late Christopher Hitchens, “That which can be asserted without evidence, can be dismissed without evidence.” That is one of the reasons many whites find the concept of “white privilege” to be problematic at best. It is asserted without evidence that supports the “white privilege” hypothesis to the exclusion of all other explanations. Same with the concept of “male privilege”. Actually, no, “male privilege” is absolutely abhorrent as a concept because it is asserted in the face of contradictory evidence. And to a degree, so is “white privilege”.

But getting back to the arrest rate, there are some striking numbers that the FBI has available. For 2013, the FBI notes that blacks and whites committed roughly about the same number of homicides. And blacks killed far more whites than whites killed blacks, and blacks are killing each other more than whites are killing each other. A black man is far more likely to kill another someone than a white man. And with other crimes, the numbers paint a similar story: they are far more likely to commit crimes than whites.

That is why they are being arrested at a far higher rate.

We aren’t being followed when walking through a department store wearing a sweat shirt with a hood.

I’m going to take a wild guess and say you’ve never worked in a retail establishment. This happens to both whites and blacks. If it happens to blacks more, the rational explanation is the greater likelihood of wearing hoodies, while a complementary notion is, as noted above, the greater likelihood to commit crimes.

If blacks were to not commit crimes at nearly the rate they do, we wouldn’t have a reason to be suspicious. But I’ll invite you to conduct an experiment. Walk through one retail establishment dressed as you would as a pastor and gauge the reception. Then dress in loosely-fitting jeans that barely hold onto your waist and a hoodie — bonus points: do this in the middle of summer on a hot day — and then gauge the reception. I guarantee you that you’ll be carefully monitored, possibly even followed, through the establishment, especially if you don’t have a cart or basket and are giving the general impression that you aren’t there to actually buy something.

How do I know this is how you’ll be received? Because it is how I’ve been received in the past when I’ve walked through retail establishments wearing a hoodie. And it’s how I’ve received others when I worked in retail back in 1998 and 1999.

Real estate agencies didn’t write codes, rules and laws that kept us out of the high rent districts and middle class neighborhoods.

And a lot of those laws forced segregation on those who didn’t want to practice it. Conditional deeds were written as well that prevented the deed from being transferred to certain individuals — those conditions are now basically null and void, but they once existed with the full force of a contract.

But remember what I said previously about tribalism? The one notion on this that many forget is that even when segregation was not legally enforced, it still occurred voluntarily. Blacks congregated in neighborhoods with other blacks, and whites did the same. There are numerous reasons behind this, but to cite “white privilege” as the reason is a stretch, to say the least.

Property values don’t go down when more than 10 percent of our neighborhood is saturated with people of our race.

And where are properties being devalued when more than 10% of a predominantly white neighborhood is black? Plus if whites tried to move into a predominantly black neighborhood in large numbers, we’d be accused of trying to displace blacks and force them out. I think you’ve forgotten that racism can and does occur by blacks against whites.

Our children aren’t sitting in classrooms with teachers who are likely not to have even a minor degree in the courses they are teaching.

Actually yes they are.

I graduated from Peru State College in Peru, Nebraska. If you look up that school’s history, you’ll find that it originated as a seminary and normal school. “Normal school” is an old term for what we now call a “teaching college”. In other words, they churn out public and private school teachers. Peru State College today is comprised of three schools: Education, Arts and Sciences, and Business. I graduated from the Peru State’s business school, but many of my friends and former acquaintances graduated from their Education school. To the best of my knowledge, none of them minored or placed any elective emphasis on what they now teach — especially since several are primary school teachers, meaning they teach the entire curriculum (English, math, science, social studies, etc.) minus a couple subjects.

There is no requirement that secondary school teachers actually have degrees, major or minor, in the subjects they teach. As such, you are very likely to have teachers who did not earn a degree in those subjects. Your high school algebra teacher had enough of a familiarity with algebra to teach the curriculum coherently, but it would be rare to have such a teacher also have a degree in mathematics, and rarer still for them to have a PhD in the subject they taught. In fact throughout high school and middle school, I never once had an instructor with a PhD, and I’d be surprised if any of them actually majored or minored in the subjects they taught.

Young white men are not being gunned down by black police officers in epidemic numbers.

Define “epidemic”.

While the occurrence of white officers killing black individuals is garnering significant attention, I have little reason to consider its prevalence to be as significant as the press portrays. At the same time, given the lack of press coverage, it’d make one think that whites aren’t being killed by police officers at all, especially killed by black police officers. But it does happen.

The question is why. Here’s a complementary question: what causes a police officer to open fire on a suspect or detainee? Contrary to what seems to be a popular notion, white officers aren’t shooting and killing black detainees and suspects because they are black. Instead it has less to do with race, and more to do with how blacks interact with police, as I noted in another article responding to the idea that Michael Brown would not have been killed if he was white:

But as the evidence demonstrates, Brown did not obey the officer. He attacked the officer. He gave the officer reason to fear for his life. That is why Brown died that day. It is not because he was black. It’s because he attacked the officer. In confrontations with police, you will likely lose. Whether it’s your freedom or your life, you will very likely lose.

In virtually all cases where a person died at the hands of police, excluding cases where misconduct on the part of the officer was demonstrated, the death occurred because the decedent gave the officer justifiable and demonstrable reason to fear for his life or safety or the life or safety of others. That is it. Is that “white privilege”? Hardly.

Instead it comes down to another problem that sorely needs to be addressed that I also pointed out in the above-noted article:

The fact that blacks are statistically far more likely than whites to be arrested, convicted and jailed for longer sentences also leads them to have a far lesser trust of authority, especially the police. Trust for police among blacks is much lower than among whites, and contacts by police with black individuals are more likely to be confrontational. Add into this the fact that encounters by white officers with black individuals are painted heavily with the “racist” brush, and it becomes a powder keg.

But what happens when a black person is calm and cool with a white officer? Everything right, as one black National Guardsman discussed in a video he made shortly after the officer ended the stop.

Our churches aren’t being burned to the ground, nor or our church members in danger of being gunned down in prayer meetings.

That isn’t “white privilege”. That is just pure racism.

We are not saying to ourselves as part of a white man’s code of conduct that when a police car drives by us without pulling us over even though we are exceeding the speed limit something like: “Well, once again I didn’t get pulled over because I’m white.”

First, a police officer will almost never pull you over for speeding while driving behind you. Because of inconsistencies in speedometers on vehicles, a police officer knows they cannot rely on their speedometer to gauge how fast you are going. It’s a ticket that is very easy to challenge in Court. That is why officers pulling you over for speeding will do so while they are stationary.

But even then, you are actually quite unlikely to get pulled over for speeding, period, whether you are white or black. If you’re following the traffic pattern, even if that traffic pattern is exceeding the speed limit, you’re not going to get pulled over. There is actually a conflict in our traffic laws that explains this.

While you have an obligation under the law to obey the speed limit, you cannot inhibit the flow of traffic doing so. If you were pulled over for speeding but otherwise following the traffic pattern, you can raise the defense in Court that to follow the speed limit would require inhibiting the flow of traffic — i.e. the circumstances meant you could not obey both laws, that either would’ve been violated. I’ve seen police pull over people here in Kansas City for inhibiting the flow of traffic. You will also be pulled over if you are speeding and have other apparent violations such as expired plates.

Instead the ones who get pulled over are the ones who are not following any particular traffic pattern. For example in March 2010, I was pulled over for speeding along US Highway 71 southbound north of Gregory Blvd, speed limit 45. The intersection north of where I was pulled over has a traffic light, and I was the first off the light, and I got out ahead of everyone else, and when pulled over, I was clocked at 57. But because I was “leading the pack” off a traffic light, I could not claim I was following the traffic pattern.

But I know what you are alleging here is “racial profiling”, that blacks get pulled over for arbitrary reasons or minor traffic infractions simply because they are black. And while that might be true, it’s difficult to prove. Data is not the plural of anecdote.

Some of what you then attempt to assert seems nonsensical.

We are not saying to ourselves when our child didn’t get her college application rejected with a questionable GPA something like: “Well, thank God she’s white and that her mother graduated from that school 25 years ago.”

Define “questionable GPA”? And it’s well known that colleges and universities will accept students from prominent alumni and donors. Those coming from military families and those with military experience are more likely to be appointed to the various military academies — Senator John McCain, for example.

So let’s cut through the crap on this one. If you meet all the requirements for admissions to a college and university, then whether you are admitted or not will be based on your perceived chance of graduation based on the major you are targeting. Because colleges and universities do not want to admit students with a high likelihood of dropping out or transferring — especially given that approximately 2 in 5 students at 4-year schools do drop out for one reason or another.

For a while, yes, colleges and universities did practice racial profiling in their admissions processes. But the change to this has led to a different effect. Now when a black student is accepted with a questionable GPA from a questionable part of the country, that student’s peers may conclude the student is there only to fill some quota and may cause the student to think they didn’t actually earn their seat at that college or university. Meanwhile when a white student with a stellar GPA and student record is denied admissions to a prominent college or university, the automatic conclusion, which has been demonstrated in a few prominent cases, is that it is due to affirmative action policies in place.

Civil rights advocates make the claim that these reverse-prejudicial policies are necessary to guarantee blacks a place in society. Yet if one were to call on Howard University to make more room for whites and to proactively seek out whites for admission, there’d likely be a massive uproar.

We are not saying to ourselves when the prosecutor reduces our son’s charges from aggravated assault to loitering and sets him free with a small fine and time served: “Wow, that white prosecutor made sure my white son got a break that the black man who got convicted of that crime last week didn’t get.”

See my previous about blacks being less trustworthy of authority.

While true that blacks do get it worse in the system, you still have to look at individual cases, as that provides the reason why blacks tend to have it worse. Charges are not reduced for the hell of it. A prosecutor isn’t going to go for lesser charges when they have clear evidence of greater charges, and often what a prosecutor offers is what they know they can prove in Court and was never actually intending to seek the greater charges anyway.

What you are implying, though, is that prosecutors only offer plea deals to whites. And that is not true. Plea deals are offered to lighten the workload. Prosecutors are people too, so they’ll offer deals on charges based on the evidence just to make a case go away quickly. It saves them time, it saves the Courts time, and it saves the taxpayers money. But here’s the question to ask: are plea deals more likely to be offered to whites than blacks, or more likely to be accepted by whites than blacks?

Given some of what I’ve seen written by public defenders (anonymously, mostly), I think the entire process is more likely to be smartly navigated by whites than blacks, from the initial detention and arrest up to the point where they meet their lawyer. That is why it is imperative that blacks learn their rights and how to confidently and calmly assert them.

But is that “white privilege”? Nope.

The journey to seeing and understanding the pernicious consequences of privilege includes the harder work of seeing what isn’t there to be seen.

I have started practicing this as a discipline.

Looking at what you wrote following this, you’ve been lying to yourself, and you’ve made yourself significantly more arrogant in the process.

The clerk at the gas station didn’t “feel comfortable” greeting you with a smile because you are white. She likely greets everyone like that who does not immediately give her reason to not. Stand around the shop for longer than it takes to get your receipt and you’ll see that. I see it all the time at the several convenience stores I’ve patroned, in several different parts of the Kansas City metro.

The highway patrolman didn’t let you off without a ticket because you were white. Without knowing how fast you were going compared to the speed limit, I’m going to say you were going less than 10 under the limit and the officer’s initial reasonable suspicion for pulling you over — outside clocking you over the limit — was not confirmed upon closer examination. As such, he let you go without a ticket merely because you cooperated. When I was pulled over for a blown headlight, I was let go with a warning as well because I cooperated with the police. If I’d become belligerent in any way, I would’ve been there a bit longer, and probably would’ve gotten written up for the headlight as well.

And obviously we would expect you to not be detained at a border checkpoint if you’re a white person driving alone! But if you were a black person driving alone, you also would not have been detained! Good fucking God have you become dense… If you had passengers, they probably would’ve detained you long enough to ascertain the ethnicity of anyone else in the car. If they had any reason to suspect any of them were undocumented immigrants, you would’ve been detained longer.

I don’t know in the end if any of those were in fact true statements. That isn’t the point of this exercise. The point is to create a consciousness from which I can no longer let myself escape.

Then why are you telling yourself they are true? You are lying to yourself, creating a false consciousness in which you will trap yourself. These thoughts are thoughts similar to white supremacy. I am treated better because I’m white, therefore I must be better because I’m white. You really need to break out of your little box.

I can notice, and still be happy and content with the privilege I am afforded.

Except you aren’t being afforded any privilege. If you look deeper at things, look beyond the color of your skin, then you’ll see specifically that you were treated a particular way simply because that is actually our default. We want to treat others kindly and give them the benefit of the doubt unless we have reason to not.

As such, I will be refusing your invitation.

I will not pretend that the entire world is somehow working in my favor because I’m white and against others because they are not. I will look at alleged problems critically and examine them closely instead of jumping to racially-motivated conclusions as you have done. If a black person is treated poorly by the police, I will look at the details of the encounter, not conclude automatically it was entirely racially motivated, as you are now doing.

If you want to do as Jesus has said, that all with eyes and the ability to use them should actually see what is around them, then actually look with those eyes and think critically about what you are seeing instead of coming to some rather vapid conclusions. Michael Brown wasn’t shot because he was black, but because he accosted a police officer. Trayvon Martin wasn’t racially profiled, but assaulted Zimmerman in such a way that Zimmerman felt his life was in danger.

And you weren’t let off with a warning or greeted with a smile because you are white, but because you gave no reason to be treated differently. That is what this all boils down to. Treat others as you would want to be treated. I believe that is another tenet that Jesus preached, if I recall correctly.

The golden rule.

At the same time, don’t look around and draw conclusions that someone being treated differently than you is merely because they are different as opposed to acting different. How you act toward others affects how others act toward you. That is something I was taught in school, alongside my black and Hispanic classmates. Perhaps it is something you need to relearn as well, Reverend, instead of teaching your students they are only treated better because they are white as opposed to being treated better because they have not given others reason to be treated differently.

When Martin Luther King, Jr., said that he dreamed of a day when his children “will not be judged by the color of their skin but by the content of their character”, it is to what I have said that he is speaking. That if someone is treated differently it is because of how they acted toward others, not the color of their skin.

Again, something you need to relearn, Reverend, and I invite you to do so.

Questioning heroism

In general to be called a “hero”, you must do something heroic. This means that donning a particular uniform doesn’t make you a hero by default. I don’t care if you’re a law enforcement officer, EMT, nurse, physician, fire fighter, or military personnel. You are not a hero if you haven’t done anything heroic. I mean if all you did in the military was repair vehicles or cook meals, you’re not a hero. Sorry to break it to you.

This also leaves open to questioning whether someone is actually a hero. I’m talking, of course, about Senator John McCain and the recent comments from Donald Trump calling into question whether McCain was actually a war hero: “He’s not a war hero. He’s a war hero because he was captured. I like people who weren’t captured.”

Everyone is up in arms, demanding that Trump apologize. Governor Rick Perry said that Trump’s comments made him “unfit to serve as President” while insinuating that he also insulted virtually every veteran living and passed:

Donald Trump should apologize immediately for attacking Senator McCain and all veterans who have protected and served our country. As a veteran and an American, I respect Sen. McCain because he volunteered to serve his country. I cannot say the same of Mr. Trump. His comments have reached a new low in American politics. His attack on veterans makes him unfit to be commander in chief of the U.S. Armed Forces, and he should immediately withdraw from the race for president.

Rick Perry served in the United States Air Force as a commissioned officer from 1972 to 1977, leaving at the rank of Captain (O-3), but never served in Vietnam. John McCain graduated from the United States Naval and Marine Corps Academy in Annapolis and served as an airwing commander during Vietnam. His father and grandfather both also served in the United States Navy, both achieving the rank of Admiral (O-10). Senator McCain would leave the Navy at the rank of Captain (O-6), as his injuries would impair his military duty and ability to maintain minimum requirements for continued service.

Among his awards is the Silver Star and Bronze Star, both of which are awarded for bravery. But the most cited attribute of his military service is his POW status during the Vietnam conflict. It is to this that Trump was speaking when calling McCain’s status as a “war hero” into question.

McCain’s Silver and Bronze Stars mean he had to have done something exceptional during his military service. But the Bronze Star can be awarded for merit or bravery, so a person being awarded the Bronze Star doesn’t mean they did something heroic. That is certainly the typical assumption. McCain’s Silver Star does mean he was considered a fighter ace — having five or more confirmed kills while in the air — and did something considered gallant.

But does that mean he was a “war hero”? That depends on when he earned his Silver and Bronze Star medals and, more importantly, why. Three instances of the Bronze Star, plus his Silver Star, were awarded for actions that occurred while he was a prisoner of war. Did he actually do anything exceptional or heroic during his five and a half years in captivity?

But the bigger question comes down to this: why the backlash for even asking that question?

Questioning someone’s status as a “hero” I feel is about the civil religion of patriotism. They need their heroes, just as the pious need their saints and martyrs. So when someone is declared a saint, or called “blessed” like the late Mother Theresa, anyone calling that status into question is treated as a pariah. The same with “heroes”. Seth Andrews, notable atheist speaker and host of the podcast “The Thinking Atheist”, said this during a recent speech he called “The Mother of Bad Ideas“:

Who’s another hero embraced by millions, above reproach or criticism? I’ve got one. After all who could ever say an unkind word about Mother Theresa. [Audience goes dead silent] You feel that? The reaction is kind of a physical one when you say it to some people. You mention Mother Theresa and you look like you’re about to say an unkind or, sort of an unpraising word, and the chin goes up and, “Whoa, nuh uh. Stop right there. That’s Mother Theresa you’re talking about.”

Indeed Mother Theresa’s legacy goes entirely without question, though it should absolutely be questioned as there are facts in evidence about her that are readily ignored by the vast, vast majority of the world.

There is nothing wrong with calling into question anyone’s status as a “hero”. What we must avoid is the acceptance without question that someone is a hero either because they served in the military, or as a fire fighter or EMT or law enforcement officer. The uniform does not make the hero. Actions do. And actions can be questioned at any time for any reason, and evidence can be demanded at any time to justify a person being called a “hero”.

John McCain’s “war hero” status, however earned, is not above reproach. No person’s “war hero” status is above reproach once bestowed, and may be revoked at any time if it is discovered they did not actually do anything heroic. As such, Donald Trump is well within his right to openly question John McCain’s status as a “war hero”, and to openly declare that he is not one or to demand explanation for how McCain earned the awards that provide his “war hero” status.

But to respond to Trump’s request with the insinuation that he’s insulted all veterans implies that all veterans are heroes (they’re not) and, thus, above reproach (again, they’re not). And that is the attitude that needs to be snuffed out. Questioning one veteran’s status as a “war hero” does not call into question every “war hero”. But given how this country tends to react when it is discovered someone is guilty of “stolen valor”, it should never been seen as unreasonable to call someone’s valor into question and have them produce evidence that such valor was actually earned.

How do we know that John McCain is a “war hero”? How do we know that everyone labeled a “war hero” is actually one? We can’t. But asking the question is not an insult to veterans, but something every person should do. “Oh you earned the Silver Star? What did you do for it?” If you have a Silver Star and your reaction to that question is to feel angry or insulted, you have the problem. If your reaction is to question my patriotism or act like you don’t have to answer that question (which you’re not exactly under any obligation to do so), then you have the problem.

But if you’re going to wear that ribbon and be called a “war hero” for it (regardless of whether you adopt the label or not), I have full right to question whether that label is justified.

Now certainly Trump is acting out of ignorance with his statements. Perhaps if he learned of McCain’s decorations as a naval officer, and how he earned them, he might change his tune. That still does not justify implying that Trump has somehow insulted all veterans, and does not justify implying that all veterans are heroes, and that McCain’s service in the Navy is above reproach.

ASRock BTC Pro Kit

BTC PRO Kit-1

In building out a large project to put some spare hardware back into some kind of use, I purchased this as part of an experiment to connect graphics cards to an old mainboard — specifically a GTX 660 into a mainboard with an nForce 500 SLI chipset, which is PCI-Express 1.0a, by the way. I’m not using this for mining, but distributed computing projects (i.e. BOINC, Folding@Home and the like).

And the kit worked as advertised.

A few things to keep in mind, though. First this operates off standard SATA III cables. The two that come with the kit are relatively short and flat. They’re about the same length as the ones that typically come with a mainboard, the ones you probably swap out not long after building your system because those cables are difficult to manage because they’re stiff and flat.

So you can substitute these for longer, more flexible cables if you want, but make sure that the cables you use are the exact same physical length. I had some problems initially switching cables until I realized the two cables I used had a length difference of about an inch. Sounds like that shouldn’t be a huge problem, but bear in mind that both cables are needed for the mainboard to properly communicate with the card, and the card is typically plugged directly into the slot.

Second, the power cable for this is non-standard. If you have the necessary electronics knowledge you can probably figure out which of the pins on the power cable corresponds to which voltage to have a different kind of power running to it if you desire, but for what I had planned that was a deal breaker.

Instead I’ve switched over to a USB 3.0-based PCI-Express extender for several reasons. The primary reason is that the extender I chose powers the end of the board that takes the expansion card with a standard 4-pin Molex connector, meaning it can be directly connected to a power supply instead of needing a power cable to be run from the 1x insert to the 16x card.

This worked as a proof of concept, though, and it’s worth recommending, especially since it has an actual brand name to it instead of being something generic branded like the USB 3.0 kit I bought.

Note: Image at top copyright ASRock, Inc. Used under “fair use” in accordance with 17 USC § 107 for the purposes of commentary and criticism.

Building a Minecraft server

As I mentioned in a previous article, I decided to co-opt the original game server to use for distributed computing projects. This will actually work out for the better. The co-opted computer has a slightly faster processor at a lower wattage, but less memory on the mainboard.

But I still had my wife’s original X2 mainboard and processor sitting around unused, so I built her a Minecraft server using that instead.

Specifications:

  • AMD Athlon 64 X2 3800+
  • Abit KN9 Ultra
  • 4 GB DDR2 memory
  • SeaSonic SS-250SU power supply
  • ADATA Premier SP600 64GB solid state drive (Model no. ASP600S3-64GM-C)
  • Radeon HD5430 graphics card

It’s a slower processor, but the memory will be more important than the processor speed for this. It’s still only a dual core processor, but the machine will be single purpose. In the Minecraft server testing that my wife did before I co-opted the original for experimentation, she didn’t see any performance concerns — no lag or anything of that sort. But given that her friends will be using this as well, the memory will become the concern on this, so I want to eliminate it as a potential problem.

It’ll be a 64-bit version of Linux with a 64-bit Java runtime environment going onto this, so it should be able to make use of all of 4GB.

The chassis is the same as before: PlinkUSA IPC-G252S 2U chassis. I didn’t see a compelling reason to go with anything else. It can support a full-size ATX mainboard, and I like the internal temperature monitoring — I’m not going to be using its “intelligent” fan controller though as I may want to undervolt the fans to keep them quiet.

Speaking of the fans, I went with NoiseBlocker on this instead of Noctua. The two 60mm fans that came with the chassis were replaced with NoiseBlocker BlackSilent Pro PR-2 fans while adding an M8-S2 for the 5¼” drive bays.

For CPU cooling, I’m again using the Noctua NH-L9A since I love how it’s performing with the distributed computing machine. Sure the processor is rated at a higher wattage, but it won’t be under nearly the same stress levels, and the case will have plenty of incoming airflow to keep temperatures under control. And I’m using the better performing IC Diamond thermal compound.

And yes, I’m putting a SATA III solid-state drive into a computer with a SATA II controller. But given the specifications of the drive, this won’t be much of a constriction on its performance: it’s listed with a sequential read speed of 360 MB/s (2.8Gb/s), and a sequential write speed of 130 MB/s (1 Gb/s). Not exactly top-of-the-market here, but it’ll still be better than any platter drive in both read and write speeds, and I won’t have to worry about heat — I’ll just tape it to the side of the chassis and be done with it.

Building the system

If you’re going to build into this chassis, or really any rack mount chassis, the first thing you should do is strip it. Strip it down to the bare essentials, to where there is nothing in it except whatever is not going to be in your way. If you’re replacing the fans — which I’d highly recommend for this chassis — then take those out as well.

server1

In this case, I replaced the front 60mm fans with NoiseBlocker BlackSilent Pro PR-2 fans. And these were a great choice as these fans are quiet fans at full speed.

server2
server3
server4

This is the mainboard with the new Noctua CPU cooler already pre-installed. I’m still not sure what to do about the Silent OTES thing that Abit introduced back when. I’m considering replacing it with heatsinks and fans, especially since this system was intended to be cooled by the CPU fan, but the low profile cooler isn’t going to be able to do that.

I went with the Radeon card as I mentioned previously. This is mainly because two other cards I tried in the riser had noisy coolers on them. And I want this to be a quiet system, so I went with the card without active cooling on it.

The 80mm fan proved interesting, mainly because I forgot to order another of the 2-bay HDD cages like I used in the other X2 machine. So instead I just used a small piece of 3M VHB double-sided tape.

80mmfan1
80mmfan2

This is holding it pretty well. Not an ideal solution since it’s probably not pulling a lot of air into the chassis — instead likely recirculating more than intake. But it’s a good temporary solution until I can get something more permanent, preferably without having to buy a hard drive cage. To that end, I inquired with Mountain Mods about their dual drive bay cover to see if they could modify two of them for an 80mm fan cutout:

On your website for sale you have a triple 5 1/4″ drive bay cover for mounting a 120mm fan. You also have full cover panels for a dual 5 1/4″ drive bay. I’m looking for a dual drive bay cover panel for mounting an 80mm fan. How much would be the cost to modify your dual drive bay cover — specifically item 2BAY_BA — for an 80mm fan cutout? I’d be interested in acquiring two of them.

I said two because I’d want to use this on the other 2U system as well. For two other rack chassis builds I have in mind, I’d be using the triple drive bay 120mm fan mount Mountain Mods already has available, since those builds are slated to be in 4U chassis.

The next day, though, I had a bit of a realization: since I’m using double-sided tape to stick the fan to the 5¼” drive bay cage, why not pull out the cage and just tape the fan to the chassis itself? At the same time, I redid the cable management around the power supply and 60mm intake fans, tucking the spare power supply cables down under the power supply and drastically opening up the airflow in the chassis.

80mmfan3
server5

This dropped the internal chassis temperature substantially. With just the Minecraft server running, the internal chassis temperature would approach 40C. Now it sits down in the lower 30s.

Setting up the Minecraft server

This system is running Fedora 22 Server. Regardless of what Linux distribution you’re running, these instructions will apply.

First make sure to create a separate, unprivileged user under which the Minecraft server will be run. This will keep it contained within a strict space. This becomes especially important given the server runs on Java.

Download and install the latest Java runtime environment (JRE) for Linux x64. Some Linux distributions will install a product called the OpenJDK instead of Oracle’s JRE, so if that is already installed, you can use that instead, or delete it in favor of the Oracle JRE. Install GNU Screen if not already installed.

As the Minecraft user, create a subfolder called “Minecraft” in the home directory and download the Minecraft server jar into it. The server will create several files, so it helps to have all of that in one subfolder rather than in the home directory. Plus it makes backups a little easier. Launch the server by running “java -jar [minecraft-server.jar]” where [minecraft-server.jar] is the full name of the jar file.

One of the files that is created is “eula.txt”. You will need to edit that file to change the “eula” parameter in it from “false” to “true”. Next, edit the server.properties file. The one line I highly suggest you change is the “level-seed” parameter — change it to some random string generated through random.org (check all options to get a good random string). All other options are up to you to configure, though I’d also suggest enabling the white-list.

You will also need to add the port to the firewall. Follow the instructions based on the distribution you have. For Fedora 22, you would use “firewall-cmd” from the command line to permanently add the port (default: 25565) to the zone for your network adapter, otherwise you won’t be able to access it.

Create a shell script as well for starting the server. Here’s what I use:

#!/bin/bash
screen -S 'Minecraft' java -Xms1G -Xmx3G -jar minecraft_server.jar nogui

The “-Xms1G” parameter sets the minimum memory consumption at 1 GB while “-Xmx3G” sets the maximum memory consumption at 3 GB. The minimum consumption should always be kept at 1G, but you can set the maximum to whatever you need. Since this system will only be running the Minecraft server, 3G is a safe ceiling on this system, though I could set it a little higher if I feel the need, or adjust the minimum if my wife and her friends start complaining of lag.

Once the server is started, press Ctrl+A,D to get out of screen. This will leave the server running in the background, and you can even log out and the server will still be running. When you log back into the server, use “screen -r” from the command line to get back into the administrator console.

Backing up a running server

Periodically you will want to back up your Minecraft server for numerous reasons. For one, if you open the server up for public consumption (though I don’t know why you’d want to) and have a “griefer” come through, it helps to have a snapshot you can revert to. If something else happens or the system up and dies on you, it pays to have a save point.

One suggestion I saw was to use the Linux Dropbox client and basically have your Minecraft server residing in the Dropbox folder so it is always synchronized and continuously backed up. Despite the fact that Dropbox does have a versioning feature, I still wouldn’t call this a good idea. It’s always better to take a full snapshot of the server as it stands at a given moment, even if you ultimately use Dropbox as the backup target, which is what I do.

Below is the script I have set to run hourly. It is run from the home folder and copies the running Minecraft instance, except the jar and lock files, to a temporary folder to be compressed into a tarball and copied to my Dropbox. To use this script, you will need the inotify-tools installed.

#!/bin/bash
_tilde=~
eval _home=$_tilde
_now=$(date +'%Y%m%d_%H%M')
_file='minecraft-backup_$_now.tar'
_gzfile='minecraft-backup_$_now.tar.gz'
_log='$_home/Dropbox/Minecraft backup/backuplog-$_now.txt'

mkdir backup
printf 'Waiting till next level flush before taking snapshot\n\n' >> '$_log'
inotifywait -e open Minecraft/world/session.lock >> '$_log' 2>&1

printf '\n\nCopying Minecraft files to temporary folder\n\n' >> '$_log'
cp -R -v Minecraft backup >> '$_log'
cd backup

printf '\nCreating gzipped tarball\n\n' >> '$_log'

tar cvf '$_file' Minecraft/ --exclude='*.jar' --exclude '*.lock' >> '$_log'
gzip -9 '$_file'
mv '$_gzfile' '$_home/Dropbox/Minecraft backup'

cd ..
rm -r backup

And it also creates a log file for the backup instance so you can look at it to determine if anything went wrong, allowing you to see if you have a good backup or not. As I said I run this hourly, but you can choose to run it at a lesser or greater interval if you desire depending on what you feel are your requirements.

The script will wait until the session.lock file in the world folder is re-opened before copying the data off to a separate folder. In my observation, the server software will close the session.lock file before writing out all of its data to disk, then re-open session.lock. That sequence occurs once every minute. Once that event is detected — the script may wait up to about 60 seconds for it to happen — the script will copy off the entire Minecraft folder knowing it has everything that is vital in a known good state.

Finalizing the graphics host

Build Log:

In a previous article I showed how I had the PCI-Express extenders going through USB panel mount extension cables, with the intention of finishing out that system. Before I could do that, though, I needed to wait on additional panel mount extension cables to arrive along with additional left-angle connectors.

After those arrived, I went to work in getting it built out. The left-angle connectors I ordered weren’t extension cables, but adapters. The intent was to have them flat in the PCI-Express slots with panel mount extension cables going directly into them.

leftangle1

leftangle2

panelmount1

panelmount2

Except this didn’t work the way I’d hoped. The card in the first PCI-Express slot (far right) did not want to stay seated, and the system would not detect any graphics card plugged into it and the second one was touchy. I changed the first two PCI-Express slots over to use the original left-angle extension cables and all three cards were detected. I have the GTX 660 and 680 plugged into the USB connectors corresponding with those two slots.

leftangleextension

And the Berkeley client is using all three graphics cards. The GT 620 is significantly slower than the other two and doesn’t contribute nearly as much, but it’s still faster than either core on the CPU. The intent is to have two GTX 660s and two GTX 680s plugged into this system.

usbpanel

rack

setup

So that is pretty much it for this particular system. There aren’t any changes that will be needed to it. Next up for this project will be the custom cabinet and getting these cards on water.

The water cooling loop is going to be interesting for this because it’s something that really hasn’t been done before. Anywhere. At least not that I can see. Sure there are water cooled racks. I’ve seen examples of them online. But those are typically water-cooled blade servers hooked up to coolant manifolds that pipe coolant to and from external (i.e. outside the building) heat exchangers.

What I have planned is going to be relatively unique — about as unique as figuring out how to plug four graphics cards into a computer via standard USB connectors and cables. I highly doubt anyone has done that before.

Adding a GTX 680 and water cooling

Build Log:

Time to finalize the X2 system and also do a little experimenting. I ordered a GTX 680 used through eBay as I wanted to test how well it’d work through the PCI-Express extender connected to a PCI-Express 1.0 x1 slot. It replaced the GT 620 for this testing. I mentioned in the previous article that I intended to buy a pair of GTX 680s to make use of the Koolance GTX 680 water blocks I still have.

gtx680

But again, the idea here was testing throughput: would the 1.0 x1 slot constrict communication with the card? For reference, the GTX 770 — which is practically the same processor as the GTX 680 — is topping out at 68 GFLOPS on the Milkyway@Home jobs when plugged into a PCI-Express 2.0×16 slot. Note as well that the GTX 770s have 4GB of memory, whereas the GTX 680 I purchased has only 2GB, the same as the GT 620 and GTX 660s.

So what’re the results?

gtx680-boinc

gtx770-boinc

The GTX 680 actually performs better. On a similar job, the GTX 680 finished about 25 seconds sooner. How can this be?

The only explanation for this is simply the operating system. My FX-8350 system runs Windows 8.1 Pro, which is going to compete with Berkeley for the graphics subsystem. The X2 is being run on a headless Linux server that does not have a graphical windowing system installed, meaning the Berkeley client has full access to the graphics card for processing.

But this shows that for the GTX 680 — meaning also the GTX 770 — the PCI-Express 1.0 x1 lane is not going to be a constriction. I’m now very curious as to how well a GTX 780, or even a GTX 980 would perform on this.

Hell I’d even be willing to test a Titan X on this. Anyone care to lend me one?

Radiator panels

The graphics cards are going to be water cooled in this setup. Eventually. But part of shopping around was trying to figure out how best to do this. I considered a custom enclosure for holding radiators, a pump and reservoir, but decided that would be overkill. And extremely expensive. So then the idea came to mind of just bolting the radiators to a panel with the pump and reservoir either bolted to the radiator or sitting on a shelf behind it. I opted for the latter.

This wasn’t just about saving money but eliminating needless complication. Going with a panel would be simple. An enclosure? Not so much. I’d either have to modify an existing enclosure or have something custom fabricated. Instead I went with a custom cut panel.

Previously I engaged Protocase on having a custom enclosure built. This time, I decided to go across the pond and engage a company in the United Kingdom called All Metal Parts. They have a 3U fan panel for three 120mm fans, so I contacted them about a custom panel for a radiator. Their FAQ page quoted £40 for one panel, £60 for two panels plus shipping.

Specifically I’ll be using the EX360 radiator from XS-PC on this, though I’m not sure yet if I’ll have the fans in push or pull. If I go for push, I’ll probably have the panel sandwiched between the fans and the radiator. All Metal Parts held to the £60 for the panels plus £28 for shipping, which is about $140US total. I was hoping for less since what I originally asked for would’ve been a modification on a panel they already sold.

The design they sent for approval, though, after asking my opinion in advance, has the opening in the panel matching the side of the radiator. In the request, I provided a link to the product page for the radiator, which has a diagram on it, making it easy to design the panel. My only note was to make sure the screw holes were 4mm, large enough to allow a #6-32 screw to pass through.

The desire to water cool this setup is merely about cooling. For one the GTX 660 and 680 sit in the lower 60s C while the Berkeley client is running, and I know that a liquid cooling loop will have them sitting significantly lower — probably even in the 30s C.

boinc-temperatures

Silence is actually not a major consideration in this. As the image above shows, the blowers aren’t spinning much, hovering around 40%, which shows that the cards aren’t being taxed all that much. But it also means there’s not a lot of noise to curtail — the setup shown above actually isn’t all that noisy. As such I’m more concerned about the temperatures.

More proof of concept

Build Log:

The Colony West project continues… this time with more proof of concept on the ideas I have in mind. In this case it’s hooking up the graphics cards through USB panel mount connectors rather than having the USB cables pass through an open slot in the back of the chassis. This test serves two purposes: confirm the idea is feasible, and, in so doing, build out a final (or near final) configuration for this system.

Obviously I needed panel mount connectors (I ordered both 3ft and 1ft lengths, two of each), but along with that I ordered left-angle extension cables — everything being USB 3.0 obviously. This required changing the configuration on the chassis, and I pulled out the Radeon card in the process along with the SATA RAID card. The cables were a little bit of a tight fit, so another set might not work out nearly as well, or I’ll have to get a little more creative. We’ll see.

usbcables

usbcables2

The Fedora 21 install on the SSD didn’t like the changes, so I had no choice but to redo the Linux installation — taking it as a chance to upgrade to Fedora Server 22 in the process.

But the key thing is that the system recognized the graphics cards through the USB panel mount extensions with no loss in performance. While I had little reason to believe this wouldn’t work, again I wanted to be certain. There will be panel mount extension cables on the other side as well, and I have little reason to believe those won’t work as expected. Not sure yet if I’ll do a proof of concept on them, though. Maybe later.

Reply to the New York Times Editorial Board regarding gun laws

I will say up front that I have a concealed carry permit lawfully issued under the laws of the State of Missouri. I’m also up for renewal later this year. Contrary to what many may think, permits are not open-ended. In Missouri they are valid for three years from date of certification by the county sheriff — which is different from date of issue — and there is a statutory 45-day turnaround time while waiting for an extensive background check. If the 45-day time frame expires, the county sheriff must issue a temporary permit that can be revoked if necessary when the background check does come back.

Carrying a firearm concealed without a valid permit is a Class D felony in Missouri.

As I wrote in an earlier article, getting a concealed carry permit is no small endeavor. It’s expensive and time consuming — for Missouri the government side of the coin is $225 to start with a $50 renewal every three years.

So when the idea that a person who wishes to carry concealed must show “good cause” is offered by gun control proponents, in this case by the New York Times, it is about the same as needing to show “good cause” to exercise any of your other rights. Imagine needing to demonstrate “good cause” before the Court appoints an attorney to assist in your defense. Imagine needing to demonstrate “good cause” in saying No to a police search. It’s nonsensical at best, and tyrannical.

Yet I know the gun control proponents want it so that a person must show “good cause” to purchase a firearm. The New York Times stops short of actually saying that in this instance, focusing only on the current case at the United States Court of Appeals for the Ninth Circuit, but I have little reason to doubt they’ve advocated such in the past.

And once again I find myself having to say this: stop using the words “gun safety” to describe gun control laws. “Gun safety” refers to the rules and guidelines regarding the proper way to handle a firearm. The regulations on firearms manufacture that require various mechanisms in the design to prevent the firearm from discharging until the trigger is actually pulled, on the other hand, are gun safety laws and regulations. Laws restricting the size of a magazine or the kind of firearms you can own are not about safety, but control.

And as I’ve pointed out several times on this blog (here and here), gun control laws are racist in their implementation, and gun control proponents are racists, because they will disproportionately impact minorities, since they are more likely to be impoverished, by placing greater cost on exercising their rights.

And having to show “good cause” to exercise a right is a violation of the rights of due process (here and here).

So when the New York Times says that municipalities have a “right and duty…to determine what is necessary for their citizens’ safety”, you know your due process rights are about to be forcefully shoved off a cliff into the La Brea tar pits. You see, due process requires that the government show cause for why I should not be permitted to carry a firearm concealed, instead of the citizen showing cause for why they should be permitted to carry.

Follow-up on ASRock BTC Pro and other options

Build Log:

I’ll just say this up front: the ASRock PCI-E extender can be a little finnicky. For some reason, the GT 620 would stop being recognized by the BOINC client after a period of time, despite the card still being detected by the system. I believe the reason for this was the SATA cables.

I wasn’t using the stock cables that came with the kit. Those are flat, and I was using round cables. But I didn’t initially realize they weren’t the exact same length. So while they looked to be running fine for a period of time, I guess eventually there would be enough latency that the data across the two cables would get out of sync with each other and it’d stop working right. So I changed the cables over to two of the same length, but I didn’t leave the GT 620 connected to it.

gtx660

Instead I connected one of the GTX 660s. And to ensure it was getting adequate power, I made sure to plug it up to a second power supply I had laying around (Corsair GS800) — not entirely sure if it’s completely necessary, but I’d rather have it than not. The card sat at just under 60C with a fan speed of 40%. Having a fan blowing on it — Corsair SP120 with a low-noise adapter — lowered the temperature a little, but also allowed for cool air to mix in with the hot air coming out the back.

The reference blower isn’t the greatest for keeping a graphics card cool — which is why the various brands sometimes make their own coolers for these cards. So when I actually build this out into a final configuration, it’ll likely be water cooled. The GT 620 runs cooler than the GTX 660 — but it’s also not able to process nearly as quickly, so putting a universal VGA block on it probably won’t offer any significant benefit.

But the GTX 660 could pull over 45 GFLOPS consistently according to the BOINC client, well over 2½ times the GT 620. So if I take the two GTX 660s plus the GT 620 together combined, it should get about 110 GFLOPS easily. For those wondering how I’m getting that number, I take the “estimated GFLOPS” for a task and divide it by the total processor time when it completes.

But this also shows that PCI-Express 1.0a x1 — which is a 2 Gb/sec lane — is not a bottleneck in this setup. The USB 3.0 cable can support up to 5Gb/sec, which is enough to handle either PCI-Express 1.0 x2 or PCI-Express 2.0 x1. The two SATA III data cables on the ASRock kit could handle 12 Gb/sec in parallel.

The GTX 660 is performing quite admirably compared to the GTX 770s in Beta Orionis, each of which are on PCI-Express 2.0 x16 slots and powered by an FX-8350. I wouldn’t expect it to perform up to the same level as a GTX 770, but staying above 45 GFLOPS compared to the GTX 770’s 64 GFLOPS average compares quite well to specifications I’ve seen online for both processors. The 770 is basically the same core as the GTX 680, though.

I’d actually be interested to see where a GTX 780 would perform, or even a GTX 980. Would the PCI-Express 1.0 lane be a bottlenec for the latest generation?

But if you want to put GPUs to work for BOINC or something similar, you don’t need the newest generation mainboard and processor — the nForce 500 SLI chipset on the MSI K9N4 SLI mainboard was released in 2006.

USB 3.0 PCI-Express extenders

The USB extenders arrived on Saturday. I was really stoked to use one since they are powered by a standard 4-pin Molex connector, and use a standard USB 3.0 male A to male A plug.

usb1

usb2

usb3

USB cables can be longer than SATA cables. The extenders I ordered come with 1m cables. Most SATA cables included with devices (such as the ones included with the ASRock BTC kit) are 6″ or 9″ at most, though you can buy cables that are longer. The maximum length of a SATA cable is also 1m — the ones I was using for the above experiment were about 18″.

There’s another consideration on this: USB 3.0 male A to female A panel cables.

Imagine this. Two or more graphics cards mounted into a 4U chassis — powered by its own power supply — with a USB 3.0 cable connecting it to the main system. This was the consideration I was talking about previously. This would allow you to create one system in either a 1U or 2U chassis, depending on cooling requirements, that acts as the device host while having any configuration of graphics cards in a second chassis connected only by several USB cables.

Now while similar SATA III brackets do exist, the cable length must still be considered — you are still tied to the 1m length limitation which will include the length of the cables used in the brackets. So if you by two brackets and they each have 12″ cables, you can only use a 12″ SATA cable between them.

So in getting the proof of concept with the GTX 660, I connected the GT 620 to it as well to get an idea of whether I could run the two simultaneously — given the age of the mainboard — and what the BOINC client would do with them. Would it run the GPUs only and not bother with any CPU processing?

usb4

Not quite. It took a little bit for the client to realize that it could run CPU tasks on one of the cores, with the second core being used to coordinate with the graphics cards. Both cards were able to process at expected rates. The GT 620 processed at 18 GFLOPS and the GTX 660 was staying north of 45 GFLOPs. No bottlenecks with either card.

Now three GPUs… not sure how BOINC would handle that with a dual core processor, and I’m not going to try to find out either at this point. The GT 620 is slated for the chassis that will house the FX-8370E.

The GTX 660s will go into a 4U chassis with 14 expansion slots so there is room to grow, and, as previously mentioned, I may water cool them to make use of the blocks I still have while also keeping their temperatures lower.

Next step…

So far everything has been working quite well when it comes to the experiments. I’m pleased with the results, pleased that everything is working as expected, and pleased with the performance I’m getting.

The next steps, though, will move this project in the direction of building this into a rack starting with the cabinet. I have the 20U rails, so it’s now a matter of buying the lumber and necessary hardware and building it.

Additional proof of concepts are needed as well. I need to acquire a couple sets of panel mount USB 3.0 cables (mentioned above) and test them as if that was between the graphics cards and the main system and make sure everything will continue to work as expected. I don’t have any reason to think they won’t work, but I’d rather be safe than sorry on that. If all goes well, then I’ll be acquiring chassis, likely starting with the aforementioned 4U chassis for the graphics cards.

Let businesses discriminate

Here’s an idea… given how much “social progress” is supposed to have been made over the last 50+ years, let’s do this: repeal all the anti-discrimination laws, let all of the bigots come out of the woodwork, and shine the light of day on them instead of forcing them to conceal their bigotry under anti-discrimination laws while they make up other excuses to refuse the business of those they don’t want — you know, just as those who dislike atheists will come up with any reason other than religion to turn us away, or will nitpick over any little thing as an excuse to turn us away.

Take away a bigot’s ability to use their bigotry as a reason to turn away those against whom they’re bigoted and they’ll find some other reason to turn them away that is still legal while concealing the fact the person is a bigot.

Doesn’t it make more sense to reveal the bigots for who they really are?

I mean, if they’re only going so far as to deny products and services, how is it fair to force business owners to provide goods and services to customers they don’t want?

If they are using their bigotry to justify violence against others — including the passage of provisions at the government level since government is institutional violence — then obviously that needs to be countered.

And has been countered. Numerous ways.

Let’s enter a hypothetical here. I run a shoppe and I don’t want to cater to — just for the sake of argument — gays. Now my business existing does not mean everyone with the ability to pay is entitled to the products or services I sell. Inherently I have the right to discriminate against whomever I want for whatever reason I want when it comes to the operation of my business — this includes hiring practices — unless I have entered into a contract that forbids such practices (such as a lease for the business space I rent).

To say otherwise is a violation of my right to transact business however I see fit. And this can be seen in the fact that many favor laws (i.e. violence, since government is institutional violence) that would force me to conduct business with customers I don’t want and hire employees I don’t want.

Setting aside the fact that turning away customers and talented employees would likely be bad for my bottom line, that is a choice I should be freely able to make. But at the same time, the consequences of those choices are also mine to accept — contrary to assertions that I’d be able to act on my bigotry “without consequences”. And if I don’t want those consequences, then it is up to me to change my practices.