The big stepdown and the aftermath

So a week ago on Sunday, July 21, as reported by CNN among many other outlets, President Joe Biden made the undoubtedly difficult decision to drop out of the upcoming election. Instead he will focus solely on the duties of his current office for the remainder of his elected term. In his place, our current president endorses Kamala Harris, our current vice president, to run for his current office.

The timing of this announcement was right before the Democratic Party’s national convention. When I saw the first emails mentioning this, I was in shock. I had to look at the current news headlines to confirm it wasn’t a hoax. And maybe I haven’t been following politics enough to have seen this as an inevitable conclusion.

It took me a while to have the opportunity to sit down and write out my thoughts on this. With the wait, I can write seeing how the first few days of the Kamala Harris campaign played out. It didn’t take long for old comments made by the Republican candidate vice president, JD Vance, to come back to the forefront. In particular, in one comment from 2021, Mr. Vance referred to the Democratic party as being run by “childless cat ladies”. That unfortunately is the only part of the quote that keeps coming up with any consistency, as much as I would like to put the whole thing into context.

I personally have joked that I’m one chromosome away from being a crazy cat lady. (This refers to the fact I am quite obviously male or an XY genotype versus a female XX genotype.) But this comment from Mr. Vance stereotypes a large number of people in a completely sexist manner, in addition to being grossly inaccurate.

As if this wasn’t enough, Mr. Vance made statements years before that he was a “never Trump guy”. The timing of his acceptance of the VP nomination to serve under Mr. Trump is quite suspicious. It indicates to me that there may not have been many good choices available still willing to serve as VP. It tells me a lot that Mike Pence was either unwilling to reprise his role, or that the campaign simply didn’t offer it to him this time around. Perhaps Mr. Pence has had his fill either of the VP job or of Mr. Trump.

But back to the topic at hand. As I write this, Kamala apparently hasn’t picked her running mate yet. There are plenty of reasonable choices. In the end I don’t think it matters a whole lot as long as it’s someone just as fit to run the country should Kamala not be able to, and who doesn’t alienate too many voters who would otherwise vote Democrat.

I hope it doesn’t come down to that, though. After everything that has happened during Mr. Trump’s administration, I don’t consider him a realistic option to lead the country again. Mishandling of classified documents, falsifying business records, election tampering, and probably a few other things as well. Nobody is above the law. And when the Supreme Court said otherwise, they were wrong–and it’s not the first time they were this wrong, either.

That (the Supreme Court decision) was the indirect result of blatant tampering with the nomination process for replacement judges. The Republican-majority Senate robbed President Barack Obama of the chance to have his nomination for Merrick Garland even considered. I would be far less angry about this if the Senate considered the nomination and voted down on its merits. But no, instead the nomination just sat there and expired unheard. Instead we got Mr. Trump’s nomination of Neil Gorsuch. The Senate confirmed this nomination in a little over two months.

Our founding fathers never intended the Supreme Court to be partisan, yet that’s what it has become. George Washington was onto something when he addressed the issue of political parties in his farewell address:

In contemplating the causes which may disturb our Union, it occurs as matter of serious concern that any ground should have been furnished for characterizing parties by geographical discriminations, Northern and Southern, Atlantic and Western; whence designing men may endeavor to excite a belief that there is a real difference of local interests and views. One of the expedients of party to acquire influence within particular districts is to misrepresent the opinions and aims of other districts. You cannot shield yourselves too much against the jealousies and heartburnings which spring from these misrepresentations; they tend to render alien to each other those who ought to be bound together by fraternal affection. […]

To the efficacy and permanency of your Union, a government for the whole is indispensable. No alliance, however strict, between the parts can be an adequate substitute; they must inevitably experience the infractions and interruptions which all alliances in all times have experienced. […] Respect for [this government’s] authority, compliance with its laws, acquiescence in its measures, are duties enjoined by the fundamental maxims of true liberty. The basis of our political systems is the right of the people to make and to alter their constitutions of government. But the Constitution which at any time exists, till changed by an explicit and authentic act of the whole people, is sacredly obligatory upon all. The very idea of the power and the right of the people to establish government presupposes the duty of every individual to obey the established government.

(Sorry if that’s a bit long and smells a bit of gibberish. George Washington wasn’t exactly known for his brevity.) As best I can, I will try to summarize the quoted portion: “Parties form from differences in political views in different areas, and at times overgeneralize the views of a group. We as a people should unite and parties make this more difficult. With liberty comes the responsibility to obey the laws as written, including the Constitution, until it is amended by the rules established for those amendments. We have a duty to obey the government we have established for ourselves.”

