Easily one of the most irritating things about WordPress is the continuous attempts to up-sell in the dashboard. Here’s how to get rid of them.
It’s one thing to have a gentle hint, like Updraft Plus saying “hey you can get more features with the pro version” and a dismiss function that makes the reminder go away for a year. It’s more irritating to have something that pops on every login, and even more irritating to see something show up every time you are on the dashboard.
I can tolerate most of these. Sometimes they’re irritating enough that I just switch plugins, especially when they try pushing related plugins you don’t give a damn about. This is one reason why there’s no Yoast on my sites. The SEO Framework is just as capable, a lot less pedantic, and it doesn’t nag. Yet.
But what to do when there’s no alternative and the plugin is persistently nagging? Use your ad blocker to make it go away! Since it has just recently pissed me off, I’m going to use WPCode Lite, an otherwise useful plugin as the prime example. With a recent update, this plugin has elected to add a widget to the post edit page with the title “WPCode Page Scripts”. Cool! That’s a welcome minor convenience. Click on the widget though and what do you get?
Page Scripts is a Pro Feature
That’s nice, but for me it’s not worth subscribing. How do I dismiss this? Surprise, surprise, I can’t. Well, F*ck you, WPCode! I’ll do it myself. Now this takes a little knowledge of HTML and custom AdBlock Plus rules, but the general process goes like this:
Right click on the widget and choose inspect. This will highlight the general area in the code you want.
Look for the highest level element that uniquely identifies your target widget. In my case, inspect took me to a div with the id “advanced-sortables”. We don’t want that. There are a bunch of useful elements on the page that are enclosed by that. Drill down a bit and we find another div with the id “wpcode-metabox-snippets”. That’s the one!
Click on your AdBlock icon.
Click on the gear to get to settings.
Select the advanced tab from the left.
Scroll down to “Your Custom Filters”.
In the box below “My Filter List”, enter this rule, substituting your domain for mine:
ambitonline.com###wpcode-metabox-snippets
You can also leave off the domain if you have multiple sites, but in my experience more specific rules help prevent long periods of “WTF” until your realize that the ad blocker is doing something you didn’t expect.
I’m picking on WPCode here because the arrogance of this has really ticked me off, but you can apply the same method to most other notices like this. At some point, plugin developers will take defensive measures to make this even more difficult and then we’ll have a discussion about writing user scripts in TamperMonkey and it’s kin.
Anyone writing code has probably seen a bunch of references to Docker by now. It’s like this new toy that’s all the rage, but for people like me — where picking up new things takes a crap-load more work than it used to — the general reaction is “I’ll learn that when it’s unavoidable.” Alas, a few weeks back it became unavoidable, and I’m here to report back.
If you’re even mildly inquisitive, a quick scan of Docker says a lot about containers and it’s pretty obvious that a container is some kind of virtual environment, but there’s not much that tells you why you should give a damn. I’m going to try to fix that. I’m not going to describe how to use Docker here, just what it’s for. There’s lots of great resources on making use of it elsewhere.
If you got into development in a time when your workplace had a nice air-conditioned room with raised floors and racks of servers and keyboard/console switches, then this post is for you.
The TL:DR on this is the learning curve here is a lot less than it seems at first, and the flexibility it gives you to set up and change configurations is truly powerful. Invest a few days in learning the basics and you can build, rebuild, and reconfigure virtual server rooms that significantly reduce the amount of time needed to maintain your own local environment. As a common example, if you’ve ever sworn at LAMP/ XAMP / MAMP configurations only to start from scratch or if you’ve tried to get two versions of just about anything running on the same system, then Docker definitely is for you.
I’ve got this old, slightly torn and patched 100 dollar bill up on a desk shelf where I can see it. A few months back we found it between some papers and I didn’t have the slightest recollection of how I got it.
But now it’s coming back to me. I think a friend and business partner gave it to me to acknowledge the work I was putting into our project. I hope that externally I was suitably grateful, appreciative, and said “that’s not necessary”, all of which would have been true.
The project, and the acknowledgement, came at a time when my extended period of “mild to moderate” depression was well into “moderate”, but likely before I truly realized what was going on. I might have put all I had into that project, but what I had wasn’t much. My effort yielded a bunch of prototypes and some ambitious code that never saw completion. I might have been doing my best at the time, but I was all too aware that my best was a fraction of what I had been capable of in the past.
My internal dialogue compounded my funk. Was I now just too old to write good code? Was the passion I’d had since I was a kid just done with me? If so what next? I certainly didn’t think my efforts were worth much, certainly not $100. After launch and the first sales, now that’s worth a pat on the back and a nice dinner! Thrashing at a solution with nothing of production quality… not so much. No matter how sincere the effort, effort without results is difficult to distinguish from no effort at all.
No, this was an undeserved reward. Another testament to my failure to perform, something else to highlight the pervasive feeling that I had: I was afloat on a large body of still water in a deep fog, with a pair of good oars but no idea of where I was, where I was going, how far it might be, or in which direction I might proceed to find anything. There I sat, adrift. I might row from time to time, but it was never clear if the effort was pointless or not, if my limited transit was changing anything or just Brownian exploration. I am sure I stuffed that $100 someplace where I knew the chances I’d run across it again were slim, where it couldn’t remind me how adrift I was.
That was almost 20 years ago now. I had no way of knowing that I’d be in that ugly fog for more than 15 years, although with thankfully few bouts of moderate during its course.
Now I sit here, three or so years clear of the battle. [There is no way for me to say “there, that’s when I beat depression!” I just gain increasing confidence that it’s not coming back anytime soon.] I look at this old bill, not even knowing if it’s still a negotiable instrument, wondering if I should try to deposit it, frame it as a reminder that sooner or later if I simply persist it is possible to be free, or just slip it between a few papers and see if I rediscover it on a much later purge.
Whatever I do, there is no way to describe how I feel knowing that I am looking at this ugly beast in the proverbial rear view mirror.
There’s a mouthful. There’s two parts to this post. The first part is the story of how I arrived at using Behat, a tool that facilitates Behavioural Driven Design (BDD). The last part is the TL;DR configuration I used to get it working. If you just want to get this configuration going and don’t care about the background, skip down to it. I won’t be hurt.
First an admission: I’m really, really late to the BDD camp, and it kind of pisses me off. If I’d been using this approach for the past 15 years, there’s no question I would have gotten more done in less time.
Recent Comments