Latest Posts

Do you really need to reboot your Linux server after an update?


For anyone who's ever maintained a linux server, you know that updates are easy, but after almost every one, it says:

*** System restart required ***

I started wondering if rebooting was really required, since sometimes you have mission-critical or otherwise busy servers, and rebooting is going to cause a problem for your users.  But-- what if you need to reboot due to a security update or something like that?

Luckily, I found a simple shell script written by "Anton Lugovoi", which looks through your updates and classifies the need to restart as either low, medium, high, emergency, or critical.

Backdrop CMS: How to create a command-line (cli) script or routine


How to write a command-line script or routine for Backdrop CMSI often need to run routines (that might take a long time) from the command line.  For example, a nightly import of thousands of records.  I did this all the time in Drupal 7, but initially couldn't figure out how I should set it up in Backdrop CMS.

(For those that don't know, Backdrop is a fork of Drupal 7, but currently being maintained and with new features added on.)

Here's how you need to set it up in Backdrop CMS:

Constant, 24/7 Dizziness or Lightheadedness?


Help for constant dizzinessOkay, so I know this isn't remotely related to software or technology.  But I wanted to write this quick post in an effort to spread some awareness. 

I've had more or less constant dizziness for over a decade now.  Seen every type of doctor you can think of, had every type of medical test done (VNG, MRI, CT scan, ultrasound of heart, arteries, etc etc).  Every test kept coming back saying I was healthy.

Eventually I was pawned off on a psychiatrist, who started me on anxiety meds, which did kind of help.

PHP: Convert CSV String to a Pretty Assoc Array


PHP function to convert a csv string to a pretty arraySometimes you find yourself with a CSV string (not a file on the filesystem), and you'd like to use str_getcsv to get an array, but the results are sloppy and not at all friendly to work with. Reading from a file on the filesystem is more memory-friendly, but sometimes that just isn't the situation you have.

If you think this applies to you, check out the following function.

It creates an assoc array from a CSV string, where the header value is used as the array's keys.

 

Installing Backdrop CMS on Synology NAS (File Permission Issue)


Howdy folks.  I know this is probably a niche blog post, but if you happen be using a Synology NAS (DSM 7+) for web development, and you are trying to work with Backdrop CMS, and are running into file permission issues, this post is for you.

Synology Logo  Backdrop logo

I'm writing it primarily because it took me forever to finally get the installer module to work. That module allows you to easily download and install modules for Backdrop directly into your site.

It all comes down to the linux permissions on your directory, and the user and group that your Synology NAS uses for Apache.

Upgrading My RYOBI 480ex Riding Mower Battery to LiFePO4


Dear reader, I'd like to take you on a journey-- the same one I have just been on-- that started with trying to figure out why my electric riding lawnmower (the RYOBI RY48111, confusingly also named the 480ex, suddenly stopped working.

RYOBI 480ex aka RY48111Let me start by saying that I love that mower. Yes, it's more expensive than a gas-powered one, but I never have to run out and buy ethanol-free dinosaur juice that's going to stink up my car, I never have to change any spark plugs or change the oil and oil filter. I don't have to worry about an alternator breaking, nor do I have to "stabilize" the gasoline during the winter.

With an electric mower, you just plug it in to charge up the batteries, then away you go. And the 480ex was every bit as powerful as a gas mower. I easily cut the front and back on a single charge with plenty to spare.

Until one day, about 2 weeks ago...

Never Lose Your Dongle Again!


Teeny tiny stupid dongleDon't you just hate those tiny little dongles for Bluetooth or proprietary wireless mice or keyboards, headphones, etc?  There's so tiny, they usually aren't labeled with what they are, and it's so easy to forget what they even go to, if you're lucky enough to not just straight up lose them.

Well friends, I have good news:

I found a simple produce that basically makes it much harder to lose those little dongles, and even gives you space to write (with a silver Sharpee or even a printed label) just what the heck it goes to.

CleanTalk: Finally a Way to Have a Contact Form Without Needing a CAPTCHA


Fellow website owners: I want to share my experience with a service that I found some years ago and now can't live without: CleanTalk.

I run multiple websites, and for years, spam was a constant headache, usually submitted through my sites' Contact forms (including the one on this site).  I was spending more time deleting unwanted messages than actually engaging with genuine visitors and leads. CAPTCHA and reCAPTCHA helped a little but honestly not that much, plus they often deterred real users and made my sites less user-friendly.

Then, a few years ago, I stumbled upon CleanTalk.

PHP: How to Validate an SMS from SignalWire Webhook


SignalWire - How to validate incoming smsI ran into this problem recently, but was unable to find an answer.  There is very little (essentially non-existant) documentation from SignalWire on how to validate / verify that an SMS coming to your webhook was really sent by SignalWire, especially in PHP which seems to be the forgotten stepchild of SignalWire. 

I finally found the answer, so I wanted to share it here for anyone else with the same problem.

For those that may not know, SignalWire's LAML webhook method is meant to be 100% compatible with Twilio, so it took some digging into Twilio's documentation to find the answer.

Pages