Spring Sale! Save 15% on WordPress books with code: SPRING22
Web Dev + WordPress + Security

Replacement for JavaScript Errors Notifier (Chrome Extension)

Heads up about the JavaScript Errors Notifier extension for Google Chrome. Looks like it was removed from the Chrome store sometime last year. Not sure of the reason behind it, but can tell you that currently there are no suitable extensions to replace it. Kinda sucks because JavaScript Errors Notifier was one of my favorite “always on” extensions. It makes it easy to spot any JavaScript errors as you develop, design, or browse the Web. Fortunately there’s still a way […] Continue reading »

Check Your Spam Folder

It’s sad that we’ve arrived at a place where it needs to be said. Unfortunately, 3rd-party email services such as Yahoo, Hotmail, Gmail, and so forth have to deal with tons and tons of spam. So they tend to use very aggressive spam-filtering rules. Overly aggressive, in many cases. Continue reading »

18 Years Online

This year, 2022, will be the 18th year that Perishable Press is online. The first year (2004–2005) was mostly behind-the-scenes development and site building. If you do a Whois lookup for the domain name, perishablepress.com, you’ll find the creation date is 2004-07-14. I had to look that up myself for this post. It was so long ago.. lol. So once the site went live in 2005, it was off to the races. Fast forward 18 years and here we are, […] Continue reading »

Enabling ModSecurity (Updated)

For years, I’ve not used ModSecurity for any of my own sites. Way back when I first tried ModSecurity, there were just too many false positives, so I stayed away from it, opting instead to develop my own fast Apache/.htaccess firewall. But my web host now is telling me that ModSecurity is required on all of their managed VPS plans. Continue reading »

New Book: Wizard’s SQL Recipes for WordPress

I’m excited to launch my latest web-dev book, Wizard’s SQL Recipes for WordPress. I got the idea for this book way back when I was first learning how to build dynamic websites. I thought it would be useful to bring together all of the best SQL snippets in sort of a “spellbook” or “cookbook”. After all, SQL queries can seem like magic to the uninitiated. By entering concise, well-crafted commands, SQL enables anyone to interact with any relational database. It’s […] Continue reading »

Migrating All Book Accounts to Perishable Press Books

Just a heads up! I’m in the process of migrating all book accounts to the new bookstore at Perishable Press Books. The goal is to streamline everything — all books and user accounts — under the new books domain. This will make everything much simpler for everyone. Eventually, the other book sites will be taken offline, after everything is migrated to the new bookstore here at Perishable Press. Continue reading »

Protect WordPress Media Files

This is an experimental technique that I am playing with. It’s the simplest possible way that I could think of to protect all files in the WordPress Media Library using only Apache/.htaccess. I’ve been testing the code on an image-heavy site and so far there are no issues. So I want to put the code out there for others to test and hopefully provide feedback if anything less than perfect. It’s a super simple method that prevents media files from […] Continue reading »

Important Notice for Email Subscribers

Whoops! I spaced off sending this before July, so figured better late than never :) Hello! As you may have heard, Google/Feedburner is dropping support for their “Subscribe via Email” feature. This free service grabs the latest content from a site’s RSS feed and delivers it via email to a list of subscribers. So whenever a new post is published here at Perishable Press, Feedburner delivers an HTML-formatted copy direct your inbox. The subscribe-via-email service has been available for years […] Continue reading »

Roll Your Own Simple Password Manager on macOS

I’ve tried 1Password and Dashlane, and several other popular password managers for both Mac and PC. It always seems to be the same thing: things start off great and then go downhill from there. For example, I was loving 1Password, and then it locked me out of my password file/account. Likewise for a couple of years Dashlane was great, but then they started making drastic changes like moving from standalone app to browser extension Web-based UI. The confusion involved with […] Continue reading »

Cutting Floor Interview

When I spend time on something, like an interview, I like to know that it was actually published somewhere. Below is an interview that I completed for a web-hosting company that apparently now is missing in action. It covers how I got into web development, upcoming projects, web security, work flow, writing books, WordPress, and more.. Continue reading »

Apache Redirect Range of IP Addresses (IPv4 and IPv6)

There are numerous ways to redirect requests using Apache’s mod_rewrite and mod_alias. This concise, friendly tutorial explains different ways to redirect a range of IP addresses, either IPv4 or IPv6. Continue reading »

My Wish List for Legend of Zelda: Breath of the Wild 2

As a teenager, I played the original Legend of Zelda game when it launched on the first Nintendo console (NES). Back then, us neighborhood kids had a blast playing that game for hours on end. Fast-forward to adulthood, it’s a joy watching my own kids play the various sequels: Ocarina of Time, Majora‚Äôs Mask, Wind Waker, Twilight Princess, and to some degree, Skyward Sword. Beyond watching my kids play, I didn’t really get into playing any of the Zelda sequels. […] Continue reading »

Plugin Planet 2021 Redesign

Finally! Writing this post is the final step in the 2021 redesign of my WordPress plugins site, Plugin Planet. The site launched seven years ago in 2014. I think I spent a couple of months or so building the original site to the best of my ability. That first design stood the test of time, and honestly it would have been fine for another couple of years or more. But after seven years of changes, modifications, swapping out plugins, adding […] Continue reading »

CSS: Odd Bug with Colons and Combined Pseudo Elements

According to specification (and these helpful posts by Chris Coyier), CSS pseudo elements like ::before and ::after should be written with two preceding colons. It can be confusing because while pseudo elements are prefixed by two colons, like ::element, pseudo selectors (aka pseudo classes) are prefixed by only one, like :selector. So that’s the context for an odd little CSS bug.. Continue reading »

Vanilla JavaScript Toggle Divs Based on Radio Select Inputs

Working on the redesign of Plugin Planet, I needed a way to toggle between two divs based on which radio input is selected. This is useful for showing option-specific information conditionally, depending on the current active radio select field. This tutorial shows how to achieve it using vanilla JavaScript, so there is no need for including an entire library like jQuery. Very simple technique, requiring minimal amount of HTML markup and vanilla JavaScript. Continue reading »

Opt Out of Google FLOC for Site Visitors (One Line of Code)

Google has another new thing they are doing, called FLOC (Federated Learning of Cohorts). It’s used to — surprise — track user activity across websites. Opting out ideally is handled by the user, who can customize their browser settings to disable FLOC while surfing around the Web. Beyond configuring your browser to opt-out of FLOC, you can disable it on any website with a single line of code. Continue reading »

Welcome
Perishable Press is operated by Jeff Starr, a professional web developer and book author with two decades of experience. Here you will find posts about web development, WordPress, security, and more »
Digging Into WordPress: Take your WordPress skills to the next level.
Thoughts
Coding never ends. Bring a snack.
Not posting anything online usually means I’m busy working on my next project.
Today is my 50th B-day :)
Deep in the code.
Making good progress on my next pro plugin, Simple Ajax Chat Pro :)
Events definitely are speeding up. For those who are paying attention.
New wave of spam comments easily blocked, add =https:// to WP Discussion settings ▸ Disallowed Comment Keys.
Newsletter
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.