The Democratic People’s Republic of Windows Update

I’ve never seen a piece of software that’s tried over the years to make people hate it more and more than Windows Update. It’s evolved into what’s quite honestly a piece of full-fledged malware. Actually, if you consider the “Get Windows 10” nagware, you could even say it’s an entire suite of malware. I can’t say I’ve ever liked it. As a matter of fact, I think I’m starting to understand the nostalgia for Windows XP. Gone are the days when your computer does what you tell it to. You could turn it off completely, or, what I usually did, was have it set to just notify me and allow me to determine how to proceed. This allowed me to make sure network bandwidth and CPU cycles weren’t being wasted on a task that is secondary to what I am presently doing.

That said, this has been an issue for quite some time. Why write about it now? Because as of today, it’s more than an ideological annoyance. It’s become a full-fledged, practical problem. I’m developing and testing a piece of software that needs to be capable of running unsupervised for long periods of time (but fortunately, it won’t be running on Windows 10 in production). And presently, I’m trying to track down a bug in that piece of software that causes it to stop working after several hours. So I left it debugging in a Windows 10 VM overnight, to see if the stuff I had it logging would bring anything useful to light. I come back to that VM in the morning to see that it’s a clean slate. All the stuff I had open the night before – gone. Then I realized I’d forgotten to turn off the automatic rebooting behavior, that for some idiotic reason isn’t even given as an option on install, and is hidden in an “advanced settings” menu. There goes several hours of testing I had running to track down this problem.

Actually, this automatic reboot by default behavior goes directly against Microsoft’s Trustworthy Computing initiative. That is, their software should not perform a behavior that is unplanned. As a matter of fact, that’s exactly why they removed Easter eggs from their products. But at least an Easter egg never interfered with useful work. This automatic reboot on update behavior is like an Easter egg, but malicious. Oh, I see you’re running an important task? Let’s just shut it off to install a bunch of updates. Let’s insult the users by assuming that whatever they had running was unimportant. And what’s worse is that in Windows 10 Home, it isn’t just an assumption that you can correct with much effort. It’s mandatory.

Even as recently as Windows 8.1, we’ve had appropriate levels of control over Windows Update. But since then, we’ve gone from this:

To this:

Much like the telescreens in 1984, you can turn it down, but you can’t turn it off. And seeing the direction MS is going, they’ll probably soon take that ability away from us too, as they already have from the Home users. The good news is, it’s possible to get them to back down. Much to my annoyance, in Windows 8.1, the only way to sign in using a local account instead of a Microsoft account was to disconnect from the internet while you set up the system. In Windows 10, they finally gave an option to skip this. And of course, they also brought back the Start Menu after realizing the failure of their “everything is a tablet” mentality. And hopefully, we can get them to do it again. They’ve realized in the past that one-size-fits-all mentalities don’t work here. This is yet another instance of that kind of thinking, that needs to be removed. And I largely don’t get how it managed to sneak in there, when Windows 10 was largely supposed to be a backpedaling from such a mentality. Regardless, send Microsoft your feedback, as I’ve already done. Tell them you want control over your own updates. To quote the message that plays before movies about texting during the movie, “IT CAN WAIT!” I’m sure to Microsoft’s QA department, fixing an issue that surfaces on one in a billion machines is top priority. To me, the fix itself gets in the way of vastly more important things. At least give the users themselves full control over how important those fixes are to them. If your software matches your priorities and not your customers’ priorities, your priority isn’t your customers, and soon your customers’ priority won’t be you. The trend is starting to move in favor of giving control to the users. Look at Apple in the last couple of years. Third-party keyboards, ad blockers for mobile Safari, and the ability to run your own code on your device without paying for a subscription. Meanwhile, Microsoft is trying to move Windows Update in the opposite direction. It’s becoming a piece of malware. It’s something I’d remove entirely if given the option, in favor of just downloading the updates manually and installing them by hand, when I’m not trying to accomplish more important things.

A Rant on Academic Tenure

Whee! I’m going to write something controversial! And I’m going to post it in places where I know people are going to be offended by it! I’d first like to apologize to those people. I personally know a handful of people who work in academia, and I’m rather fond of those people. This post isn’t about them. This post is about people who suck at their jobs yet get to keep them anyway. It isn’t a problem unique to academia. I, and others I know, have often expressed anger at meteorologists for the same reason. You’d be better off most of the time going by the opposite of their predictions. This is a post about a simple principle that I wholeheartedly believe should be universal: If you suck at your job, you should be fired.

