This Blog Blocked in the UK

I’m proud to announce that this very blog has been blocked by two United Kingdom (UK) Internet Service Providers (ISP)! Thanks to Blocked I was able to check this blog to see if it was being filtered in the UK. I found out that both BT and TalkTalk consider my content adult content!

As there is a lack of pornography on this site (I’m sorry, I just don’t have the time to share all of the good stuff) I’m left to assume that “adult content” is a euphemism for scary gun stuff. Either way I feel accomplished.

Why Do People Care About How Another Identifies

I’m going to take a slight detour from my usual topics because it’s my blog and I get to do whatever I want. Let me first start off by stating that the longer I identify as a libertarian the more of a mistake I believe it has been for libertarianism to align itself with neoconservatism. It probably made sense at first because neoconservative talking points often revolve around small government, individual liberty, and free markets. Obviously their actions don’t agree with their propaganda but in the political realm it probably made sense for libertarians to align themselves with the politically influential group that at least pays lip service to libertarian beliefs.

Here’s the problem, many neoconservatives now call themselves libertarians. Many gun rights advocates have been discussing how they don’t want Open Carry Texas on their side. For many of the same reasons I don’t want neoconservatives on my side. They make libertarianism look dreadful. Whenever a discussion involving social issues comes up there are numerous neoconservatives claiming to be libertarians spewing shit that isn’t libertarian.

While there are many camps of libertarianism most of them are built on the foundation of non-aggression. In other words libertarianism can generally be summed up by a quote from Will Smith’s character in Men in Black, “My attitude is: don’t start nothing, won’t be nothing!” Neoconservatives like to start things and that makes being a libertarian, which is tacitly associated with neoconservatism, really fucking annoying.

I feel as though points are best demonstrated with examples. In an online “libertarian” group I came across this story about a 16 year-old who ran into a snag attempting to get a drivers license:

Chase Culpepper — a 16-year-old who wears makeup and androgynous or girls’ clothing on a daily basis — went to the DMV in Anderson on March 3 with his mother to get his driver’s license after passing his driver’s test, according to a press release obtained by The Huffington Post. However, he was told he couldn’t be photographed while wearing makeup.

DMV employees said he did not look the way they thought a boy should, and one individual called his makeup a “disguise,” the release notes. Culpepper ultimately removed his makeup and got his photo taken, but the experience left a mark.

The first thing that came to mind when I read this story is why did the Department of Motor Vehicles (DMV) employee gave any fucks about Chase wearing makeup. It’s not like Chase is going to buy smokes or booze with a drivers license that states an age of 16 years-old. But the DMV employee wasn’t the only person who cared. No, quite a few neoconservatives who moonlight as libertarians cared a great deal.

The common thread running through the neoconservatives was basically that Chase should act like a man because he is a man (the thread was usually worded in a more derogatory way) and that the DMV employee made the correct call. OK, that’s their opinion, whatever. What really began to irritate me was the thread that began to spin off from the original article, which was whether or not the state should enforce gender identities (because “small government” to a neoconservative means a government big enough to enforce all of his or her beliefs).

Who in the hell thinks it’s appropriate to send costume-clad men with guns to kidnap anybody who fails to properly (whatever the fuck that means) abide by their gender? Neoconservatives, that’s who. And this is why they piss me off. Even if you believe there should be a government why would you want it to enforce how you personally identify, act, and dress? Are you really so offended by people not fitting your idea of what a man or woman should be that you want violence wielded against them?

To my dismay people have begun associating this stupidity with libertarianism and that too pisses me off. Often enough people assume that as a libertarian I hate gay and transgender people. I don’t. Quite the opposite actually. I want people to live their lives in the way that makes them happy. What I don’t want is people feeling as though they have to hide who they are or otherwise live a miserable existence.

Now It’s Nerd Culture, Which is Synonymous with Rape Culture

Misogyny, white privilege, masculinity, and America’s gun culture have all been blamed as the causes of the shooting in California. I figured at this point every social justice warrior cause would have been insinuated as the One True Cause but I figured wrong. As it turns out the quintessential rape culture hasn’t received any love yet. Fortunately one brave warrior has stood up and pointed out that the shooting was indeed caused by the nerd culture, which is synonymous with the rape culture! The best part about this article is that it makes a case based on insinuations derived from a fictional story:

Princess Leia was raped by Jabba the Hutt.

How many times, I don’t know, nor do I care to know the specifics. But these were the most brutal gangsters in all of the galaxy, the worst of the worst, and so she was. And it was soul-crushing and brutal and something that Leia never spoke of — not to her brother Luke Skywalker and not to her lover Han Solo. When it was all said and done, she was a shadow of her former self.

