Ballot Box + Match = ???

Posted on

We are about a month away from what I am told is, “The most important election of my lifetime.” They apparently have forgotten about the season three semi-finals of Dancing with the Stars, but that’s to be expected.

Devil Man Himself!
Actual photo of U.S. Postmaster General Louis DeJoy.

With the pandemic lockdowns and the anxiety-riddled drones being in a constant state of mortal fear, the big newness this year is mail-in ballots. For a brief moment this became a rallying cry to defend the indefensible U.S. Postal Service. Seriously, this year I have had no less than four horrific experiences with the U.S.P.S. either lost packages, express delivery taking months, or just the usual mail clerk incompetence. This was long before Trump appointed that guy (who my Facebook friends assure me is the Antichrist) as Postmaster General.

Thankfully, we are now about 300 news-cycles away from when U.S.P.S. was all that stood between democracy and Armageddon. Since then we’ve been told that dropping your ballot in a specified drop-off box is now the way to go to insure fair election results. Of course, with this is now coming stories of fake ballot boxes. I googled photos of these fake boxes and can’t believe anyone would fall for what is essentially a rusty file cabinet with a printout taped to the front inscribed with the words “Offishal Ballot Box.”

This got me thinking that wouldn’t it be easier and cheaper to simply drop a lit match into an actual ballot drop-off box? I can’t be the first person to have thought of this. I haven’t been able to find anyone else suggesting it. Sure, there wouldn’t be enough oxygen inside the box for it to burn very long, but I suppose you could prop the flap open and provide some sort of accelerant. I guess today’s electioneering fraudsters just lack creativity. I blame social media.

Pages of Fun, Now With WordPress

Posted on

It took about two weeks, but I think I have finally finished converting this site to WordPress. The bulk of that process was copying and pasting every post into the new system. I’m sure I probably goofed up a few posts along the way and there are bound to be many broken links. But I think was very thorough, going as far as copying every single comment and tag description.

My reason for moving away from Drupal was my general disappointment with Drupal 8. Nothing ever seemed to work exactly right. I’d make a few changes on the back-end and the site would unbeknownst to me be put in maintenance mode. Several key plugins withered on the vine and stopped working. The built in WYSIWYG editor was absolute garbage. And the worst part of it all was the horrifically user unfriendly update process. There are modules that require Composer to install and update and others that are always in pre-release dev states. No thanks. After a decade of loyal advocacy and usage, it was time to bid Drupal farewell.

I have built a couple WordPress sites for work this year and now feel much more capable in this system. The main disadvantage of WordPress is its lack of a Views plugin. If you want to get creative with outputting data, you need to dive in to .PHP files and WP_Query() loops. There’s a massive user base, so finding help on the Internet is fairly easy and, once you understand the basics, you get an idea of how to accomplish tasks.

As I type this, I am prepping to launch the site. Hopefully all will go well. Having never run a WordPress site with comments enabled I worry that I will find myself buried in comment spam.

The Last Straw

Posted on

This was all a big mistake. Upgrading to Drupal 8, that is. Nothing ever works right and Drupal hates casual users. I am now in the process of converting this site to WordPress by migrating every post by hand. There’s about 1700 posts so it’s going to be a while. There’s probably a plugin that can automagically do this, but the biggest con of WordPress is that good plugins aren’t free. Sigh.

Tireless Work During This Crisis

Posted on

This quarantine has been hard on all of us, but let us not forget the dedicated work that still continues for our nation’s homeopaths. They’re out there in the middle of the fray insuring that the correct dosages in parts per million are being applied to their tinctures. All this despite the disruptions in the world-wide rhinoceros horn supply chain.

Haunted House: Remastered

Posted on

Followers of this site (ed. yeah like that’s a thing) will remember a few years ago I created a in-browser playable version of the Applesoft BASIC game Haunted House for this site. Over the past month or so I got it in my head to push my skills as a programmer and make a much more fully realized version of the game. Today I am releasing my new version of the game, Haunted House: Remastered! It’s a vast improvement on the original in almost every way possible. In other words, it’s actually fun to play.

While it’s nowhere near the level of sophistication of an Infocom game, I think it does some pretty impressive stuff (for my skill level as a programmer). It’s still a two word parser, but the vocabulary is increased. There are full-page help screens, triggered story events, a retro-styled monochrome monitor look, and a bunch of scary sound effects! Please take a few minutes and give the game a try. It’s not too long and I try to keep the puzzle reasonably fair.

Legendary Junk of China

Posted on

Tonight I just started to watch The Legendary Weapons of China again by mistake. This is why I keep blogging these movies. I will eventually forget I’ve seen them before. In any event, I forgot how awesome the first ten minutes of this film is (the rest is not that great). Leave it to the Shaw Brothers to create movies that are written for eight year-olds but filled with all sorts of graphic violence. The best moment is when a fighter is commanded to rip his crotch out. At first he has a very dainty technique:

But it ends with a quick grab and, a backwards flop, and then a fistful of gore flying through the air:

Here it is in case you missed it:

The Witcher TV Series

Posted on

Just finished watching The Witcher on Netflix. I’m probably biased from playing the games, but I thought it was quite good. The lead’s voice takes some time to get used to. Seems like he is just doing an impression of the game’s growly voice actor (complete with the hmms and nose breathing). The series takes about four episodes to start clicking. It’s then that you realize that the story is not being told in chronological order and you start to see how the characters relate. My main quibble is that it jumps into the magic stuff a bit too quickly before laying out ground rules. Going full “epic” so fast is overwhelming. It’s when the show focuses on its characters that it becomes fun. Like an old episode of Hercules or Xena. That is all.

