I remember a couple of things from my earliest days when I learned about security. So why in 2026 does Google allow this? https://meet.google.com/linkredirect?dest=https://vendiadvertising.com Okay, I know why, but I don’t agree. Our take on this is that tooltips are not a reliable security indicator, and can be tampered with…
Category: Uncategorized
How to use AI to write code
I’ve been living in Claude lately, just to get a feel for things, and the following is some of things that I’ve learned so far. Brownfield For this discussion, I’m calling brownfield code anything legacy, including something from six months ago that you personally wrote but don’t remember how it…
Creating a portable copy of pdftotext from source
Recently we had a need to use pdftotext on a server that we couldn’t install packages on, so we decided to download the source for Xpdf and build our own copy. This is generally pretty easy, however by default it requires shared libraries to also be installed on the system…
ACF Flexible Content image previews, 2.0
We’ve been using this gist for years now for creating image previews for ACF Flexible Content components. Very recently it just stopped working, however. Our best guess is that it is a race condition of some sort, most likely caused by the DOM being generated in JS later. The fix…
UniFi – Fixing VPN problems for Windows 10
We have a UniFi USG at the office and we keep running into problems with Windows 10 clients that after a while keep getting denied a VPN connection with the error: Can’t connect to <VPN Name>The network connection between your computer and the VPN server could not be established because…
YouTube’s hidden “Crane Kick” mode
I’m guessing this is from their Karate Kid thing a couple of years ago, but the YouTube CSS still includes references to a crane kick file: https://www.gstatic.com/youtube/img/originals/ckee/[email protected] To activate, you need to add a custom attribute of ytp-scrubber-container to some parent of .ytp-scrubber-container and then you’ll need to also manually…
How to install a specific version of Drupal using composer
When you are migrating a site from a legacy install of Drupal to a composer-based one, sometimes it is easiest to just get a new install running, add all of the modules using composer, then importing to the database so that Drupal just “wakes up” without realizing anything has changed….
How to create a command that holds other commands in wp-cli (WordPress CLI)
Almost every major site I work on has at least one custom wp-cli command that I’ve built to manage or automate things. But I always run into the same problem, I don’t want my command to be a root command, I want it to live in a namespace of my…
mySQL Recursive CTE
Almost 10 years ago I asked this question on Stack Overflow about how to find the deepest nodes in a recursive table using a Common Table Expression (CTE). Fast forward to today, and I need a mySQL equivalent, specifically for MariaDB. Please read the original question to get the gist,…
Turn on spellcheck for any web page
Bring up the console and enter these two: document.body.contentEditable=’true’;document.body.spellcheck=’true’;