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

IE Refusing Session Cookies

Photo Credit: Bree Hester, Baked Bree.

So here’s another good reason to loathe Microsoft and yearn for an opportunity to kick them in the ‘nads. (But I’m not bitter.)

I’m working on two web applications: one is the public facing site, and the other is the administration site. So, natch, for the latter I created a local domain called oursite_admin.local. I’m usually partial to .dev, but the team had already started with .local, and I had no serious philosophical issues with that. Contrary to scurrilous rumours, I’m actually a very easy going fellow. Continue reading

Downloading Files in PHP for Fun and Profit

I recently had to setup a page where users could download files. You’d think such a task would hold few secrets for someone who architected a download site. Well, that’s how much you know.

Like many programming tasks, you meet it head-on, on the field of battle; you grab it by the horns and wrestle it to the ground. Victorious, you move on, and quickly forget the finer nuances which thrilled your sense of challenge and elegance. Luckily for you, I’ve started documenting these little trysts in this blog. Continue reading

Migrating Contacts From Palm Pilot to Gmail

Once he finds someting that works for him, my father sticks with it. Which is why, until very recently, he was still using his Palm Pilot Vx. But all things come to an end, and now that he and Mom got His and Her’s Samsung Galaxy S‘s, it was time to get his contacts migrated from the Pilot to Gmail, so they could get picked up by the Android.

This turned out to be less straight-forward and more challenging than anticipated. So, although I don’t expect many will need to run through this, I’m posting for the few who might. This’ll save you a couple of days of heartache.
Continue reading