Latest Posts

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.

Encode Any String to Only Alphanumeric Chars - Better Than URLEncode


Have you ever been faced with a situation (in PHP) of needing to pass information in a URL (or a JSON object, XML, etc), but for whatever reason, urlencode() won't do the job? For example, if you want to base64_encode() a string, then pass it in a URL. Since base64 includes URL-unsafe characters like +/-=, you have to jump through hoops to make it work.

However, there is an easier way, that produces only letters and numbers; no symbols or punctuation of any kind.  Yes, it will inflate the length of the string a little more, but it might be what you need.

WebRTC Video Chat With Only PHP and JavaScript (No NodeJS or WebSockets)


Not long ago I set about trying to create a video chat (Zoom/Skype/Meetings clone) using only PHP and JavaScript.  Every solution and example I found online required that I have NodeJS running a server, which I didn't want to do so as to not complicate matters on the web server.  After many hours of searching and experimentation, I finally found a solution that works.

I based my solution on the preliminary work done by neilsbaloe, though where he uses plain text files, I use a database like MySQL.  Also, I found that with his solution, it only worked about half the time for me, especially if one of the browsers hit "refresh".

Easily Add Your Signature to a PDF With Foxit Reader (Free)


Foxit reader iconLet's say you need to sign a document and send it back to the person requesting it via email.  You could always print it out, sign, then scan to a PDF.  But that is time-consuming, wastes paper, and the original PDF file ends up looking degraded from the trip through the printer & re-scanning.

Let me show you the easiest way I've found: using the free program Foxit PDF Reader

I recommend downloading it from ninite.com, as that's the easiest way to install it, but you can download it from their official site as well.  Just make sure to get the FREE version; you don't need anything more advanced than that.

Keep a Computer In Your Desk Cabinet Without It Overheating


This is a bit of a DIY project.  I'm going to show you how to keep a computer in a desk or cabinet, but we're going to install an external fan in the cabinet to keep the computer from overheating.  (And we can do it for $15 - $25, depending on your setup).

If you've ever tried to keep a computer (or PS3, PS4, Xbox, etc) in a cabinet or other enclosed space, you know they can get pretty hot.  And that can eventually kill your computer.

FlightPath Source Code Stored in Arctic Code Vault


FlightPath source code stored in Arctic code vaultI'm thrilled to announce that the official source code for my open-source advising system, FlightPath, has been stored in the Arctic Code Vault for all time! 

For those that may not know, I created FlightPath while working as a developer for the University of Louisiana Monroe, and since then it has been released as open source under the GNU GPL license. 

It's been in constant development since 2007, and its code repository is hosted on GitHub, which is where this story begins.

Pages