Drupal 8 Migration

Posted on

I have resisted migrating this site to Drupal 8 for years. Every time I looked into it there was some killer feature that D8 couldn’t do. The times I attempted testing out the process it was always a complete disaster. Well, time is running out on Drupal 7. The old system is slated for end-of-life in 2020 and it’s now or never for the “upgrade.”

In this post I am going to recap my experience in migrating a fairly simple Drupal 7 site to Drupal 8. Hopefully, someone facing the same issues as me will come across this post and will find something helpful.

Long story short, the migration process sucks bad. If you don’t have a little experience with directly manipulating a database or troubleshooting software in general, don’t even attempt it.

I am not a command-line guy. This was going to be a drush-free migration.The whole push in Web development towards command-line apps for everything has been one of the worst things to happen to the Internet. It is virtually impossible for a beginner to just jump in and start creating content. Developers have made huge strides in interface usability and yet the tools to create those interfaces are nightmares of horrible UI design puzzle-boxes that exist mostly as job security for entrenched Web devs. Thank Shatner for the few out there like Prepros.io who are at least trying to make new technologies user friendly.

The first hurdle for me was finding a decent local development environment that could handle Drupal 8. My old standby, Xampp, has become garbage in recent versions with no 64-bit support and no interface improvements. I found Wampserver64 and it has turned out to be fantastic. Most importantly, it allows me to run two different local domains, which is required as the migration process works by sucking an old site into a new one rather than overwriting an exiting Drupal 7 install.

After setting up a clean Drupal 8 install with all the migration modules installed I set about creating a plan of attack. Oh, as an aside, whatever you do, do not install the Migration Example modules. It will fill your new site with a bunch of garbage content and fields that don’t get removed when you uninstall the module. My first order of business was to determine which I my D7 modules had D8 versions. A spreadsheet and lots of notes proved helpful. I tried to limit only the most integral modules and skip any ones that are just cosmetic. A lot of popular modules have been added into the core, but in many case they are watered down versions (Menu Block stands out as particularly bad).

Migration Begins

At that point I clicked all the buttons, watched and waited. It looked like most of the content came over but there are big problems with text-filters. If they don’t match with the new D8 filters, the content won’t render. That is really dumb. I had to log in too phpMyAdmin to manually change values. The next big problem was that my post were peppered with strange characters. This had to do with my Sql server not having correct character encoding. This article explains the fix you should do before migrating (I had to search and replace for hours because I failed to do this). Basically, add the following to mysql.ini:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci

Comments

The next big problem were comments. Only the most recent comments were rendering and I couldn’t see any difference between those and the bad ones. There appeared to be two tables for comments in the database: comment_field_data and comment__comment_body. Turns out if the langcode column doesn’t match between these two tables, the comments don’t render. More stupidity. Had to manually add “en” to the fields. Thankfully this site doesn’t have that many comments.

Page Caching and Dev Environment

The next step was setting up the local.settings.php to disable caching and render theming helper code. A couple YouTube videos explained this pretty well, although I still am having to flush the cache to see changes half the time.

Views, Oh God Views

Views is a fantastic module. It’s the reason we all use Drupal in the first place. So, why the holy hell aren’t views migrated by default?! So freaking annoying! I had to recreate about 15 custom views manually in order to get many of the site features back. Don’t delete that Drupal 7 site yet. You will definitely need it for reference.

Turning on the Modules

I then started installing and enabling various modules. Like I said earlier, things are different here in Drupal 8. Menu_Block is missing features, Menu_Position is just plain broken (a fix is in the works), Redirect is flaky and throws errors.

Everything to do with CKEditor is horrible. TinyMCE was orders of magnitude better. More robust, more advanced features, better looking, better integration with Drupal… sigh. I have a feeling I am going to be using code view a lot with CKEditor.

Pages of Fun Theme Redux

If there is one area where Drupal 8 is leaps and bounds better than D7 it’s the new Twig-based theming system. The syntax is far less cryptic. A simple {{ content.field_myfield }} renders a field. Perfect. My theme is far simpler than before, yet looks pretty good. Lots of fancy CSS layout tricks here that probably fail in Internet Explorer.

Launching the Site

So, after about two weeks of poking at it, I finally launched the site on December 19th. Within about 30 minutes I got my first spam comment. I do miss Mollum. I’ve tracked down a few anti-spam modules, but it’s going to be tough. I gave up on comments on the Nonagon.us site long ago and this may be a losing battle. Out of my cold dead hands Russian bot farms!

And here we are, a couple days in and things seem to me working okay. I’m sure I will need to upload fixes very soon. There are always sections of the site I miss. And when my first round of analytic come in I may need to start hunting down broken links. In the meantime, click around and enjoy. (And buy my art!)

Pages of Fun: Now with Drupal 8

Posted on

Well, I have finally made the jump to the newest version of Drupal. We are now running Drupal 8 and, man, was it a pain in the butt to migrate the old site. I will forever recommend WordPress over Drupal to anyone who doesn’t want to pull their hair out every time a new patch is released.

Still, there is a lot to like about the new system. I will soon post the gory details of my migration experience, but, in the meantime, let’s hope this works and that I am not swamped with comment spam.