Blog

Bridging the Gap between PHP 5.3 and 8.2

This week I got finally got involved with maintaining the languishing TCPDF library on Github. Long overdue. Embarrassingly long overdue, since I’ve based one of my businesses on this open source gem for nearly ten years now. The author, Nicola Asuni, has been working for many years on a successor to TCPDF, but it is stalled… likely due to the usual reasons: life and cash. I can relate. I’ve been sitting on a huge WP plugin project for two years now, desperately trying to move it forward while life happens and I’m forced to prioritize support for my paying customers. A couple years ago an eager young programmer, William Desportes, hopped onto the TCPDF GitHub and made an incredible fork which would have really helped bring TCPDF into this decade. It needed massaging to work with PHP 8.0+ and he continue reading…

EDD Stripe v3.0 Sticks It To Ya

Easy Digital Downloads (EDD) seems to be going the route of Freemius, etc., where you can use their open source plugin(s), but not without significant overhead. Except Freemius isn’t open source. 🤷‍♀️ With only a small share of the WP users needing file management plugins using their plugin and not a competitor’s, it’s a surprising move. Stripe Gets Pricey If you’re not paying for their annual license, or let your license term lapse, and wish to take payments with Stripe, you’re going to pay Stripe fees, plus a 3% “application fee” which EDD funnels off your sale using Stripe Connect. This fee used to be 2% until v.3.0. Now it’s 3% — that’s significant! With version 3.0 of EDD Stripe, EDD moved their entire Stripe integration over to Stripe Connect, which means all the sales on your private site go continue reading…

Fix Easy Digital Downloads to Increase Sales

Over the years I’ve sure appreciated having Easy Digital Downloads (EDD) plugin to platform my plugin sales. It’s pretty cool, and handles most my needs including software licensing. However, I have had numerous little issues with the plugin. I apply each update with trepidation, because some changes (“upgrades”) have caused abrupt slumps in my sales. Of course the developers are well-meaning, and I’m sure these upgrades are in fact upgrades for certain people. But it’s becoming more and more clear that even though I’m a paying subscriber of EDD, their developers might not be “in touch” with the my reality or my customers’ realities. There are things a customer just. does. not. want. to. see. when. shopping. Case in Point With the latest updates to the Stripe payment gateway plugin, EDD moved to the new API and allows small text continue reading…

Set up a Weekly (weekend) autoresponder

Years ago I set up an autoresponder to let people know I’m probably not around on Saturday and Sunday. It’s still running, and flawlessly, so I thought I’d share how I set it up using cPanel cron and FTP/File Manager. I got this idea originally from David Heath-Whyte’s blog, but adjusted it a little bit. It might help you to see two examples if you want to set this up yourself and aren’t quite sure how. Sometimes having the same thing explained twice by two different people helps! Note: this advice only works for people with self-hosted email. Gmail, Hotmail, Yahoo! etc., look elsewhere. Also, you’ll need hosting with access to a cPanel. Step 1: Set up and compose your Autoresponder email Head over to your cPanel (“control panel”). Most hosting accounts will have a control panel of some sort, continue reading…

Prorated Software Upgrade Crack

It’s amazing how some customers’ behavior can highlight innovative ways of saving money. It never occurred to me until I started selling software, and managing annual software licenses, that there’s a pretty simple way to save money when trying to renew software licenses, without a coupon. Many businesses pro-rate license upgrades, and prorate them by date, such that the closer you come to expiration, the cheaper an upgrade gets. So a frugal move to make is to wait until just days before your software license expires, then upgrade to the next level up… for a tiny fraction of what it would cost to renew the lesser license currently held. VoilĂ  – we now have better access for another year, for cheaper than a straight renewal! While this is pretty cool for the customer, this is a big problem for software continue reading…

Ways to harden your WordPress website without using bulky plugins

You can add security plugins to your website, but if you don’t know exactly what they’re doing, not only can you silently break things, but you can slow down your site with a lot of extra code. They’re great, but it’s not like there isn’t risk in blindly activating any plugin. I develop plugins and try to predict how things can go wrong, so I know just how bewildering the number of things that can go wrong feels. When I can simplify things on my own sites, I always go that route. I recently decided to stop using a security plugin because I’ve implemented security measures of my own, and my server handles SSL redirection. I love the Really Simple SSL plugin but didn’t need it in this particular instance. Really Simple SSL had a couple nice features I decided continue reading…

Photograph looking south along the clear Colorado River from the Beamer Trail canyon shelf in Grand Canyon.

North Kaibab, a Trail Closure