First, a little background. Why now? Why am I writing this when I have productive work (expect a blog post in the next day or two about what I’m working on, but here’s a hint) to do? When it comes down to it, I was inspired to write this now because I was just reading an argument over what’s wrong with education in this country. There were arguments over things like student loans and other sideshows. I decided to bring up the real issue: Academic tenure.

More specifically, I’m writing this because academic tenure has really, really screwed me over. Go back about a year. I had a statistics class at McNeese State University (I feel like I should leave the school anonymous, but it isn’t a problem specific to McNeese, and there are actually a lot of great professors there, especially in the computer science department, and pretty much everyone knows which school I go to anyway). Only one person teaches that class during normal fall/spring semesters, and it’s more or less universally agreed upon that this person can’t teach. I know several people who have failed this professor’s class. Including myself. Furthermore, I know it’s that particular professor at fault since I failed the class once, took it again with that same professor and had to drop the class, and finally took it again this summer, with a different professor, and got an A for the class. I do personally know one person who passed the class with the awful professor, but even she got a B, and to her a B is like failing anyway.

Anyway, I failed a class. Why am I so angry? It happens to people all the time. Because in this particular case, failing that class kept me from passing the twelve credit hours a semester necessary to keep my TOPS scholarship. As a result, I now have $5000 in student loan debt (which I wholeheartedly believe should be taken out of that professor’s check; here’s a crazy thought – let’s actually hold bad professors and trigger-happy cops responsible for their own actions). Let’s hope I get this job I interviewed for recently (they said they should need me in 2-3 weeks). If not, my six-month grace period for the loan will pass, and I’ll be expected to begin repayment, because of the one class I have left to take (because of an advising screw-up outside the scope of this topic) not making me a half-time student eligible to not have to pay that yet.

ANYWAY, back to my original point. If you suck at your job, you should be fired. Full stop. This puts pressure on people to actually work hard to do their job well. I understand the concept of academic tenure (and I also understand that my opinion that the tenure system should be abolished is unpopular, as a majority of Americans support it, but I stand by my opinion nonetheless). It’s to protect academic freedom and protect those who publish unpopular research. However, as a student, whose social circles mostly consist of other students, I know large numbers of people who have been victimized by the tenure system, and I think it’s time we do away with it.

I guess I see it like this. College is expensive. It practically ruins its target audience, some of the most financially volatile people in the country. And with students being paying customers, I think we deserve better. Students, not research, should be a professor’s top priority. Students are paying customers, and by means of that payment, they have the right to a quality education. This should come above a professor’s personal search for fame and glory. I’m not saying research is unimportant. I am saying that students, as in people who need an education to succeed in life, and pay large sums of money to obtain that education, are more important. And the least those students deserve is to have the wheat separated from the chaff – to present them with professors who can actually deliver the education they need. We at McNeese fill out evaluation forms toward the end of each semester. Here’s a thought – if a professor receives an overall negative rating for two consecutive semesters, they should get the boot. This also solves the academic freedom issue. Don’t allow a professor to be fired for anything research-related, but put a fire under them to do well in the classroom.

In summary, do the right thing for students. Hold professors accountable for the education their students receive.

GroGApp 1.0 Now in the iOS App Store!

After over a month of dealing with Apple’s approval process, GroGApp is now available on the App Store! This means you should go download it. Right now. Follow @justin once you do. Also, go download the source code and do stuff with it. This leaves a couple of questions.

Why does the website still say it’s pending approval?

I’m in Georgia for a job interview, and I’m a little exhausted from all the driving. That’s why it took me so long to announce that the app was in the store to begin with. I’ll fix it once I get home.

Will there be an Android version? When?

I’ve been asked this by pretty much everyone. The answer is, “I don’t know,” to both. I find the Android SDK a bit less pleasant to deal with than that of iOS, and I don’t really feel like dealing with it right now. Hey, there’s a reason apps tend to be iOS-first. 

Although the API is open (with the only documentation being the Swift code for the iOS app, but…), so feel free to beat me to it, for those of you who loathe the Android SDK less than I do.

My Perspective on Why Marriage Equality is the Only Way that Makes Legal Sense

Needless to say, with me living in the South, there have been a lot of people angry over the marriage equality ruling. And with the South being full of people who aren’t exactly known for being the smartest, a lot of opinions have been going around on why the ruling is “unfair” because it doesn’t respect “state’s rights,” often citing the Tenth Amendment. I’m going to explain why it isn’t as simple as these people think it is, and why state’s rights could never apply to the level they think they do. It’s also worthy of mention that these people just last week were up in arms defending their “state’s rights” to put a Confederate flag over their state capitol. I don’t plan to discuss that today. I am simply going to say this. If you want to put the Redneck Nazi flag in your distended yard full of junk or on your beaten up old pickup truck, fine. But a state has zero right to waste my tax dollars on purchasing and maintaining that symbol of ignorance.

