Twisted Geometries: How It’s Calculated

Every once in a while, when I upload pieces like the one above to social media, such as Facebook, Twitter, Instagram or Reddit, someone asks for an explanation of the process to produce it. It’s not super complex, but it is a little involved. So, in this post, I’m going to describe the basic process; complete with diagrams.

So strap yourself in, set your tray in the upright and locked position. We’re about to take off for the Twisted Geometries Zone.

Continue reading

Hunting for the Elusive SASS REPL

On more than one occasion, while struggling with some squirrelly SCSS I went a-lookin’ for a SASS REPL, and I came up empty. So I decided to write my own.

Here’s the thing though: a SASS REPL is an obvious thing. It’s something anyone who uses SASS (or SCSS. I use SASS to mean both.) would need at some point. Of course there’d be one online somewhere. I was bemused and befuddled as to why I couldn’t find such a beast online.

Continue reading →

How to Connect to Your Vagrant’s MySQL Using Sequel Pro

Screen Shot 2016-07-03 at 12.07.51

This was a lot less straightforward than I expected. So I’m posting the incantations here in hopes it’ll save others some time.

Sequel Pro is a very capable Mac-based, open source, MySQL client. One of these many capabilities is to tunnel via SSH to another server. In this case, we’re going from your host machine (an OSX desktop), to your Vagrant guest machine, to access the MySQL database server there. If you don’t currently have a Vagrant machine on hand, try Puphpet.com.

Continue reading

Connecting External Services With Your Local WordPress

ngrok header graphic

For years I’ve eschewed using services such as HTML validators, because I was developing on my local machine, or even on a Virtual Machine inside my local machine; and external services couldn’t get to my website while it was under development. Worse yet, involving a webhook, a callback from a web based service, to your own website, was a chore because you had to deploy your site to a public-facing server before you could test it.

Until now. (Insert maniacal laugh here.)

I’ve recently started using a clever service called ngrok, which exposes your local development site to the Internet. Even if you’re behind a firewall.

(Quick aside. I believe it’s pronounced “en-grok”, rather than “n. g. rok”. Adherents of AngularJS will have to force themselves to conform.) Continue reading

PhotoQ Be Gone

I was recently contacted by Dave Wilson of DaveWilsonPhotography.com. Dave had been using the PhotoQ WordPress plugin for his photoblog. It allowed him to schedule the release of posts with a given image. It would additionally extract and display the image’s EXIF data. This was before WordPress could schedule posts on its own, and saved Dave all kinds of time. He could spend a few hours loading up pictures and posts, and he’d be set for a month of daily posts.

But nothing lasts forever, and Dave’s happy setup was disturbed as his host’s PHP engine was upgraded, while PhotoQ, now no longer supported, was not. The front end of the site still worked fine, but the admin side had issues.
Continue reading

Learning the Radio Alphabet

AlphaBravo_Feat

Last year I was taken with a sudden and feverish desire to master what some call the NATO Phonetic Alphabet. You know: Alpha, Bravo, Charlie, for ABC.

Except a phonetic alphabet is, in fact, something else; it’s a notational standard for the representation of a language. It’s about how to pronounce the language.

By contrast, the radio alphabet, allows you to accurately transcribe letters by assigning a word for each letter. Handily, the words assigned start with the letter they’re assigned to. So, Alpha for A, Bravo for B, and so on. It’s about reading it out to someone across, say, a radio, and being reasonably certain they won’t mistake a P for a T.

OK, so that’s the What. Continue reading

Sabre Web Services in PHP

oecdworld200I’ve been on contract for the past couple of months at a lovely company up in Newmarket, called Solutions360. I’m part of a team working on a system for the travel industry. So we’re deep into API’s for hotels, flights, cruises and such. Listing, booking, cancelling have been our constant concerns for weeks now.

My bailiwick is a module called a Service Manager, which translates requests from our system to an outside web service. Then captures the responses and again translates them into a standard format for the system to display.

The first Service Manager I wrote used the cURL library to communicate with the external service. So when it came time to interface with the Sabre services I tried using the same mechanism; but for some reason it was a non-starter. I tweaked it as much as I could; as much as it made sense to. But the only response I got was an error that the service “couldn’t internalize the request.” *sigh*

And while Sabre’s support team has proven to be enormously helpful and responsive, on the phone and via email, if it isn’t Java or .Net, you’re pretty much on your own. Continue reading

aaLog: A Logging Class for PHP

log ladyOver the years of learning the many and various skills necessary for being a well-versed web developer, you find a number of tools to help you get things done. Sometimes you have to build those tools for yourself.

There are any number of logging solutions out there, but I decided to build my own for a number of reasons. First, I had some specific requirements in mind, and I didn’t want to spend a bunch of time exhaustively researching the available options, when I could just build my own. Secondly, building my own solution allowed me to exercise design and development muscles I might not otherwise get to flex. Thirdly, building my own allows me to share it with you.

To my great and everlasting shame, however, I never got around to documenting this class. Well, never is a long time. “Never”, until now. But it has been many years since I started this project, and I’d been meaning to post some documentation since then.
Continue reading

AirHogs.com is Live!

Air Hogs01 home page

I was lucky enough to be selected to work on the build of the Air Hogs website redesign at Proximity Canada. We had a terrific team, and the build went fairly smoothly; especially considering it was my first time using the ExpressionEngine CMS. I’m enormously proud of this project, so with your kind indulgence I’m going to bore you with a tour of a few of the highlights of the project. The one saving grace of this post, is it will have lots of very pretty pictures. Continue reading