Last Friday, I dropped off my ballot for today’s primary election. I’ve got to say, I really appreciate the new approach in LA County of mailing everyone eligible a ballot, maintaining permanent drop boxes at relevant locations (libraries, etc.), and opening some polling places early to accept completed ballots.

MUCH more convenient than needing the time on one specific day and, in elections with a lot of turnout, waiting 45 minutes, an hour, or longer.

The longest I’ve waited was when I was living in Orange County, either 2003 or 2004, and they actually had to apply the “if you’re in line at closing time, you get to vote” rule. Someone brought a box of to-go coffee from the Starbucks down the street (I think Starbucks might have donated it, too?) and was offering it either to the poll workers or to those of us still in line.

The first election in which the county implemented early voting and flexible polling places (instead of requiring you to get to the specific place on your sample ballot) was also the week before COVID-19 hit the area. Now that I think of it, they still didn’t send out an actual ballot by mail unless you requested one. That changed that when it became clear COVID wasn’t going to just blow over before November. Since then some of the smaller, local elections have been mail-only.

Four years….WTF

The year is 2006. I’m complaining on my blog about businesses training their customers to fall for phishing attacks.

The year is 2011. I’m complaining on my blog about businesses training their customers to fall for phishing attacks.

The year is 2022. I’m complaining on my blog about businesses training their customers to fall for phishing attacks.

Corporations haven’t learned. Unfortunately, their customers have learned from all this training. And so has the fraud industry. Even if you’re usually savvy about this sort of thing, you can get caught up if the circumstances put you just off-balance enough to line up the holes in each overlapping layer of security.

I trusted this fraudster specifically because I knew that the outsource, out-of-hours contractors my bank uses have crummy headsets, don’t know how to pronounce my bank’s name, and have long-ass, tedious, and pointless standardized questionnaires they run through when taking fraud reports. All of this created cover for the fraudster, whose plausibility was enhanced by the rough edges in his pitch – they didn’t raise red flags. Cory Doctorow on “Swiss-cheese security.”

And here I am, in 2024, complaining on my blog about…well…you know.

Since I started converting parts of my website to use 11ty as a static site generator, I’ve been able to automatically generate tag and category pages that are *just there* as plain html files. And since they’re plain HTML, the old local site search engine I have on there still finds all the Eleventy-generated pages. And again since it’s all static, it doesn’t go down when the database does (which has been happening on an annoyingly frequent basis lately).

And this would be perfect if I was using a single Eleventy instance to build the entire site, but I’m not. I’ve got separate instances building the Les Misérables blog, the reviews, the tech tips, the creative writing collection, and so on, plus I have this WordPress blog and a bunch of hand-coded HTML from the old days.

Which leads to a few problems:

  1. Tags are per-section, not universal.
  2. The site search, which indexes html files on the server, sees everything except the WordPress posts, and the WordPress search *only* sees the WordPress posts.

Some ideas I’ve had to combine the tag pages:

  • Rebuild everything in a single Eleventy instance with a deeper hierarchy. Upside: Still static pages for everything except WordPress. Downside: Time-consuming, still leaves the main blog separate.
  • Write a post-build script that combines all the the tag pages from each subsite. Upside: Same. Downside: Need to either run on the server or make sure my local copies of the *other* subsites are current.
  • Write a server-side page that combines the backend HTML pages into a dynamic frontend for only the tag being viewed. Upside: simple. Downside: tag pages now depend on PHP.
  • Write some client-side JavaScript for the tag pages that will check whether other subsites have tag pages, and add those to the end of the list in a “See also…” section. Upside: simple, and the “local” tag pages are still usable as long as I make sure the script doesn’t block anything. I could even have it check the other static subsites first and then check the blog, so if the blog times out I still display everything else. Downside: requires JavaScript and additional network requests. But as long as I stick to vanilla JS, I can make it pretty small.

And for unifying the search:

  • Write a post-site-indexing script that adds the WordPress posts to the index. Could be done with direct DB access.
  • Write a pre-site-indexing script that generates a bunch of files for it to index. Seems like overkill.
  • Update the search code to send the same search terms to WordPress and combine the results.
  • Use a new search engine that indexes the served pages instead of the files on the server.
  • Point the search box at a remote search engine like Googl…yeah, never mind.

I haven’t settled on anything. I’m just kind of writing down ideas in public. If you have any suggestions, please let me know!

Drawing of a silver person standing in the desert in front of a flying saucer.I really enjoyed the original run (Saucer Country) at Vertigo and the second run at IDW (Saucer State)…that ended on a cliffhanger, and I’m really looking forward to being able to read the conclusion!

Saucer Country is a dark thriller that blends UFO lore and alien abduction with political intrigue, all set in the hauntingly beautiful Southwest.

The comics by Paul Cornell & Ryan Kelly follow a presidential campaign whose candidate believes she has been abducted by aliens, what that means to her and the country, and weaves through every aspect of UFO conspiracy mythology you can think of.

The first volume ran from 2012-2013, and the second volume picked up in 2017…and it was really weird to see how prescient the first run had been, as well as how the 2016 election season influenced the second part.

Finally in 2022 they ran a crowdfunding campaign at Zoop (launching on election day, of course!) to fund the concluding chapters and a collected edition.

And now: It’s done! It’s printed! It’s shipped! I got my copy in the mail today! (And it’s been long enough that I’m going to want to start at the beginning anyway.)