Plugging mcrypt into PHP on macOS High Sierra 10.13: A Requiem

Since Apple’s desktop operating system was called OS X Leopard, I’ve been concocting little ditties on how to plug mcrypt functionality into PHP without complete recompilation and/or using a black box MAMP offering. The previous stop on that [eight year?] journey was with macOS Sierra. And it was/is the end of the line.

Queue list of excuses …

  • I don’t use PHPMyAdmin or Magento eCommerce (both major targets as PHP + mcrypt needs go)
  • I’ve been leaning on Linux VMs for relevant development work (trashing environments and starting over less often than ever)
  • I’ve taken a liking to Python, as it covers everything from number tumbling and data crunching to stupid little utilities for replacing website photos (dropping Anaconda in is a breeze)
  • And not really last but certainly not least, Apple’s latest release, High Sierra 10.13, came complete with a security-related flaw so ludicrous that I probably won’t upgrade until at least iteration two or three. It’s a trust thing.

For those who have already gained elevation in the States’ westernmost major range, all is not lost. If you run through the last set of instructions and replace any code that says “10.12” with “10.13” – along with identifying the proper XCode and PHP versions at the start – you should be ok.

Meanwhile, thanks for the good times.

MG signing off (because that’s all folks)

UPDATE 11/28/17: Like I said, lack of trust.

Three Storms

en·tro·py
/ˈentrəpē/
noun
1. a thermodynamic quantity representing the unavailability of a system’s thermal energy for conversion into mechanical work, often interpreted as the degree of disorder or randomness in the system.
2. lack of order or predictability; gradual decline into disorder.

Click the image for real time action (09/08/17 16:40 UTC reference)

MG signing off (not to be an amateur meteorologist, but simply ponder)

Right now in Houston

According to the Houston Food Bank

“Right now, one in five people in southeast Texas don’t have enough to eat.”

Probably more like one in three right now, so please click the logo below and give what you can. Link is via convio.net, and has been tested (i.e. I received a valid receipt directly from the HFB).

Medical supplies are also needed, and eBay/Paypal are matching donations up to a quarter million. You can contribute RIGHT HERE.

MG signing off (thinking Texans are pretty cool)

UPDATE: And here’s a Paypal link for Irma related relief -> https://www.paypal.com/us/fundraiser/107725536494624790

Eclipse Monitoring Station at DM79mq

Peak shadow, if not peak chatter …

MG signing off (to struggle with 5 WPM)

Let’s close this trip out on a good note

INTREPID PHOTOG (WITH THREE CAMERAS, FOUR RIGGED RODS, FIVE LENSES, AND A SIX PACK OF MODELO IN TOW): This looks like a good spot for closing out this trip. I need a really good shot, so don’t splash up the pool when you step in. You’ve been fishing that same fly all weekend … sure you don’t want to change it up? How ’bout a dropper?

YOURS TRULY (WITH ONE PARACHUTE ADAMS, TWO FEET OF 6X TIPPET, AND A THREE WEIGHT RADIAN IN HAND): I’m good.

INTREPID PHOTOG: If there is anything here, it’s gonna be sitting on the right edge. Deeper over there. Sun’s at your back, so watch your shadow. Be careful of that big log behind you. Wanna cast this rod?

YOURS TRULY: Got it. Nope.

Thirty seconds later …

INTREPID PHOTOG: Dude, where’s your fly?

YOURS TRULY: (Sigh)

Another minute goes by …

YOURS TRULY: Satisfied?

MG signing off (because it felt like work, but business was good)

Photo credit: James “You Really Need A Dropper” Snyder

Angler credit: Michael ” No I Don’t” Gracie

Programming the Yaesu VX-8DR on macOS, with the help of CHIRP and Valley Enterprises

In a word, easy.

The quad-band Yaesu VX-8DR is a nifty little radio, but in many respects it also suffers from feature overload. Hence menu pain. Even after several sessions of RTFM, one can still be lost. Programming via computer, please enter stage left on queue.

Unfortunately for Apple users, most pre-packaged programming utilities i.e. cable and software offerings cater to the Windows operating system and/or are designed for serial ports (think DE-9 connector). Those jokers with a spare MacBook Air lying around are almost SOL; they have to assemble their own tools instead.

With a little research it’s a moderately low effort endeavor. Even less if you just continue on here.

(more…)

Bring Blogger images into WordPress, the hard way

You migrate from Blogger to self-hosted WordPress. Your posts move over just fine, but for some reason (or another) your images forget their bus pass. Those pornographic stupid cat, hastily-prepared food, and trying-to-make-people-think-you-are-wealthy-instead-of-deep-in-debt vacation photos still show on the new site as they are properly referenced in the posts, but they actually remain on Google’s servers. You (or your client) don’t like that.

