Save 25% on Wizard’s SQL for WP w/ code: WIZARDSQL
Web Dev + WordPress + Security
Post Archive
940 posts

An Epic Design Fail

We’ve all experienced design fails. Sadly, they happen so often as to be unmemorable, not worth mentioning. Design fail examples include things like form controls not working, or confusing user interfaces, or problems with folding phones, or myriad other mobile phone design fails. But every now and then you encounter a design that fails so badly, that you just have to share it. Continue reading »

There is No Operator

I’ve posted before lamenting the absolute pathetic state of big company phone support. Here is a transcript of a recent phone call with a big bank, trying to speak to a representative, but getting the run-around from their crappy telephone system. This was an extremely frustrating experience.. perhaps you can relate? Continue reading »

Vanilla JavaScript: Add Class to Image Links

It seems that for every new web design, I need to add a specific CSS class to linked images. So I can distinguish between regular text links and image links. And then apply styles as desired for each. I’ve tried all sorts of CSS and JavaScript/jQuery tricks over the years, but so far this one is the best.. Continue reading »

Browser Extensions I Use Every Day

I love improving my workflow via browser extensions. I’ve written about some great extensions in the past, and since then have continued to refine my collection. Fast-forward 10 years of web development, and I’ve got the number of extensions down from 30+ to around eight per browser. These are essential extensions that I actually use every day. They make my online work/life much easier. Continue reading »

Better CSS Placeholder

I haven’t seen anyone mention this little CSS tip. All the proprietary vendor-specific placeholder rules now safely can be replaced with just ::placeholder. Seems very useful especially with the ever-increasing emphasis on site performance. The end result is less code and thus faster loading, better SEO and so forth. Continue reading »

10 Weird Ways to Ruin Your Website

Everyone knows that slow loading and/or insecure websites are horrible, just the worst to be avoided at all costs. But there are other, less obvious ways to destroy the user experience and well, just make things suck in general. The goal here is to raise awareness and have some fun. So without further ado, here are my top 10 weird ways to ruin your website, along with their real-world equivalents.. Continue reading »

All the X’s

This post explains all the different “x” characters currently available in HTML. It covers the various HTML entities and provides some examples and tips. Also explains the difference between the often confused “Multiplication X” and “Multiplication Sign”, and which is better for symmetrical buttons and links. Continue reading »

Why is there no 7G WordPress Plugin?

I have thought a lot about making an nG WordPress plugin. The problem is that writing to .htaccess via PHP/plugin is risky with lots of ways to fail and make users confused and angry. And nobody wants that, in fact just the opposite: my plugins strive to give users the most awesome experience possible. Continue reading »

CSS Text Decoration (and Related) Properties

I’ve always made use of CSS text-decoration properties in my theme designs and other dev work. From underlining text to making hyperlinks look great, text-decoration is essential CSS. Until recently I was not aware of a couple of related properties, text-underline-offset and text-underline-position. I am currently planning the next redesign of Perishable Press and thinking about using text-underline-offset to add some style to various link elements. So this post is to bring these related CSS properties together on paper, forever […] Continue reading »

New WordPress Plugin: Simple Download Counter

Simple Download Counter is a free WordPress plugin that does exactly what it says: counts the number of times your files are downloaded. SDC is designed for maximum ease of use. The goal is a clean, lightweight “set it and forget it” solution for keeping track of downloads. Simply add your files via the plugin settings and display download links via shortcodes. Simple Download Counter does the rest. Continue reading »

New WordPress Plugin: Simple Login Notification

New WordPress plugin! Simple Login Notification does one thing and does it well: sends an email alert whenever an admin-level user logs in to your site. I use this plugin on all of my sites to keep an eye on any unauthorized activity. Not that I’m expecting any, but if it does happen I definitely want to know about it. The plugin size is only 4 KB (zipped) with virtually zero impact on performance or anything else. Win win win, […] Continue reading »

New WordPress Plugin: SAC Pro!

I’ve been developing WordPress chat plugins for over 10 years, and have received tons of great user feedback for the free version of Simple Ajax Chat (SAC). So many ideas and ways to improve the plugin that it just made sense to bring it all together and build a new “pro” version. So after several months of intense plugin development, I am excited to launch my latest WordPress plugin, SAC Pro. SAC Pro is completely rewritten from the ground up, […] Continue reading »

WP 6.0 Fix Error: QTags is not defined

“Quick” post about an error that may occur with WordPress 6.0 (and possibly other versions). After updating to WordPress 6, the JavaScript Errors Notifier extension was showing a “QTags is not defined” error on sites where custom Quicktags are configured (via plugins or custom scripts). Because of the error, custom Quicktags were broken and not added to the editor toolbar. This quick post explains why the error is happening and how to fix it (easily). Continue reading »

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 »

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 »
USP Pro: Unlimited front-end forms for user-submitted posts and more.
Thoughts
DIY: Monitor File Changes via Cron working perfectly for over a decade.
Mastodon social is a trip. Glad I found it.
As a strict rule, I never use cache plugins on any of my sites. They cause more problems than they solve, imho. Just not worth it.
Currently on a posting spree :)
6 must come before 7.
My top three favorite-to-write coding languages: CSS, PHP, JavaScript.
If you’re not 100% sure that you can trust something, you can’t.
Newsletter
Get news, updates, deals & tips via email.
Email kept private. Easy unsubscribe anytime.