Month: October 2020

Campaigning Without Ads

I’ve seen some stats on what’s been spent on political campaigning this year — and it made me wonder what if they didn’t put so much money into advertising and cross-country tours. What if each party selected something from their platform and put the money into “fixing” the problem. Maybe the Republicans could take three billion dollars and build a private organization that patrols the border. The Democrats could take five billion dollars and create a non-profit that pays for medical procedures. It would certainly be reported by the news — you’d hear about who was doing it and what they were doing. And, instead of ClearChannel and whomever making a load of money selling airtime … the campaigning would actually accomplish something the party thinks needs to get done.

Drop Box — Medina County Board of Elections

The Medina County Board of Elections is located down the road to the North of the Hobby Lobby / Walmart plaza (Stonegate Drive). It’s on the south side of Stonegate Drive, in a little strip-mall looking plaza.

The mail-in ballot drop-box is located to the right of their door. There are two envelopes you need to use. One that you sign & put personal info on — that needs to go into the outer mailing envelope (aka privacy envelope) even if you’re not actually mailing the ballot. You can drop off your ballots any time — slide the envelope into the slot, so you don’t have to touch anything except your ballot.

Updating JQuery

We’ve got to upgrade some Javascript modules at work — JQuery, Bootstrap, etc. Problem is that changes between the versions mean there’s a lot of rewriting required before we can update. And we pull in these modules using a shared header file. While we could stage all of the changes and update the entire website at once … that means we’re all dedicated to updating our components & are delaying the update until we’re finished.

That’s not ideal — and has the potential to break a lot of things at once. I plan, instead, of putting a default version in the shared header file. And some mechanism to source in a newer version by setting a variable in the individual tool’s PHP code before the header is pulled in. So each tool within the site has a $strJQueryRev, $strBootstrapRev, etc variable. Then the shared header file looks for that variable — loads a newer version when requested or loads the currently used older version when no version is indicated.

if($strJQueryRev == "3.5.1"){
 echo "<script src=\"\">\n";   
elseif($strJQueryRev == "3.1.1"){
 echo "<script src=\"\">\n";   
 echo "<script src=\"\">\n";        # Old, in use, version is default

Or even

echo "<script src=\"$strRevisionNumber.min.js\">

Each developer can add a version number to a single tool, test it, push it up through production using the newest modules. Move on to the next tool. The site still isn’t done until we’re all done, but we can slowly roll out the update as people are able to test their tools.

Hovercraft Battle Arena Hack

We’d been playing a silly game on the FireTV cube — Hovercraft Battle Arena. It’s what my former boss would call good, stupid fun. But you’ve got to wait to open these crates to get stuff — gems, money, and components to upgrade the hovercraft. We wanted to be able to play with maxed out hovercraft. So I poked around a little bit and found a cheat for insta-upgrades. Game components are stored as files. For Android installations, the files are under /Android/data/com.highscorehero.battlearena/files … but it’s a lot easier to write a batch to copy files in Windows. The Windows app data files are under %userprofile%\AppData\Local\Packages\ … then the trick is finding the right HighScoreHeroLLCHoverfractBattleArena folder.

Once you find the files, there’s no validation on the files. Now it’s binary stuff that would take a good bit of effort to manually edit (i.e. if I wanted to just give myself 10k gems, I’d have to figure out which exact bits to flip) but you can grab an entire file when the game is in a state you want. That is — when you have four crates ready to open, copy out the Crates* files. When your near the end of the season and at level twenty-something, copy the file. When you’ve not claimed any of the season rewards, copy out the file. Drop those files into the live folder used by the game & launch the game. Now you can open four crates, claim the gems from each level, and close the game. Copy the season rewards and crate files back and do it again. And again. And again. Eventually, you’ll have all of the blueprints, upgrade parts, gems, and money that you would need. You can make a backup of the entire folder at this point. Use your money and gems to upgrade a hovercraft, then copy out the files for that craft. Snap the backed up files back so you’ve got all of the gems and money, then upgrade a different craft. Repeat until you’ve got upgraded files for all craft.

It does, unfortunately, kind of ruin the game. There’s no point — you’re not accumulating points to upgrade anymore. Anya and I still like it … but it’s absolutely not the same 🙂

On Originalism

Originalism can roll back a frightening amount of legislation — New Deal, civil rights, food safety, etc. There’s even a school of thought that says the 14th amendment doesn’t mean stuff like the bill of rights doesn’t limit state government. Just Congress. Which would mean a *state* is free to enact limits that abrogate our federally ensured rights. The illogic of the argument is, I assume, why originalists inconsistently apply their beliefs rulings. Think of the 11th Amendment interpretation that “by Citizens of another State” includes ‘citizens of *that* state’, for instance. Or the purported Second Amendment right to weaponry that hadn’t been imagined in the late 1700’s. Originalists make decisions contrary to the founders’ understanding of what they wrote.
And originalism seems to invalidate itself — was the understanding at the time the Constitution was adopted that most legislation requires a Constitutional amendment?

Coop On Wheels

Scott built axles and wheels to move the chicken coop across the yard. We jacked a side up, slid the axle underneath, and lowered the coop. Repeated the process on the other side and, voila, a mobile coop. We pushed it because we needed to adjust the angle of the axles to make a few turns. But it moved surprisingly well.