So much water! So much trail destruction everywhere! This morning I heard that the North Kaibab trail is 1000% closed for maintenance until June 2. In fact, the entire North Rim is closed until June 2 (at least to cars)! And starting tomorrow the Canyon below Glen dam is about to experience a rare Spring “High Flow Experiment.” Shit’s gotten real in the Grand Canyon area this winter! Wow! Usually it opens May 1. 2023 has thrown a monkey wrench in thru hiker’s plans, and many of them refuse to back down. I’m not hiking but I still got excitedly thinking about fun (but still pretty much impossible) detours, and reminiscing about my time on some of them. (I have ~2500 miles solo on foot in Utah/Arizona after crossing them a few times.) (Inadvisable before fall 2023) AZT Re-routes in continue reading…

The Most Common WordPress Mistakes People Make

For several years I’ve been scanning the support forums at WordPress.org and helping where I can. I’ve been using WordPress since it came out in 2003, and because it’s at least partly free and open-source, I like to contribute. Aside from the obvious — helping others — contributing helps me keep abreast of what’s new in WordPress and hones my skills. On top of occasionally answering questions in the general support forums, I also wrote and support two plugins in the wordpress.org plugin repository. I frequently see quite a bit of misunderstanding on a basic level about what WordPress is and what it can do, and I’d like to toss in my thoughts about that here. I hope I can help clear up a few reasons some people think “WordPress sucks.” WordPress is WordPress is WordPress Not true. WordPress has continue reading…

Send Easy Digital Downloads Transactions to Wave Apps without Zapier

I wrote a little WordPress plugin that connects Easy Digital Downloads (EDD) to Wave Apps bookkeeping using the Wave GraphQL API. If you are accepting Stripe payments using EDD’s Stripe extension or PayPal Payments using EDD’s PayPal Commerce Pro, this EDD extension will automatically move bookkeeping data into your Wave Apps transactions using Wave’s GraphQL API. It saves a ton of data-entry, and picks up where a free Zapier account leaves off. In the plugin settings panel, you start by entering your Wave “full access token.” Get a token by creating an application in the Wave Apps developer portal. Once saved, this token allows the plugin to query its associated businesses. Choose your business (most cases there will only be one), and click save again. Now you can map your payment accounts and your download products to those matching in continue reading…

How to get a Wordpress Media (attachment) ID