It is highly unfortunate that modern-day politicians have failed to heed the wisdom of George Washington. It is also highly unfortunate that we, the American people, are stuck with what is effectively a two-party system. Worse, this is unlikely to change for the foreseeable future. Even at the local level here in Houston, with nominally non-partisan elections, we still wind up with candidates aligning with a party and frequent runoffs between the top two candidates. I have found myself having to pick between two equally undesirable candidates more than once–not a good situation to be in.

I wish I had answers for many of these problems. As it was, I did struggle with some of my history/geography/social studies classes in school. That said I have done my best to learn about politics and government in my adult life. The realization that politics affects you whether you follow it or not is a quite powerful motivator to learn as much as possible.

Kamala Harris may not be a perfect candidate, but I honestly think she’s the better viable choice of the two front runners.

Regarding the attack on a former president and candidate

I know I haven’t posted a lot here but I cannot remain silent about what just happened.

This evening, Donald Trump was speaking at a campaign event in Butler, Pennsylvania. After he had been speaking for a few minutes, the video has sounds similar to gunfire followed by Mr. Trump reaching for his ear. The Secret Service promptly swoops in and carries him off stage and later offsite. Later still photos shown on Fox News (Noise) Channel clearly show blood on his ear. While the official reports do not call this a shooting, it’s pretty obvious to me that’s what this was. The Secret Service did later confirm “the former President is safe.”

As a general rule, I condemn violence and particularly gun violence. I personally consider it grossly unacceptable that someone would assault and attempt to take the life of a former President and current candidate unacceptable. Whether or not Mr. Trump should even be eligible to campaign in the election is a separate question. However, that question needs to be answered by judges, not some nutcase with a gun.

Related news articles (will be updated):

Regarding storms of May 16

As some of you may be aware, the Houston area was hit by a very nasty storm the evening of May 16. I am safe but temporarily without power. I do have posts in the pipeline which I hope to have done by the end of next week (May 23). I do realize I haven’t made a lot of posts here as of late but I do plan to change that through the summer and early fall of 2024.

Misadventures in blocking referrer spam: How a rogue WordPress plugin wreaked complete havoc on one of my blogs

There’s no real original news article or Wikipedia article to link to here. This is the original story, and I figure there’s no better place to put it than here.

As many of you may know, I blog about my arcade and pinball adventures (mostly pinball these days) over on SKQ Record Quest. Over the past few weeks, it’s been painful to do much with the site as it had become increasingly unreliable. First it was an occasional “500 Internal Server Error” and then they came increasingly frequent to the point where, at times, the site was basically unusable.

To make matters worse, the host I am on bills by resources used. Taking a look back, the resources used started skyrocketing at the start of the year. I did a few things that appeared to fix the problem at first, but it would eventually come back with a vengeance.

That is, until I finally took a look at what was going on and noticed the CPU for SKQ Record Quest was much higher than the other WordPress sites I have running. I finally began going through a guide that recommended a plugin called WP-Optimize. So I started going down through the list of options. At some point it told me about some cron tasks which had not been completed. Something like over 100,000 (I didn’t notice the exact number, and honestly I thought this was a glitch). So I followed the instructions and did a wp cron event run --all (after some blundering around to find this exact command). I was then greeted with:

Executed the cron event 'wsrs_update_blacklist_twicedaily' in 6.925s.

and many more lines like it, with different times on the end. Turns out that this was left over from a plugin I used to run called Stop Referrer Spam. Not only did this plugin do little, if anything, to get rid of the referrer spam problem I was having, apparently it left behind thousands of cron task turds behind.

I’m not waiting for nor paying for all of that junk to run, so I had to play Go Fish in the database server. Turns out deleting the “cron” key under wp_options (well, what my wp_options table is renamed to) is enough to fix this. Or so I thought, as after the first time it came right back. A second nuke of this key appears to have permanently fixed the issue.

I hate referrer spam, but right now I’m afraid to try any other plugins to fix the issue given what has just happened, and what it took to find and fix the issue. The truly horrifying thing is that I was only a couple more weeks away from taking an extended break from blogging to finally abandon WordPress and migrate almost a decade’s worth of content to a static site. Now, this blog and the other WordPress sites I currently have would be much easier. SKQ Record Quest, however, makes extensive use of Jetpack’s image galleries feature, meaning a large number of posts and images would need to be migrated to whatever is used by the static site generator I am migrating to. On top of this, I would have needed to find an alternative solution for analytics, and it would become much more difficult to post from my mobile phone should the need ever arise again. Also, just for good measure, I would likely have to edit many other links to WordPress-specific things like wp-content/uploads/2024/04/{image filename}. We’re talking easily a month or two of spare time involving a considerable amount of caffeinated beverage consumption and a nontrivial uptick in stress and uttered profanities. Oh, and this is spare time that would come out of bar/arcade visits (i.e. less time playing pinball) and possibly other social activities.