Although Leia’s rape may have happened off-screen, make no mistake, it happened. And after it was done, Leia was dressed in rags and chained to her rapist. She was nothing more than an object, a toy, for any and all to see.

And for many, if not most geeks today, this particular image of Leia is the quintessential image of geek sexiness and yet at heart it is the image of a rape fantasy.

I’m sure there are a few other things to blame but the media’s one week window of reporting is fast closing. Get your accusations out there now or you won’t get the big page hits!

Enough with the Finger Pointing

Gather around boys and girls, it’s time for serious Internet business. With everybody clamoring over themselves to blame the shooting in California on their personal pet peeve somebody has to say those four words that aren’t said enough. Shut the fuck up. Seriously. Everybody who is blaming the gun culture, mental illness, white privilege, misogyny, masculinity, and any other pet peeve for the shooting needs to knock it off.

I have firsthand experience of the aftermath of these accusations. Back in my day it was the shooting at Columbine and the blame was placed on guns, violent video games, quiet kids, and social misfits. That was basically the checklist of my life in high school at the time. And because that was the checklist of my life I went through a week of hell as the administrators of my school demonstrated that such a heinous act wouldn’t happen under their watch. And they demonstrated this by performing a witch hunt. Because of the finger pointing being during the aftermath of Columbine I was the witch.

After every shooting there are witch hunts. Usually they’re performed by community members and school administrators who want to bask in the spotlight as they demonstrate that they will go to any lengths to prevent such an incident from happening in their community. And witch hunts needs witches. Based on all of the pop sociology and psychology going around this time the witches will be anybody who happens to be a white male suffering from a mental illness that has been rejected by the women he’s asked out. If he has made an off color joke that could be construed as misogynistic that will just be further evidence that he’s a witch. After the witches have been identified their lives will be made a living hell for at least a week. They will be interrogated by school administrators and police officers. They will be accused of a crime they weren’t even planning to commit. In short their life will needlessly be turned into nightmare for no reason whatsoever.

Everybody who is pointing fingers is making the life of some unknown person hell. If you really feel as though you have to blame all of the world’s ills on your pet peeve at least wait until the event falls off of the media’s radar because then the threat of the witch hunts will have passed. But this finger pointing accomplishes nothing constructive and is plenty destructive. So knock it the fuck off.

Check Your Privilege

Remember how I said everybody was exploiting the recent shooting in California to push their personal agenda? Case in point:

Welp. Another young white guy has decided that his disillusionment with his life should become somebody else’s problem. On Saturday, 22-year-old Elliot Rodger (who, as many commenters have pointed out, had a white father and mother of Asian descent) went on a killing spree on the campus of University of California, Santa Barbara, murdering his three roommates, shooting women outside a sorority house, and hitting people with his car as he attempted to get away from police.

How many times must troubled young white men engage in these terroristic acts that make public space unsafe for everyone before we admit that white male privilege kills?

Emphasis mine. So our killer, who exploited California’s “weak” gun laws, was a mentally ill misogynist who was set off by his white privilege. I wonder when some neoliberal author will blame this whole event on Republican created “anarchy”.

Trigger Warning: The Author of This Blog is an A-Hole

There are so many feel good movements on the Internet that I can’t keep track of them all. Some of the most prevalent ones (that I’m aware of) are the push for people to use gender neutral terms (which is really fucking difficult when the language you’re using is English), stop using the word retarded, and include trigger warnings on any material that may trigger a traumatic memory of people you haven’t met. The last one has been gaining some traction as of late and it appears to be spreading outside of the Internet:

It’s a phrase that’s been requested this semester by a number of college students to be applied to classic books — The Great Gatsby (for misogyny and violence), Huck Finn (for racism), Things Fall Apart (for colonialism and religious persecution), Mrs. Dalloway (for suicide), Shakespeare (for … you name it). These students are asking for what essentially constitute red-flag alerts to be placed, in some cases, upon the literature itself, or, at least, in class syllabuses, and invoked prior to lectures.

These feel good movements, in addition to being an attempt to protect everybody’s sensitive feelings, generally have an (sometimes) unintended side effect: censorship. As the article goes on to state:

Of course, life doesn’t come with a trigger warning, even if it should. And while a classroom conversation about emotionally fraught subjects would seem not only advisable but also just part of any decent teaching method, slapping a trigger warning on classic works of literature seems a short step away from book banning, a kind of censorship based on offenses to individual feelings.

