Category: Stream of Consciousness

Shout-Out to Nathan Rabin

A few months back, I tried to start blogging regularly again.

It lasted five days and five posts, at which point I started experiencing some debilitating thumb pain (carpal tunnel?). The thumb pain's not gone but it's under better control, so maybe I'll take another crack at it.

As I noted at the time, there were a couple things that inspired me to give another shot at regular blogging. One was an angry Sonic the Hedgehog fan who was so incensed by a years-old series of blog posts about Ken Penders that he just had to tell me about it when he came across my name in an entirely unrelated conversation. (Since then I've actually toyed with the idea of reposting my old, 1997-era Sonic the Hedgehog comic reviews here, but unfortunately I haven't been able to find them. They were on the same hard drive as KateStory Book IX, which I went to all that trouble to recover nine years ago; I suspect the files are still somewhere in my giant stack of hard drives but I haven't been able to find them.)

But another big inspiration was a blog called Nathan Rabin's Happy Place.

I first became a fan of Nathan Rabin about a decade ago, when he was the head writer of The AV Club and writing a column then called My Year of Flops. Every week for a year, Rabin reviewed a movie that was a commercial failure and evaluated whether it was really as bad as its reputation suggests.

I love bad movies. I love good movies. I love movies that other people don't love. My Year of Flops was right smack-dab in my wheelhouse.

My Year of Flops was eventually completed and released as a book. But the column continued after that first year, under the title My World of Flops; it expanded beyond failed films to include failed books, albums, and recently even a failed presidential campaign.

The AV Club is no longer the kind of site that does features like My World of Flops. So Rabin has started his own, Patreon-supported blog, Nathan Rabin's Happy Place. He's still writing My World of Flops, and other, similar features where he examines lesser-loved media (like Cannon Films). He also talks about other stuff, from politics to brutally honest discussions of his life experiences, including financial hardships and struggles with depression.

But my favorite of his features right now is The Weird Accordion to Al. Rabin literally wrote the book on "Weird Al" Yankovic (it's called Weird Al: The Book), and now he's taking a song-by-song look at Al's entire discography. (As of this writing he's up to Talk Soup from Alapalooza.)

I love Weird Al. I've loved Weird Al for over 25 years. Hell, all this talk about Weird Al has me thinking maybe I'll write some posts about Weird Al. (They won't be as good as Rabin's. But they'll have the added benefit of being about me.)

If you're a "Weird Al" Yankovic fan, you owe it to yourself to read The Weird Accordion to Al. And hey, if you like what you see and can spare a little money for it, kick in on Nathan's Patreon.

It's not just that Nathan's work is enjoyable, insightful, and frequently funny. It's also that his enthusiasm for his blog is infectious. I read a post where he talked about how easy it's turned out to be to write blog posts every day, and I got to thinking, shit, I used to do that for free, I enjoyed it so much. And I thought, y'know, maybe I should start doing that again. I'm going to be writing about whatever the hell's on my mind anyway, whether it's here or on Brontoforumus or The Avocado or the Techdirt comments -- so what the hell, why not here?

So thanks, Nathan Rabin, for giving me the bug again. I don't think I'll manage the same pace I did back in '11-'13 (seven posts a week about Frank Zappa, five posts a week about other stuff), but I'm still going to try and post more often.

And I'm sure those Sonic the Hedgehog comic book reviews are around here somewhere.

Cassini and Me

In 2004, in the summer before my last year at NAU, I worked at USGS, on the Astrogeology Team. What I did there was nothing special, but it was a pretty special place to be, especially at that time.

I worked on a package called ISIS, Integrated Software for Imagers and Spectrometers. It was software for processing high-resolution photos we received from sources including the Lunar Orbiter, the Mars Rover...and Cassini.

Cassini entered Saturn orbit shortly after I started working there. It was an exciting time. I got to spend a lot of time looking at images that looked a lot like these:

Enceladus features
Enceladus features.
I grabbed this image from FiveThirtyEight. Original source is, obviously, NASA.

My work on ISIS wasn't anything high-level or complicated. I edited makefiles, so that the ISIS source code (a mix of C and FORTRAN) would compile for different platforms. If memory serves, we supported Windows, OSX, Solaris, and x86 GNU/Linux.

My work wasn't glamorous, and I'm sure it's all long-gone for the codebase. But I was thrilled just to be on the team, to be part of something like that -- getting photos back from Saturn.

It's been more than thirteen years, and I've had nearly that many jobs, since my time at USGS. But I still feel that connection to the work and to the project. In all that time, every time I've see a headline about Cassini or Saturn, I've checked out the article. My favorite part is always the pictures.

Today, Cassini concludes its journey, burning up on entry into Saturn's atmosphere, transmitting data back for as long as it can.

It's been a good run. And I'll never forget the small part I played in it.

Net Neutrality Day

Today's the Net Neutrality Day of Action.

Here's what I said about net neutrality during the open comment period in 2014, before the Title II rules passed, when the FCC was pushing a policy that would allow ISPs to charge websites for fast lanes:

This is exactly the kind of policy you get when you put a cable company lobbyist in charge of the FCC: a plan nobody but the cable companies could possibly want, and that seeks to make the Internet work like cable TV.

This plan has no benefit whatsoever to consumers. Cable companies demand extortion money from content providers; the providers who are willing and able to pay pass that cost on to their consumers (as Netflix has already done by raising its streaming subscription price), and the providers who aren't are put at a crippling disadvantage. You can bet the ever-increasing bottom dollar on your cable bill that if Comcast had had the opportunity to demand a premium from YouTube to stream video in 2005, we wouldn't be talking about YouTube today -- though maybe that would have been good news for Real Networks, as we'd probably still be limping along on the vastly inferior RealPlayer. Buffering...

This proposal is a government handout to the kind of companies that need it the least: monopolies and near-monopolies that already provide poor service at exorbitant prices, and suffer no market backlash for the simple reason that they provide a necessary service and have no competition.

Google doesn't want this. Microsoft doesn't want this. Netflix doesn't want this. Amazon doesn't want this. Consumers don't want this, and small businesses sure as hell don't want this. The only ones who DO want this are the cable companies who pick our pockets every month -- and their former employees like Chairman Wheeler.

And here's what I said during the open comment period this year, with the FCC preparing to repeal the Title II rules and, once again, proposing Internet fast lanes:

Seeking public comment? This is a farce. Chairman Pai heard exactly what the public had to say in 2014. The public responded, overwhelmingly, in support of net neutrality; indeed, the public interest was so high that the traffic brought down fcc.gov.

If Chairman Pai cared what the public thought, he would not be reversing a rule supported by the public in order to grant more power to internet service providers, some of the most despised companies in America. Nobody wants this except Comcast, AT&T, Charter, and Time Warner.

There is no free market competition in broadband Internet in America. There is no incentive for ISPs to compete on price or on service. We, as Americans, are a captive audience; our only choices are "use whatever ISP is available at our address" and "try to participate in twenty-first century America without Internet access".

We've already seen AT&T prioritizing its own traffic and Comcast banning protocols it didn't like. We need net neutrality protections to prevent predatory, monopolistic ISPs from engaging in that behavior. This is obvious to every American who's seen their monthly bill go up while the quality of service goes down.

But Chairman Pai has made it abundantly clear that he doesn't care what the American public has to say. If he did, he wouldn't even be considering repealing net neutrality.

I was wrong about Wheeler. He backed away from the fast-lane proposal, and passed Title II regulation. It wasn't perfect, but it was better than I ever thought we'd get.

I don't think I'm wrong about Pai. I'd love to be, but I think the fix is in. Pai doesn't give a fuck what the American public has to say.

But it's not about Pai. Pai won't last forever. Trump won't last forever. Even if the Republican majority in Congress sticks around, they're going to have to face their constituents sooner or later. And while net neutrality is a partisan issue on Capitol Hill, it's got broad bipartisan support everywhere else.

I don't think today's protests are going to make a damn bit of difference to Pai. But this is a long game. We need to keep the pressure on.

And hey, I've been surprised before. I thought SOPA and the TPP were foregone conclusions too. Maybe I'll be pleasantly surprised again.

Tracking

I wrote a post about VPNs a few months back, referring to the recent repeal of Obama-era regulations that would have prevented ISPs from selling customer browsing history.

There's a common refrain I've seen from people who favor the repeal, both in the government and in Internet comments sections: "Google and Facebook track you and sell your data, and the government doesn't stop them from doing it, so it's not fair to stop your ISP from doing it!"

Now, this argument is fundamentally dishonest, for the following reasons, off the top of my head:

  • Your ISP sits between you and every single site you visit. Google and Facebook have extensive tracking operations, but not that extensive.

  • You can use the Internet without using Facebook or Google. It may not be easy, but it's possible. You can't use the Internet without your ISP.

  • Google and Facebook's business model is that they provide a service and, in exchange, you allow them to gather your personal data and resell it to third parties. Your ISP's business model is that it provides service and, in exchange, you pay them eighty fucking dollars a month. Did I say eighty? They just kicked it up to one-thirty, if you want unlimited data.

    When you give your personal data to Facebook or Google to sell to third parties, you get their service in return. When you give your personal data to your ISP to sell to third parties, you get fucking nothing in return, because you're already paying your ISP money in exchange for Internet service. Is your ISP going to lower your bill in exchange for taking your personal information to sell to third parties? LOLno.

  • Google and Facebook have competitors. Those competitors don't have the dominant market position that Google and Facebook do; hell, maybe they're just plain not as good. But they exist. They're options.

    There is no significant broadband competition in the US. If I don't like my ISP, I can't just switch to another one, because there is no other one available at my address. My choices consist of Cox, no Internet, and moving.

    There's no incentive for your ISP to behave ethically. There's no incentive for your ISP to charge you fairly. There's no incentive for your ISP to provide quality service. My ISP is a monopoly. Yours probably is too. Or, at best, it might have one competitor that does all the same shit.

  • Google and Facebook have pages where you can opt out of tracking.

But. Despite the intellectual dishonesty of the "but Google and Facebook track you!" argument, there is a kernel of truth in there: yes, Google and Facebook track you, yes it's difficult to avoid that tracking, and no, there are no regulations in place to protect your data. This is a problem.

So, shortly after writing that post, I removed the Google Analytics code from this site. And now I've also updated the site so that the fonts it uses are hosted here at corporate-sellout.com, not called from Google Fonts (hat tip to the Disable Google Fonts WordPress plugin). I'm still using a Google Captcha on the Contact page for now, but I'm looking at alternatives. Plus, there are YouTube videos embedded on this site...and, well, there's nothing I can really do about preventing Google from tracking you when you load YouTube videos. Sorry about that.

I'm also planning on adding SSL to the site, eventually, but I haven't gotten around to it yet.

This blog's not a business. Occasionally somebody buys something through an Amazon Associates link, or buys my book (thanks!), but I've got a day job; I'm not here to make money. I write stuff here because I like to write stuff. Sometimes people like it, and that's cool, and it's cool to know that people are reading. But that's as far as my interest in analytics goes.

I don't resell data; I don't do SEO or A/B headlines or clickbait or any other kind of crap to try and drive people here -- hell, I hate all that shit. But I like looking at site stats once in awhile to see where people are coming from, where somebody's mentioned me, and to laugh at search terms like "did stan lee bone at jack kirby's wife".

So I'm looking for a new stats package. Server-side; just for me, not Google.

Meanwhile, I am looking for ways to use Google as little as possible, not just on this site but in general. I think I can probably get a few more posts out of that subject.

Hide Techdirt Comments

Updated 2022-02-28: Updated script for the new Techdirt comment engine.


Updated 2021-04-30: Fixed a bug that was preventing some replies from being hidden.


Updated 2019-09-11: Minor update because the site layout has changed slightly and the old version was no longer working.


Updated 2019-04-11: General cleanup; change to OOP.

Remove some techniques that are no longer needed since recent Techdirt update; add handling for some new types of predictable troll behavior.

Better blocking of flagged users who aren't logged in.


Updated 2018-08-19: Hide comments that have already been hidden by user flagging (this is mostly useful if the hideReplies boolean is set true).


Updated 2018-08-15: Added hideLoggedOut. If set true, then the script will hide any user who isn't logged in, unless their name is in the whitelist array.

Added hideReplies. If set true, then when the script hides a comment it will also hide all the replies to the comment.

If you set both hideLoggedOut and hideReplies to true, then the Techdirt comments section gets much quieter.


Updated 2018-08-09: Some doofus has been impersonating me. Script will now automatically flag and hide posts by fake Thad.

In addition to hiding posts if their subject line is too long, the script will now also hide posts if the username is too long. Additionally, the script can automatically flag posts if the subject or username exceeds a specified length.

This thing's gotten complicated enough that I think it's probably subject to copyright now. I've added a license. I chose a 3-Clause BSD License.


Updated 2018-06-20: Ignore mixed-case and non-alpha characters.


Updated 2018-03-06: Fixed case where usernames inside links were not being blocked.


Updated 2018-03-04: Added function to hide long subject lines, because some trolls like to write manifesto-length gibberish in the Subject: line.

There is now a maxSubjectLength variable (default value: 50). Any subject line exceeding that length will be hidden. If you reply to a post with a subject line exceeding that length, your reply's subject line will default to "Re: tl;dr".


Updated 2017-07-12: Added @include.


In my previous post, I mentioned that I spend too much of my life responding to trolls on Techdirt.

With that realization, I whipped up a quick Greasemonkey/Tampermonkey script to block all posts from specified usernames.

// ==UserScript==
// @name          Hide Techdirt Comments
// @namespace     https://corporate-sellout.com
// @description	  Hide comments on Techdirt, based on user and other criteria.
// @include       https://www.techdirt.com/*
// @require       https://c0.wp.com/c/5.9.1/wp-includes/js/jquery/jquery.min.js
// ==/UserScript==

const $ = jQuery;

// Boolean settings:
// if true, hide all posts from users who aren't logged in
const hideLoggedOut = true,

// if true, hide all replies to hidden posts
  hideReplies = true;

// List of users whose comments you want to hide -- collect 'em all!
const blacklistedUsers = [
  'btr1701',
  'Koby',
  'Richard Bennett'
],

// If an anonymous post begins with one of these strings, hide it
blacklistedStrings = [
  'out_of_the_blue',
  'Nothing to hide, nothing to fear'
],

// List of users whose comments you don't want to hide
whitelistedUsers = [
  'Chip',
  'Thad'
];

// global variable for storing gravatars of non-logged-in posters who have been blocked
let blockedGravatars = [],

// global variable for storing comments that aren't hidden
comments = [];

// check all non-hidden comments for a blocked gravatar
// (check each time a gravatar is blocked)
function checkCommentsForBlockedGravatar(blockedGravatar) {
  for(let i=0; i<comments.length; i++) {
    if(comments[i].gravatar === blockedGravatar) {
      comments[i].gravatarBlocked = true;
      comments[i].removeComment();
    }
  }
}


// Comment class
// Constructor
function Comment(node) {
  this.container = node;
  this.body = $('> .comment-body', this.container);
  this.nameBlock = $('.comment-author', this.body);
  this.name = $('> .fn', this.nameBlock).text();
  this.linkNode = $('> .url', this.nameBlock);
  this.loggedIn = this.linkNode.length > 0
    && this.linkNode.attr('href').startsWith('https://www.techdirt.com/user/');
  this.gravatar = $('> img', this.nameBlock).attr('src');
  this.gravatarBlocked = false;
  this.flagBtn = $('.report-button', this.body);
  this.alreadyHidden = this.container.hasClass('flagged');
  this.alreadyFlagged = this.flagBtn.hasClass('has-rating');
  this.postContent = $('.comment-content', this.body).text().trim();
  
  // If I click on the "Flag" button, remove the comment
  var that = this;
  that.flagBtn.one('click', function() {
    that.removeComment();
  });
}

// Functions
Comment.prototype = {
  constructor: Comment,
  
  checkForBlockedGravatar: function() {
    if(this.loggedIn) {
      return false;
    } else if(this.gravatarBlocked !== true) {
      // only need to find gravatar in blockedGravatars array once;
      // once this.gravatarBlocked is set true, then it will always be true.
      this.gravatarBlocked = blockedGravatars.includes(this.gravatar);
    }
    return this.gravatarBlocked;
  },
  
  blockGravatar: function() {
    this.gravatarBlocked = true;
    blockedGravatars.push(this.gravatar);
    checkCommentsForBlockedGravatar(this.gravatar);
  },
  
  removeComment: function() {
    if(hideReplies === true) {
      this.container.remove();
    } else {
      // replace comment with 'removed'
      // -- because replies will still be visible, this is necessary
      // so you can tell there's a missing post that they're replying to.
      this.body.text('removed');
    }
    if(!this.loggedIn && !this.gravatarBlocked) {
      this.blockGravatar();
    }
  },
  
  badStart: function() {
    for(let i=0; i<blacklistedStrings.length; i++) {
      if(this.postContent.startsWith(blacklistedStrings[i])) {
        return true;
      }
    }
    return false;
  },
  
  check: function() {
    if(
      this.alreadyHidden
      || this.alreadyFlagged
      || this.checkForBlockedGravatar() === true
      || blacklistedUsers.includes(this.name)
      || (this.loggedIn === false && hideLoggedOut === true && !whitelistedUsers.includes(this.name))
      || (this.name === 'Anonymous Coward' && this.badStart())
    ) {
      this.removeComment();
      return true;
    }
    return false;
  }
};

$('div.comment').each(function() {
  // skip comment if it's already been removed
  if(document.contains($(this)[0])) {
    const cmt = new Comment($(this));
    if(cmt.check() === false) {
      comments.push(cmt);
    }
  }
});

License

Copyright 2017-2021 Thaddeus R R Boyd

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Further Thoughts

(Note: The script was much smaller when I originally wrote this part of the post.)

This is a blunt instrument; it took about five minutes to write. It lacks subtlety and nuance.

Blocking all anonymous posters on Techdirt is not an ideal solution; most anons aren't trolls. (Most trolls, however, are anons.) I apologize to all the innocent anons blocked by this script.

I could make the script more precise. Techdirt's trolls are creatures of habit with certain noticeable verbal tics (more on that below); if I had a good parser, I think I could whip up a scoring system that could recognize troll posts with a high degree of accuracy.

The question is, how much time do I want to spend on that?

On the one hand, "five minutes in a text editor" is the appropriate amount of time for dealing with forum trolls. Anything else seems like more effort and attention than they deserve.

On the other hand, it's a potentially interesting project, I've always wanted to spend some time studying natural language processing, and any programming project is time well-spent if it teaches you a new skill.

So I haven't decided yet. Here's the script as it stands, in its initial, blunt-instrument-that-took-five-minutes form. If I update the script, I'll update this post.

Chip Tips

Lastly, as I can no longer see anonymous posts, this means I will likely have to give up my beloved sockpuppet, Chip, the man who hates all government regulations and loves to eat leaded paint chips. To anyone and everyone else who wants to keep the spirit of Chip alive, you have my blessing to post under his name.

A few tips on how to write as Chip:

  • Never use the backspace key.
  • Remember to add random Capital Letters and "quotation marks" to your posts, in Places where they "don't" make Sense!
  • Most sentences should end with Exclamation Points!
  • I told you So!
  • I have "lots" of Solutions! So many I can't Name a single "one"!
  • Sycophantic Idiots!
  • Every Nation eats the Paint chips it Deserves!

Boy, my regular readers are going to have no fucking idea what I'm talking about in this post.

Come back tomorrow; I plan on having a post about online privacy that should be a little less niche.

Fanmail from Some Flounder

I've been meaning to blog more.

I like blogging. I like writing about shit. People seem to enjoy reading it. My friends keep telling me I should start blogging again (hi Friday!).

And I've been reading Nathan Rabin's Happy Place and really enjoying what Rabin has to say, and his enthusiasm about just being able to write about whatever he feels like.

But the kicker? Oh man.

The other day, I was checking replies to my Disqus posts.

And -- in response to a post I had written in the AV Club comments section five months ago, concerning the Black Panther: World of Wakanda comic -- some nice young fellow had written this:

Your blog sucks. Go back to sucking Ken Penders' dick.

Sonic the Hedgehog fandom is weird, you guys.

So okay, dude's obviously a troll; a quick gander at his posting history shows basically everything else he's ever written on Disqus has been arguing with atheists.

But the Penders thing? That's not random. It's far too specific.

My most recent Penders post was in 2015. At the time of this writing, it is on page 4 of this blog. So this is not a guy who decided, at random, to troll me, clicked on my name, and picked one of the posts on my blog to talk shit about.

And neither is this a guy who just now saw my Penders posts -- saw a link to them, found them on Google, whatever --, got incensed by them, and decided to write me a nastygram. Even assuming the gentlemen in question failed to notice the "Contact" link at the top of the page and instead, inexplicably, decided to look up my Disqus profile, he would have replied to one of my recent Disqus posts, not one that was five months old.

No. This is a dude who saw my posts about Ken Penders at some earlier date. Maybe as far back as 2013. And remembered them. And remembered my name. And, when he was randomly reading the comments section of an AV Club article, saw my name and felt the need to tell me off because, four years ago, I wrote some blog posts explaining that Ken Penders had a valid legal case against Archie Comics and Sega (or, as it's known in Sonic Fanboy-ese, "sucked Ken Penders' dick").

You know what? That is weirdly fucking flattering. I made an impact on this guy. People read my blog, and it matters to them.

I mean, sure, this guy is a troll and, clearly, a Sonic the Hedgehog fanboy -- those dudes are intense. I am sure he is not a representative member of my audience.

But the thing about writing whatever the hell I feel like is, I never know what's going to resonate with people.

The most attention I've ever gotten was when the online comic book press picked up on my posts about the never-finished-or-published 1990s Final Fantasy comic -- which, at that point, were already more than two years old.

And, in that same vein, my Final Fantasy 7 retrospective series continues to be popular. (Or at least did the last time I looked at my site stats. I've removed Google Analytics from this site -- that's a subject for another post -- but I'd like to get a new stats tool set up, because I like seeing what people are reading, where they're coming from, and what search terms they're using to get here.)

But these creators' rights pieces seem to get a pretty good amount of attention, too. People used to link my post on Marvel v Kirby all the time. And I once got a very nice E-Mail from Marc Tyler Nobleman for my Not My Batman post and its recognition of Bill Finger. (By the way: Batman & Bill is good; you should watch it.)

And so I'd like to get on back to yammering on about just whatever the hell it is I feel like yammering on about at the moment. Because what the hell; if I don't yammer here, I'm just going to yammer somewhere else, and frankly I spend far more time responding to trolls in the Techdirt comments section than a healthy person should.

I don't know if I'll manage 5-day-a-week posting like I used to. Maybe I will, maybe I won't. (Today I am posting on a Saturday. Whee!)

Course, if I do start blogging regularly again now, there's probably something to psychoanalyze in my doing it in response to our good friend Mr. "Your blog sucks" up there. I think humans are wired to notice criticism more than praise, and I suppose I'm no exception.

But what the hell; like I said, I've been planning to get back to blogging for awhile now anyway. And as criticism goes, I'm pretty sure this is the most fun hate mail I've ever gotten. Even better than the last unsolicited hate mail I got from a disgruntled Sonic fan, which was over 20 years ago and, in keeping with the whole "casual homophobia" theme, contained the phrase "You hump Robotnik's ugly butt!"

Sonic the Hedgehog fandom is weird, you guys.

Down-Ballot

The other day I wrote a Letter to the Editor to the Arizona Republic. I don't know if it made the print edition, but it's up on azcentral.com.

The letter was in response to an op/ed by Lisa Loo, titled Do judges justice. Finish marking your ballot. I appreciate Loo's message; down-ballot races are important, and your vote counts for a lot more, proportionally, than your vote for President.

But it can be damned difficult to find information on down-ballot candidates and initiatives; the less high-profile and glamorous the race, the harder it is to learn about it.

Loo points to Judicial Performance Review (azjudges.info), which scores judges on a variety of criteria.

The problem is, without context, those scores are just numbers; they don't mean anything if no explanation is provided.

So here's my letter to the editor, quoted in full:

I appreciated Lisa Loo's op-ed on the importance of studying up on judges and filling out the complete ballot, but it's easier said than done.

I know Jo Lynn Gentry is the only judge to receive failing marks, but I have been unable to find any explanation of why. Low scores out of context lack meaning, and I'm reluctant to cast a vote without an explanation for why I'm casting it.

It's not just the judges; a number of down-ballot candidates and local initiatives are obscure and have little information available. (Should TUHSD be allowed to sell two lots of property? I have no idea!)

What can we as voters do to educate ourselves when so little information is available?

The Republic didn't respond with any good answers for these down-ballot races.

A commenter named Jay Martin added this:

Exactly, I've been scouring why such a low score for hours and the only thing I can think of is that she ruled against blocking Prop 205 from the ballot and people against the measure are now upset at this.

Prop 205 is the ballot initiative to legalize marijuana. (Sort of. It's not full legalization, and it heavily favors existing vendors, basically setting up a cartel. Suffice it to say, I'm voting Yes because any move to stop putting people in prison for marijuana use is a step in the right direction, even if this isn't the ideal way of doing it.) County Attorney Bill Montgomery challenged it and tried to prevent it from getting on the ballot; Judge Gentry dismissed his challenge.

Could that be the reason Gentry has received such low marks?

In a word, no. Gentry's dismissal of the 205 challenge happened two months after Judicial Performance Review released her low scores.

So I have no idea why she Does Not Meet Expectations. And I'm not willing to vote to remove her without a reason. So I guess I get to decide between voting to keep her or not voting on her either way.

I still don't know what to do about that TUHSD thing, either, but I've got a friend who works at Marcos; I guess I should text him and ask if he knows what the deal is.

Calandra Vargas Won't Stop Spamming Me

In 2006, I made a mistake.

I was working for a small company in north Phoenix. (That was not the mistake. ...Well, actually, it was, but not the one I'm here to talk about today.) And I represented that company in a networking group of local small businesses.

One of the people in the group was Sam Crump. I'm not used to using people's real names when I tell stories like this, but Sam's a public figure, so I'm going to go ahead and make an exception in this case.

Sam owns a law firm. I can't tell you anything about it from personal experience, but I hear good things.

And in 2006, Sam decided to run for the state legislature.

Sam's politics are not my politics; he would later describe himself as a "Tea Party Republican," though people weren't calling themselves that yet. I wouldn't have voted for him. But I liked him; he was a nice guy, and so when he asked us all to join his mailing list, I went ahead and wrote my E-Mail down.

Never put your E-Mail address on a political mailing list. Not for a politician you agree with, and certainly not for one whose views you find appalling. No matter how much you like him as a person.

Now, I don't know for sure that Sam or his people sold or gave away my E-Mail address to some group that collects E-Mail addresses for various fringe Republican candidates. It could be just a coincidence. But it's an E-Mail address I don't give out to a lot of people, it's the only E-Mail where I regularly get right-wing spam, and it just so happens that I started getting right-wing spam at that address after giving it to a local right-wing politician. Maybe whatever godforsaken list that address got put on got it from someplace else. But if I had to guess, I'd say they got it from Sam.

In the past, I've gotten spam for Arizona political candidates including Pamela Gorman and Joe Arpaio. But the latest politician who won't leave me the fuck alone is a woman named Calandra Vargas, who is running for Congress in Colorado Springs.

I have never set foot in the state of Colorado.

In fact, I've explained that to Ms. Vargas, or whoever's reading her inbox (if anybody), multiple times, in between clicking the Unsubscribe link at the bottom of her E-Mails.

The campaign's response to my first unsubscribe request, a few weeks ago, was to send me three more fucking E-Mails. When I got them, I clicked the Unsubscribe link again, and sent a reply letting Ms. Vargas, or whoever's reading her inbox (if anybody), know that if I received any more E-Mails from her campaign I would report her to the FCC for violating the CAN-SPAM Act.

I got another E-Mail from the Vargas campaign today.

Calandra Vargas is a politician, so she's probably not used to dealing with people who keep their promises. But I'm a man of my word, and I filed that complaint. And if I hear from her again, I'll file another one.

Here's the FCC's guide to reporting spam. If you're getting unsolicited E-Mails from politicians who won't let you unsubscribe from their lists, they're breaking the law.

The Zappa Kickstarter

Has it really been over two years since my last Zappa post? Well, time to dust off the most-used tag on this here blog.

If you're a Zappa fan, you've probably already heard about the Who the Fuck is Frank Zappa? Kickstarter. But in case you haven't:

Alex Winter (best-known as Bill from the Bill & Ted movies, but more frequently a director these days) is making a documentary about Frank. And as part of the process, he's helping Joe Travers to preserve and digitize the Zappa Vault.

Winter recently explained in Update #18 that the first million dollars raised in the Kickstarter campaign will all go to preserving the Vault, and that he won't put any Kickstarter dollars toward the documentary until and unless it passes $1 million. I think this shows he's got his priorities in order; I definitely want to see the documentary, but I agree with him that the most important step in preserving Zappa's legacy is preserving his work and making sure we don't lose it to degrading tape and film.

The Kickstarter runs through April 8. There are add-on rewards available, too, which don't require you to pledge to the Kickstarter and which will still be available after it ends.

You know, I've always wanted a Zappa for President T-shirt.

Cox Claims to Be Unable to Revoke a DHCP Lease

I've always advocated being kind to tech support people. They have a tough job, it's not their fault you have a problem, and they spend all day dealing with abuse from people who act like it is their fault.

Well, yesterday, for the first time in my life, I cursed out a phone support rep. I'm not proud of it, but in my defense, I'd been talking to support for 90 minutes by that point, and the last 30 of that had been a conversation where this tier-2 rep talked in circles, blamed me for problems with their server, repeatedly said she couldn't help me, refused to listen to my explanations of the problem, and acted like a condescending ass.

Seriously, this is the worst tech support experience I have ever had. Beating out the previous record-holder, the guy who told me that my burned-out power supply wasn't really burned-out, I was probably experiencing a software issue. After I told him there were burn marks on the power connector.

At least that one was funny. The conversation I had with Cox yesterday wasn't funny, just infuriating.

Here's what happened: on Monday evening, when I tried to send an E-Mail, I started getting this error:

An error occurred while sending mail: The mail server sent an incorrect greeting:
fed1rmimpo306.cox.net cox connection refused from [my IP address].

I tried unplugging the modem to see if I'd get a new IP assigned. No luck. I tried turning the computer off and then on again. No luck. I tried sending mail from other devices. Same result.

So on Tuesday afternoon, I pulled up Cox's live support chat to ask for some help.

The rep eventually told me he'd escalate, and that the issue should be fixed within 24 hours.

Just shy of 27 hours later, I pulled up Cox's live support chat again, to ask what the problem was.

The rep -- a different one this time -- quoted me this feedback from the ticket:

Good afternoon, the log below shows the username can send on our servers. This may be a software, device or network issue. Please review the notes and contact the customer.

In other words, they'd tested the wrong thing. The mail server was rejecting my connection, based on my IP address, before my mail client sent my username and password. And Cox's solution to this was...to confirm that my username and password were working.

I explained this to the rep, over the course of 75 excruciating minutes. I demonstrated by disconnecting my phone from my wifi network and sending an E-Mail while connected to my wireless carrier. It worked when I connected to Cox's SMTP server over LTE; the same mail app on the same phone failed when connected to my wifi.

I explained that the mail server was blocking connections from my IP address, and that they needed to either make it stop blocking my IP address or assign me a different IP address.

The rep told me that was impossible, that residential accounts use DHCP, which assigns IP addresses at random.

I told him that I know what DHCP is, and that I wasn't asking for a static IP address, I was just asking for someone to revoke my DHCP lease and assign my modem a new IP address from the DHCP pool.

He told me that the only way to get a new IP address is to disconnect your modem for 24 hours.

I told him that was unacceptable, and I asked if there was anyone else I could talk to.

He gave me a number to call.

The person who answered the phone said she'd escalate to a tier-2 tech. I said, pointedly, that I did not understand why nobody had thought to do that in the preceding 75 minutes.

As it turns out, tier-2 techs are worse than tier-1 techs. Tier-1 techs at least know that they don't know everything, and are willing to ask for help from people who know more than they do. Tier-2 techs think they do know everything, will not ask for help from someone who knows more than they do, and certainly will not listen to a customer who knows more than they do.

Well, probably not all of them. But that was sure as hell my experience with the tier-2 tech I got stuck with.

First, she had the sheer gall to tell me my modem wasn't connected to the Internet.

I told her I could connect to websites, I could receive E-Mail, and that the error message on sending mail was not a timeout, it was a Connection Refused. I added that I was doing this from a computer that was connected to my router by a cable, that I had not accidentally jumped on somebody else's wifi.

She would have none of it. She insisted "We can't see your connection here, so you're not connected." Repeatedly. When I told her that I was clearly connected to the Internet, she just kept telling me that no, I wasn't.

Finally she told me to bypass my router and plug my desktop directly into my modem. I told her that this wouldn't fix anything, because this was happening from multiple devices that all had Internet access. She got huffy and standoffish and told me she couldn't help me if I wasn't willing to do what she asked.

So I did it. I climbed back behind my computer, traced the cable to the router, and swapped it with the one coming from the modem.

Absolutely nothing changed. Except that she said. "Oh. You're running a Linux computer? We don't support Linux."

I responded, "The operating system I am using is not relevant to whether your server is accepting connections from my IP address."

But some reps aren't interested in helping. They're only interested in finding an excuse for why they don't have to help you.

I asked her if there was any way she could determine why my IP was being blocked. I noted that it seemed to be on some sort of blacklist.

She asked if I'd checked whether it was on any public blacklist. I responded that I had, and that it had an expired listing on SORBS from 2013 -- well before it was my IP address; I've only lived in this house since 2014 --, that I hadn't found it in any other blacklist, and that a SORBS listing from over two years ago should not result in my suddenly losing the ability to connect to SMTP two days ago.

She said that if I was on a blacklist, those were handled by third parties and it was my responsibility to get de-listed. I explained that I did not see my IP on any currently-active blacklists, and asked if she could look up what was causing the rejection. She said she couldn't.

I asked if she could reset my IP. She said that the only way to do it would be to shut down my modem for 25 hours. (Already I had somehow lost another hour!)

I told her that was unacceptable, and asked how I could get it reset remotely.

She told me that was impossible, that residential accounts use DHCP, which assigns IP addresses at random, and that the only way to get a new DHCP address is to disconnect your modem for 25 hours.

I told her that it is not impossible, that the same router that provides DHCP leases is capable of revoking them, and that I needed somebody to do that for me.

We went round and round like this for awhile.

At one point, she said, "We can't do that; it's done automatically."

I responded that anything a computer does automatically can also be done manually, and that there is certainly someone in Cox who has the account access to log into the router that is assigning IP addresses and revoke a lease.

She started to explain DHCP to me again -- it was about the fifth time at this point -- and I snapped.

I shouted, "I know how DHCP works; I ran an ISP, for fuck's sake!"

I feel kinda bad about that.

I finally got pushed over to a supervisor -- another twenty minutes on hold -- who tried to tell me that Cox can't help me because they don't support third-party programs like what I'm using, and that if I could send messages from webmail, that's what I should do.

I said, "Are you seriously telling me that Cox does not support sending E-Mail from phones or tablets?"

The supervisor backed off that claim and said that she didn't really understand the technical stuff, that she could send me back to tier 2.

I responded that it had been two hours and I didn't think it was in anyone's best interest for me to continue this conversation, but that if I decided to call back tomorrow, what could I do to get some service?

She said to ask for tier 2 again, and this time ask for a manager.

I'm debating whether I really want to deal with that kind of aggravation, or if I'd be happier just abandoning the Cox E-Mail address that I've been using for fifteen fucking years.

Incidentally, Cox just jacked its prices up by $7 a month. Why is it that every time the cost goes up, the quality of service goes down? I remember the first time they hiked my bill, they dropped Usenet service.

That was in 2009. Since then my bill's gone up $27. My service sucks; several times a day my connection just stops working and I have to restart the modem.

And of course I can't switch to another ISP, because there isn't one available at my address. My "choices", such as they are, are as follows:

  • Pay $74 a month for Cox
  • Steal wifi from a neighbor who's paying for Cox
  • See how far I can get using only my phone's data plan for Internet access

I'm pretty much fucked, like most Americans are on broadband access.

And the hell of it is, even if there were another provider available, all the alternatives seem to be even worse.

I mean, Christ, at least I don't have Time Warner or Comcast.