Now there would be advantages to such a move, the least of which would be that backup copies of static sites can be mirrored much more easily and on censorship-resistant platforms. Hopefully the potential censorship won’t ever be an issue; it’s a nontrivial amount of work to go from WordPress to a static site and there’s no guarantee I would be able to easily reverse the process should the original reason no longer make sense from whatever standpoint, be it technical, social, etc.

I’d like to try to make this a learning experience for as many people as possible. So here’s what I learned:

  1. Be mindful of what plugins and themes you install. Most of the time, especially if you stick to plugins available from WordPress’s own directories, you shouldn’t have issues.
  2. Take it seriously when weird things start happening on your website. You should never get a “500 Internal Server Error” and even the occasional one means something is going really wrong. I assumed a later plugin update was going to fix the issue eventually. It did not; manual intervention was needed to get things back to a sane state.
  3. When troubleshooting, always thoroughly investigate anything and everything that is out of the ordinary. As I remember it, there were errors in a previous round of troubleshooting that should have pointed me to the problem had I investigated them more thoroughly. What I actually did was slap a quick bandage fix on it, which of course didn’t solve the real problem.
  4. If you still have the Stop Referrer Spam plugin installed, get rid of it! Like this, if you have WP-CLI installed:
    wp plugin delete stop-referrer-spam
    and then, just to be sure, delete the entire cron row from your wp_optionstable. (Generally, open phpMyAdmin, go to your wp_options table, sort on option_name and look for cron, then delete that row. I’m not sure how to do this by typing in SQL commands if that’s your only option, but that’s the basic idea.)

Hopefully you’ll never need this advice, but it’s there if you do.

A pinball shark tale: champion gets accused of cheating

I don’t write about pinball much on this blog. That’s actually a good thing, as most of the stuff here is about things that go wrong in the world from my point of view. Sometimes the wrongs aren’t all that egregious but give me a chance to write something semi-humorous, others things go really wrong, and a select few are the real head-scratchers that have me saying “what the actual duck quack?” (Usually with much more bleepable language, of course.) I’m not sure where this one lies on that scale, so I’ll state the facts and my take and leave the judging up to you, the readers.

On March 4, Eric Stone played the new Jaws (LE) pinball live on an internet stream. Stern was, at the time, also running a contest called March Madness. (This is not to be confused with the more widely known NCAA basketball tournament.) The idea behind the contest was that the state with the best players (i.e. highest scores) would win.

Eric, for those of you who do not follow competitive pinball, is a very skilled pinball player. His most notable accomplishment is the 2022 IFPA World Pinball Championship. These are followed closely by a 2022 YEGPIN Match Play championship, a 2024 IFPA Florida State Pinball Championship, as well as two top 20 finishes at the IFPA Open. One does not land those kind of victories without a high level of pinball skill. More importantly, one doesn’t land those kind of victories without being an honest player (i.e. not cheating). Perhaps the latter of these two is even more relevant to the circumstances.

On the night in question Eric put up a mind-blowing score of 4 trillion on this Jaws pinball (see video). For reference, most players consider one billion to be very good score, with my personal best being a paltry 144 million and change. To be fair I have not played this particular title nearly as much as Eric has. The controversy comes from how Eric got to this score.

If you go to 32:35 in the video, Eric has caught all four sharks. He then starts spamming (repeatedly shooting) the spinner. This, in the game’s current state, scores millions of points per spinner tick. The high scoring is likely due to a bug in Stern’s code. Note that it’s incredibly difficult to get to this point. It’s certainly not something even most wizard-level players can do easily.

When he gets to the point where he can make the high-scoring spinner shots, Eric’s score isn’t too far over 1 billion. Obviously, Eric will score big and skyrocket his score geometrically by the end of the game. The 4 trillion score would (temporarily) put Florida in the lead in the March Madness contest.

Temporarily. That is, until Stern decided to disqualify it. That’s bad enough but the social media posts from Stern imply that Eric cheated, using words like “fishy”, “unfair”, and “foul play”:

My take on all this: you really can’t fault Eric for playing the game as Stern shipped it. Everyone has the same (presumably defective) code on their respective Jaws pinball machines. The game was on video. We, the pinball players and fans all over the world, can all see what happened. Most importantly, we can see that Eric did not cheat. Stern’s bad code is Stern’s fault, not Eric’s. The right thing for Stern to do was fix the code going forward, starting with the next round of the contest, letting the current scores stand.

To his credit, Eric handled this rather gracefully, acknowledging that he “didn’t get [the score] the way [Stern] wanted it” among other things, but also emphasizing the score was “earned”. That, honestly, is remarkable composure in the face of a very thinly veiled accusation of cheating. A lot of people would take such an accusation personally, myself included.