Whenever I run across a comment that says some permutation of “Dude, add a trigger warning!” (Dude? Way to jump to assumptions that all offense things on the Internet are posted by men you misandrist asshole!) it triggers my trigger, which is triggered whenever I run across somebody bitching because there isn’t an included trigger warning. How is the author of an article or a comment supposed to know that the content of his work is going to set off some random stranger’s traumatic memories?

Of course the opinion that trigger warning are bullshit isn’t generally accepted within the halls of the social justice warriors so they will often demand that you be censored for expressing it. And if you do include a trigger warning they will demand that you be censored because you posted something online that you expected to trigger somebody’s traumatic memories.

Imagine a class of 30 students. Each student has lived a separate life full of different experiences from every other member of the class. More than likely more than one of the students has suffered a traumatic experience and it’s also likely the the type of trauma suffered by each sufferer is different from the other sufferers. What happens when the instructor of a literature class chooses to assign Huck Finn and one of the students who suffered racial trauma objects? That instructor will be faced with deciding to assign a different book or being labeled an asshole for making a student who is triggered by the assigned material read it. Since the former is less likely to end in a week long bitchfest on Twitter as social justice warriors create a clever hashtag to use to derogatorily refer to the instructor he or she will probably choose to assign a different book. So let’s say that the instructor decides to assign Mrs. Dalloway instead only to find out one of his students was traumatized by a past attempt to commit suicide. Again we return to one of two options. Eventually the only titles that become acceptable to assign are sanitized tomes devoid of almost everything that makes for a great work (namely addressing or exploring a controversial topic).

In addition to being based entirely on random people’s feelings, trigger warning are also time period dependent. Consider many of the works of Samuel Clemens. Many of his titles contain what we now consider to be very racist language. But when they were written the terms used were part of the vernacular. When the books were written nobody would have demanded a trigger warning be added to the book. So in addition to having to predict the feels of every potential reader authors and publishers must either predict what will offend individuals in the future or periodically update the included trigger warnings.

Trying to manage such a subjective time sensitive clusterfuck as trigger warnings on novels is retarded (I’m just going to tick off all of the easily offendeds’ boxes). Because of the difficult of managing such a mess colleges and instructors will choose the much easier path of assigning completely sterile works to the detriment of students everywhere.

I’m Back

Obviously there were no posts yesterday. As it turned out I had suffered a nasty sunburn Sunday. For me that means a very unpleasant allergic reaction that involves some of the worst pain imaginable. After a day of Benadryl and ibuprofen along with bags filled with ice I’m finally at the point where I can function again.

The only upside to this shit is that I tend to avoid being in direct sunlight for very long so my chances of getting skin cancer are probably lower than most. Let me just take a moment to give a gigantic middle finger to that fusion reactor our little spaceship continues to orbit.

The Difference a Quality Codebase Makes

As I mentioned Tuesday, I rewrote a major chunk of WristCoin, my Bitcoin price checker for the Pebble wristwatch. Now that I’m working with a far more modular design adding exchanges requires almost no effort at all. I to add in Bitfinex support:

added-bitfinex

It took me roughly ten minutes to do so (most of that time was invested in writing the JavaScript code that grabs the current prices and feeds them to the Pebble). So let me iterate a lesson that most developers have pounded into their heads but fail to follow: don’t start with quick and dirty code, start with quality code from the beginning. Mind you in all liklihood I will fail to follow this advice as soon as I start my next project. Getting a prototype up and running quickly is just so tempting and it feels so good.

WristCoin Update

Remember WristCoin? It wouldn’t surprise me if you didn’t. I announced it in December and my last update was in January. Truth be told I got busy with other projects for a while and then Mt. Gox went belly up. I didn’t really care about Mt. Gox’s bankruptcy as I never did business with the site (due to its generally poor reputation within the Bitcoin community). But since the site was no longer an active exchange I had to remove it from WristCoin. After looking at the work that was necessary to remove the exchange I decided that the codebase in general wasn’t in line with my standards of coding.

Part of this was due to the fact that WristCoin was my first (and still only) Pebble project. When learning a new programming language, software development kit (SDK), application programming interface (API), or any other programming related thing I jump headfirst into a project. This is because writing little example piece of code bores me and I quickly lose motivation if I’m not working on a project that has a definite goal. The upside to this method is that I usually maintain my motivation to continue learning. The downside is that my first project usually looks like crap.

