I fixed a bug in the NBA Pickem on SportsFilter that caused the TV network for the game to be omitted from some games.

I improved the admin functionality of the NBA Pickem on SportsFilter to make it automatically add a new record for a game's scoring margin when I add a new game.

After a decade, I'm dumping my Apple iPad 2 for the iPad Air Fourth Generation. Too many new apps are refusing to install on my old tablet.

I've added game results to the current scores in the SportsFilter NBA Pickem. Automating these games is making them much easier to maintain.

I renewed Snagit for $17.50 after receiving a half-price offer from TechSmith in email. Snagit's the best capture software I've used to take screenshots for computer books and documentation.Busy day on SportsFilter: I completed the scoring and ordered the prize for the 2019-20 NBA Playoff Pickem, completed the scoring for the 2018-19 NBA Playoff Pickem, awarded the prize for the 2019-20 NHL Playoff Pickem and awarded the prize for the 2019-20 NBA Pickem.As part of my continued efforts to reduce junk from databases, I rewrote the store locator PHP code to delete new store submissions that are spam instead of saving them as "inactive".

For several years I used a redirection script for links to Amazon like this one for Molly Ivins: A Rebel Life. After some failed attempts to exploit it showed up in the server logs, the script now validates that the destination contains a valid ISBN.

After I got flooded with spam last night, I added additional checks to the email submission script used by readers of my books. If a select element contains a value that isn't one of the options, that's obviously a spammer.

I have a bad habit of detecting that a user content submission is spam but saving it to the database anyway. The submissions don't appear on the site but take up database space. I deleted over 53,000 spammed store reviews from Local Farmers Markets, Sports Card Stores, Videogame Stores and Wargames.Com.