There are several ways to go about getting the attachment ID (of the ‘attachment’ Wordpress post type, stored in the wp_posts WPDB [Wordpress DataBase] table. Here are some of them: From the Media Library: Navigate to Dashboard -> Media. Here you will see your Wordpress uploads (Media), either in grid view or list view. They’re both fine, it’s just a preference thing. Instructions for both are below. List View If in List view, navigate to the item by scrolling or using the search bar at the top right. Then hover over the title of that file, like so: Grid View In grid view, it’s a little bit different. You’ve got to click on the media file. A popup window will open up. Take a look in your browser URL bar and you will see the attachment ID there, after where continue reading…

A view southwest of Musselman Arch in Canyonlands.

Jeeping the White Rim All By Myself

Last month I was planning on meeting my BFF Pete in Moab to celebrate his birthday. I figured if I was going to make the long drive out to Utah with my Jeep Cherokee, I might as well put the 4wd to good use. I started watching for White Rim campsite permit cancellations, and strung together 3 nights in Canyonlands Island in the Sky (iSky) National Park. That took a few weeks of checking almost daily, so I guess that’s not exactly luck! The idea was this: I’d swing through the White Rim area and pick up Pete at the Moab airport when through. It was pretty critical that I not get stranded somewhere, because he would really be depending on me to meet him (he is vision impaired). In preparation I bought a some things for my Jeep, like continue reading…

A Side Project

Things have gotten nuts for just about everyone lately, us included. Luckily the Little Package plugins are stable and they can sit tight for a bit. I can focus on customer support… and helping to run my partner’s business. He lost his longtime secretary to the task of Covid-19 era homeschooling, and I have stepped in to help while we see what this quarter brings. So, I’m very busy, very very busy. Luckily programming for the web lends itself well to streamlining a business, and we’ve been able to automate some bits. Last week I spent some hours over two days writing some code which replaces heaps of manual data entry for his business, practically replacing a full-time employee. At first I did this using Zapier. We found Zapier a couple months ago, and it’s pretty cool. I was playing continue reading…

An Easy Digital Download Software Licensing Server Attack

If you’ve purchased the Easy Digital Downloads Software Licensing add-on (min price $99/yr) and you have your eyes on API server traffic, you might have noticed that if your site runs CRON jobs as frequently as every minute, you are potentially getting hit by thousands of HTTP requests every hour (depending of course on how many license keys you’ve issued to customers). This can lead to DB errors and worse. That’s just not cool for the price. EDD provides some “free” example integration code to get users started. Great, but we really shouldn’t use any volunteered code without an audit. Here’s the code they’ve provided: /** * Initialize the updater. Hooked into `init` to work with the * wp_version_check cron job, which allows auto-updates. */ function edd_sl_sample_plugin_updater() { // To support auto-updates, this needs to run during the wp_version_check cron continue reading…

Cardboard box with colorful quilting cotton scraps inside

Fabric, Fabric, Fabric

When I was a kid, I got to go visit my Auntie Pauline back east a few times during the summers. I enjoyed the weird bugs, warm thunderstorms, and swimming opportunities we just didn’t seem to have in Alaska… and the fabrics. My aunt is a spectacularly talented seamstress and fabric craftswoman, and has a refined taste in textiles. Going fabric shopping with her was a treat. Just being in her magical sewing studio, among her collections of tools and materials, projects and commissions was a treat. I had already taught myself how to sew, but she taught me standards of sewing, and opened up the possibilities. Sad to say that despite our talents we are both mostly making face masks lately, but we’re making well-sewn ones with fun fabrics! Recently I received a heavy box full of miscellaneous cotton continue reading…

Creek Fire smoke in central Nevada

Flu and The Trail, part 2

This post is an update to my March 16 post, Flu and the Trail. It turns out you can thru-hike during a pandemic, but if you’re not still asking yourself “should I?” and considering your impacts on other people, I hope you’ll keep reading and hear me out. After volunteering several months of my life over several years to help thru-hikers on the PCT, I left with a bad taste in my mouth. I met several burned out trail angels who felt similarly, and noticed quite a few hikers themselves abandoning the trail shaking their heads. Why? Because thru-hikers are generally privileged, and often self-involved and entitled. It’s not exactly “rewarding” work to help people who don’t really need help. Bear with me when I explain how I got here. It is based in experience with hikers, and I have continue reading…

two pages print from PDF sewing pattern

Face Mask Sewing Instructions

The following are instructions for the face mask sewing pattern available as a PDF download in the Little Package shop. I drafted this pattern off the Olsen mask design, honing it over a period of several months for easy fit, good looks, and comfort. What I like about it is it allows you to open your mouth without the mask slipping down off your nose. As a former nurse, it’s important to me that people including and around me and my loved ones have functional masks, and so I make them. And you can too!

tiny covid masks for a two year-old

Sewing Face Masks

I’ve been meaning to share the face mask pattern that I adapted from the Unity Point Olson Mask, but it’s not ready yet because it keeps shape-shifting. I keep making small adjustments to it, which probably don’t matter at this point because every face is so different. Anyway, soon I will have it tacked down in PDF format and will share here. [Here it is.] [And here are the face mask sewing instructions.] So far I’ve made >200 masks. I’ve made masks for climbing guides: I’ve made masks for tiny people: I’ve made masks for small people: I’ve made masks for adults: I’ve been handing out free two-layer cotton masks around Bishop, and giving them to friends. Folks who have insisted on paying — their money has been donated to the ACLU and NAACP Legal Defense Fund. The masks have continue reading…

Escape to Yosemite

Yosemite now has a permit system which limits traffic somewhat*. We heard maybe we could get more of the Park to ourselves, and headed out on our first venture to a public place since February. We enjoyed a few slightly-more-serene days in the park. For me it still felt like a zoo, but maybe that’s because I’ve been living with 1-2 people surrounded by millions of acres of untouched forest for five months. We went for a hike, and the next day for a climb, and for about 48 hours almost forgot that it’s been a difficult year. I hadn’t seen Tuolumne from up high since 2013 (and I didn’t see much then because I was running from a lightning storm off Clouds Rest). These views floored me and smoothed my ruffled feathers. * Many people are abusing the system, continue reading…

Custom Fonts with WooStamper (SetaStamper)

The SetaPDF library which PDF Stamper is built on allows quite a bit of font customization to be done. More on SetaPDF and font manipulations. For the meantime, a quick tutorial on how to get other fonts beyond the three packaged with the plugin (Times, Courier, and Helvetica). Start by finding a TrueType font (.ttf) file which suits your needs. Try to keep the file size small, subsetting if necessary so that your server isn’t bogged down managing a large font file while trying to manipulate your PDF. Upload the file to your wp-content/uploads directory, somewhere it won’t get overwritten. It makes sense to use the woostamper folder, so we’ve gone ahead and done that below. Arimo is a TrueType font which works for our purposes, so we have uploaded it to a folder “arimo.” Look at the function below continue reading…

Select a page:
Little Package