WristCoin, I’m ashamed to admit, looked like crap. I fell into the same trap many developers do, which is to start with quick and dirty code and an intention to clean it up later. But the second part, cleaning the code up later, seldom gets done. Instead I kept building on top of a poor foundation because I really hate to redo previously completed work (it is one of my biggest pet peeves). After reviewing the initial WristCoin code I decided a major rewrite was in order.

The previous codebase relied a lot on fixed length field, globally declared constants, and other things I’m generally not fond of. Both the Pebble app and the JavaScript code that runs on the phone contained a lot of knowledge about each featured exchange. This means removing Mt. Gox would require changing code in both the Pebble app and the JavaScript code, not an ideal situation in my opinion.

Each programmer has their own concept of what comprises beautiful code. Some programmers want the fasted code possible, others want to accomplish the most work with the least amount of code, and programmers such as myself strive for modular code that is easy to modify (due to our innate laziness). Each goal has its own set of pros and cons. The cons to module code that is easy to modify is that it tends to be over-engineered to some extend.

After a few days of work I finally finished rewriting the foundation of WristCoin. The Pebble app now knows all of jack shit about each exchange. Instead it asks the JavaScript code running on the phone to tell it every detail about the exchanges, which the JavaScript code is more than happy to provide. All of the information related to each exchange is stored in a single array of hash tables and a single function that knows how to fetch the current prices and send them to the Pebble app. To add an exchange I now need only add a hash table to the array and create a function to fetch its current prices. Removing an exchange is as simple as removing its hash table from the array (I can leave the price fetching function in if I really want to). Additionally this change will make it easy to allow the user to enable and disable desired exchanges from the phone side (the old code required the user to fetch prices and display information for every exchange at all times).

The Pebble app, which is written in C, no longer relies on fixed length fields, globally declared constants, or other such shenanigans. Memory for strings is now dynamically allocated. That means the title field (the field that displays the exchange’s name) and status field in the main screen (the field that displays the current price) are no longer of fixed length. Previously they were both fixed to 10 bytes, which was generally enough room but not guaranteed (if I had to add an exchange whose name was longer than 9 characters (because an additional byte is needed for a null terminator) would require me to increase the side of the field length constant. Now the application determines how many characters long the exchange name is and how many digits long the price information is, how may bytes will be necessary for the additional characters required to make the price display look pretty, and declares chunks of memory exactly the needed sizes. Computationally it’s a bit slower but maintaining it is going to be much easier, especially if all odds are defied and Bitcoin skyrockets in price (I don’t believe Bitcoin is going “to da moon” by the way, but stranger things have happened).

If you’re curious the main screen looks the same as it always has:

wristcoin-main-screen

I haven’t finished rewriting the extended information screen yet. It may look different than the old extended information screen but I haven’t decided on the details.

As always the code is in the public domain. You can download it, read it, criticize it, use it, abuse it, and fork it via the convenient Github repository. Likewise if you’re looking for ideas on how to do something using the Pebble SDK, and it’s something that has been done in WristCoin, I have documented this new codebase much more thoroughly than the old codebase (and since it’s public domain code you can just lift whatever you want). Do note, if you plan on looking at the code, that the rewrite is still in progress and I haven’t completed anything more than rudimentary testing. Some old code remains, some memory leaks are likely to exist, and some of the JavaScript code doesn’t work properly (namely error reporting).

Like the license, the release date remains the same. That is to say WristCoin will be completed whenever I damn well feel like releasing it. I don’t plan on charging money for this application so I have no motivation to stick to a scheduled release date.

Welcome to the New Server

Sorry for the lack of new content on Friday but I chose this weekend for server migration. Back in May I changed my server over to OpenBSD 5.3. Since then I’ve found OpenBSD to be a good server but upgrading it and adding features is a huge pain in the ass. Since I am my own server administrator and I have less free time than I did last year I’ve decided to change my server over the Ubuntu 14.04 Server. Why Ubuntu? Because it’s easy to setup, update, and there are guides for doing anything and everything posted all over the Internet. In other words I’m getting lazier in my old age.

I’m hoping this move will cut down on my maintenance time a bit. When Heartbleed struck I was basically left to compile a new version of Nginx with OpenSSL 1.0.1g in order to patch the vulnerability. The reason for this is because OpenBSD doesn’t offer much in the way of support for older versions of their operating system and if you want to use the patch provided by OpenBSD you have to download the operating system’s source code and compile the patch. That’s more headaches than doing sudo apt-get update and sudo apt-get upgrade. While the OpenBSD method may be better in many regards it’s more time consuming and that’s a tradeoff I can’t afford at the moment.

Anyways there are likely a few bugs I haven’t figured out and fixed yet so bear with me.