With all that flag nonsense out of the way (although I will refer to it once more before this post is up), time to get back to the matter at hand. I need to start out by establishing the parameters for this discussion. It is not about religion. People are intermingling a discussion on whether homosexuality is “right” or “wrong” into this, which more or less instantly invalidates their opinions. I’m not at all saying that people shouldn’t be allowed to have that discussion. I’m saying it has nothing to do with the discussion at hand: the legality of same-sex marriage. You can talk about the law of the land, or you can talk about religion. The two have nothing to do with each other though, so it’s inappropriate to talk about both in the same context. There is a difference, and for good reason. Case in point: Saudi Arabia, a country that acknowledges no difference between the two. With that being said, I will not respond to commentary, here or elsewhere, that tries to discuss religion.

TL;DR: Religion is outside the scope of this article.

That leaves the scope of this article to be the Supreme Court ruling legalizing same-sex marriage across the country. I am particularly going to discuss it against the “state’s rights” perspective. That is, most of the people in the South arguing against same-sex marriage argue that state’s rights have been violated, and states should be able to decide for themselves. I’m going to present both the short version and the long version of my thoughts on this.

The Short Version: Remember the Confederate flag debate? As most of the people arguing against same-sex marriage are the same ones thinking a state capitol should fly the Redneck Nazi flag (I do realize there are exceptions), I think that answer is safely a yes. Remember how that ended? State’s rights lost. The end.

The Long Version:

Quoted here is the Tenth Amendment to the Constitution, the text being used to argue against a blanket ruling legalizing same-sex marriage.

The powers not delegated to the United States by the Constitution, nor prohibited by it to the States, are reserved to the States respectively, or to the people.

So. This means, if there isn’t anything else in the Constitution relevant to this, the Supreme Court ruling was wrong, right? Well, the whole point of the ruling is that the Fourteenth Amendment applies here, and I personally agree with that sentiment. But, for the sake of this argument, I’ll concede that hypothetically, it doesn’t apply here. Let’s continue.

There is in fact part of the Constitution that applies quite directly to this. Not even an amendment, but part of the Constitution proper. It is known as the Full Faith and Credit Clause, found in Article IV, Section 1, and quoted here in full for convenience.

Full faith and credit shall be given in each state to the public acts, records, and judicial proceedings of every other state. And the Congress may by general laws prescribe the manner in which such acts, records, and proceedings shall be proved, and the effect thereof.

What this means, in a nutshell, is that legal proceedings (including licenses) issued in one state must be acknowledged by any other state. To anyone with common sense, that would include a marriage license. So as long as a forward-thinking state is willing to issue a marriage license to same-sex couples (so here we’ll only consider the states that legalized it by popular vote, because once again, I’m writing this argument to the “let the people of each state decide” people). And yes, it was legalized in many states by popular vote. I know that, at the bare minimum, Maine, Maryland, and Washington did. According to the Constitution, the Fourteenth Amendment completely aside, a same-sex marriage license issued in one state is every bit as legal in any other state as your Louisiana driver’s license is legal in Texas (for those reading this from somewhere other than my hometown, for context, I live in a town in Louisiana so close to the border, a lot of people think it’s in Texas).

What I’m trying to get at here is that even if you don’t agree with the Supreme Court’s interpretation of the Fourteenth Amendment, the Full Faith and Credit Clause quite clearly requires your backwards redneck state to acknowledge a marriage licensed in any other state. And once that is acknowledged, actually issuing a marriage in a given state is a mere formality.

Needless to say, with this knowledge in hand, I would imagine many people would desire to repeal the Full Faith and Credit Clause. To quote Alexander Pope:

A little learning is a dangerous thing; drink deep, or taste not the Pierian spring: there shallow draughts intoxicate the brain, and drinking largely sobers us again.

Let me explain why this would be a terrible idea to those people, unless you never leave the state you live in. The Full Faith and Credit Clause is also what makes your Louisiana driver’s license valid in Texas or any other state. In a world without it, you’d have to stop at every state line (kinda like at an international border). But then you’d have to find some way to get to the nearest DMV and obtain a license, in every state you wanted to get a license in.

TL;DR: Like being able to use your driver’s license in any state you drive into? If you want to keep that, nationwide same-sex marriage is here to stay.