Meanwhile, the two plugins you found to solve this problem, Archive Remote Images and Cache Images, haven’t been updated in years. You take your chances anyway because you are lazy (if it is a personal site), or consistently over-promise and under-deliver (due to the impossibility of getting real work done at coffee shops). Either way, you must now hope you made a full site and database backup beforehand. If you did, you’re solution is now staring you in the face.

The script I concocted (shown after the jump) will get you a folder full of those images – with clean and pretty naming conventions – that you can upload to your wp-content directory, along with a SQL script to update links in your WordPress posts. Said programmatic wizardry dirty hack is written in Python – debugged using version 3.5.2 Anaconda custom (x86_64) on macOS 10.12.3 to be precise – and does rely on some SQL prep work. If you do not know Python, SQL and how to navigate directories while a terminal prompt blinks back, you have two choices: Google it (after determining what the definition of “it” is), or inquire about retaining me to do your work for you.

I’ll make the decision whether to continue easy too; if you cannot execute the following block of code sans assistance you are officially deemed “without paddle” …

SELECT * FROM `wp_posts` WHERE `post_content` LIKE "%blogspot%"
INTO OUTFILE '/home/dump/blogspotposts.csv'
FIELDS TERMINATED BY '|'

That look easy? Then proceed.

First, decide whether to run on your desktop (for future upload) or directly on server. Next, create a directory underneath where the script is located called /bspics. Lastly, make sure the directory the code is in is writable by all.

The code can be found here -> processblogspotimagelinks.py

Once you have changed the obvious stuff to suit your need, run it. Your /bspics directory will fill up with those images I promised – you can then place that entire directory underneath /wp-content – and you’ll also have a file called bsreplacescript.sql which you will run against your WordPress database to update image links in the associated posts.

Important [final] note: the coding was an iterative process, and some data analysis was done between steps in order to account for string possibilities encountered, generating clean file names, etc. It could be refactored, but wasn’t because 1) the end result works as intended and 2) removing those iterations would handicap attempts to modify it for a different data set.

MG signing off (to solve some not-so-commonplace problems)

“Comply with all crew member instructions” and then some

FACTS: People all over will travel all over this holiday season. They will stuff themselves with holiday joy. They will feign appreciation for useless gifts. They will complain about service, especially that purveyed by airlines.

This is but a public service message reminding everyone to comply with all crew member instructions, as well as those printed on the wing of the plane …

do not step out of this area

DO NOT STEP OUT OF THIS AREA (Photo: Yours Truly)

MG signing off (’cause that next one is a doosie)

Plugging mcrypt into PHP on macOS Sierra 10.12

We climbed up then down El Capitan, yet little changed. We’re still in the Sierras, and there’s still work to do.

The following instructions are for peeps a) developing on macOS Sierra 10.12, b) need mcrypt for their PHP development i.e. PHPMyAdmin and/or encrypting personally identifiable data before storage (unlike your health insurer, Yahoo! and/or pretty much every other knucklehead out there), and c) do not want to recompile PHP or run MAMP. Mcrypt will load dynamically with PHP after completing this tutorial.

We begin by acquiring the following stuffs …

1) libmcrypt-2.5.8, which you can find here; download by clicking the one of the two file links (author used “libmcrypt-2.5.8.tar.gz”);

2) PHP 5.6.24 source code, which is available here; [NOTE: you may someday update OS X beyond 10.12, and PHP may get updated along with it; the author used 10.12, and PHP 5.6.24 was included with that OS version. If necessary use php -v to check your version of PHP and then download the PHP source for that version.];

3) Xcode 8.0, which you can get from the App Store. You will also need the Command Line Tools (macOS 10.12) for Xcode, which you get by selecting “Xcode/Open Developer Tool/More Developer Tools…” from the Xcode menu, then logging into your Apple Developer account (yea you need one of those too); and

4) Homebrew (http://brew.sh) which can be installed by typing ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ install/master/install)" at the command line.

But before we really wind up, let’s turn off System Integrity Protection (SIP):

  1. Click the Apple menu (upper left hand corner of your screen)
  2. Select Restart, then hold down the Command-R keys to boot into Recovery Mode
  3. Select the Utilities menu and then Terminal
  4. In Terminal, type csrutil disable and then hit return; then close Terminal
  5. Click the Apple menu and select Restart

NOTE: When you are done installing mcrypt, you can restart SIP by following the above steps while substituting csrutil enable in step 4.

Proceed.

(more…)

Very Average Naknek River Rainbow Trout

Could be considered trophies most anywhere else, but quite average as Naknek River, Alaska rainbow trout are concerned. The fact they are taken sight casting into smolt feeding frenzies puts them in a class all by themselves.

Piggy …

averagenaknekrainbow1

After piggy …

averagenaknekrainbow2

Busted with these …

naknekrainbowflies

MG signing off (a true believer in the power of smolt busts)