I usually try to stay quiet about politics. But with my overal political ideology being of a largely libertarian bent, I manage to anger both the left and the right, so I think I might be a little more open about politics now. Yes, I’ll have a bunch of people that disagree with me, but I have the consolation that I’ll offend everyone equally. And I know that my intended audience will probably disagree with me on this (and I know it won’t change their minds, but I just wanted to point out the issues I take with their reasoning anyway), but I probably agree with you on a bunch of other things, so don’t sweat it.

Censorship and the App Store

It would seem as though I am the newest member of the elite club of those who have had their iOS app censored by Apple over political reasons. Furthermore, I stand as one of the few who will continue to stand for what I believe is right and accept the fact that it just won’t be in the App Store, rather than alter one of my core values in order to reach acceptance. Especially since, with the release of Xcode 7, you can just grab the source and build it yourself. Sure it’s a little harder, but it’s something anybody with a little patience should be able to do.

Oh, right. A little back story. GroG Platform is a social networking service built by me. Its goals are the ability to define exactly who sees what, and free API access for all (as a response to Twitter’s draconian stance on third-party clients). Another unique feature of it is that it has an anything-goes content policy. As long as content posted to it is legal, it’s allowed. Of course, when served with a legal demand to remove content, I will. I heard jail is a nasty place and I’d like to not find out. But, beyond that, I have no intention to ever remove content that a user believes to be objectionable. Opinions on what is and isn’t objectionable are extremely subjective, and that’s a slippery slope. Furthermore, I believe in the ideal that free speech exists to protect unpopular speech, not popular speech. Therefore, I believe it is wrong to silence an opinion just because it is unpopular, even if I vehemently disagree with such opinions. Anyway, Apple rejected my app because of this. Since GroGApp is the only thing I ever planned to publish to the App Store (aside from a tic tac toe game I published about four years ago), I can risk losing my dev program membership, which I fully realize is a possible consequence of publishing an app rejection letter. With that being said, following is the notice in full:

June 15, 2015 at 12:04 PM
From Apple
14.3 – Apps that display user generated content must include a method for filtering objectionable material, a mechanism for users to flag offensive content, and the ability to block abusive users from the service
14.3 Details

Your app enables the display of user-generated content but does not have the required precautions in place.

Specifically, the app needs an EULA for the user generated content.

Next Steps

It is necessary that you put all of the following precautions in place:

– Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content
– Use moderators to flag and remove inappropriate content and offensive users
– Users need a mechanism to flag objectionable content and report users generating this content
– Developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content
– Developer needs a method for ejecting users who violate the terms of the EULA

First of all, I’d like to point out that I’m not opposed to one of these conditions. Users should be able to block other users. The basic idea of GroG is that users should be in full control of what they do and don’t see. As a matter of fact, it’s something I’ll probably implement once I have the free time. However, that’s where I draw the line. It isn’t my place to censor content. Ever. Assuming the content in question is legal, I’ll give it a place to exist. Even reddit has fallen from this stance, as a large company with investors to appease. As an independent developer who funds this entire operation out of my own (sadly, very shallow) pockets, I fortunately have no one to answer to. And, “I may not agree with what you say, but I will defend to the death your right to say it,” is and always will be my stance toward content censorship. Do note that I personally find the content that was recently banned from reddit pretty disgusting (to the point where I don’t even want to name some of the subreddits that didn’t get banned). However, I refuse to let that obstruct my ideals, and I will never play the role of morality police. There’s some stuff that’s still on there that I would never ever want to see. But am I okay with the fact that it exists? Absolutely. I’m just never going to look at that stuff.

By far the most egregious of these conditions is that they expect me to actively police and ban users. This flagrantly flies in the face of everything I believe in, and I’d never be able to agree to that in good conscience. I’m not Big Brother, and there is no place for the Thought Police on GroG, nor will there ever be.

Back to me and what I’m doing, there was a short list of features I wanted to add to the iOS app after the first version got approved. However, since it wasn’t approved, I’ll add these features and commit the changes to the Github repo after I finish the Android app and put it up in the Play Store (I’ll also be putting the source for that up on Github once there’s actually anything of note). As far as I know, anything can go there that isn’t a straight-up porn app. I’ll be working on the Android app in the coming months (I’d say I’m maybe 1-5% done with it right now – I’m mainly balking at all the UI stuff I would need to do =/).

In the mean time, I’d like to reiterate that the source code for the app is available on Github, and anyone with Xcode 7 can build the app for their device right now. The GroG Platform and I will continue to stand for your rights, promising a platform where anyone can express themselves freely.