Presently I'm faced with something of a tech dilemma at the office. Some of our public website relies on the Google Maps v2 API.
The Google Maps v2 API is deprecated, and on November 19th (that's today), it'll be switched off.
So I was asked to change some stuff over to v3. A while ago, actually, but things got missed and variuous things got in the way and anyway shut up.
Besides, this should be simple enough. You'd think.
It so happens that my predecessor wrote his own wrapper around the v2 API. Which should be good. That means I only have to edit the wrapper and not all the calling code, making my life much easier.
Except no.
The wrapper, it seems, doesn't work like it really ought to. You still need to do some work with specific API objects outside the wrapper, which are then injected back into the wrapper, which abstracts away the calls on said objects.
So it isn't really a wrapper at all.
So no I still have to find all the calling code and edit that. Which could take a while. And things will be missed. And things will break. And THE HORROR THE HORROR. What could be a ten minute job is now hours and hours and hours of having my eyes pecked out by crows.
So I did some checking, and it seems that while V2 will be going away today, it'll be replaced by a proper wrapper around v3, written and provided by Google. So v2 client code should still work for most simple operations, which ours most certainly is.
Brilliant!
Except I found this comment in the wrapper-that-isn't-a-wrapper, and it gives me THE FEAR
// access inner objects within Google API
// - clever hacking by examining Googles cryptic source code
// through Javascript source code vulnerabilities
Oh. My. WAT?
Apparently my predecessor decided that a black box API should actually be more of a transparent box, which you can reach into in order to rearrange stuff. He's peeking into the implementation details of the GMaps API and using not-meant-to-be-used details of the source code for various things in his wrapper-that-isn't-a-wrapper-at-all.
Which is fucking awesome. No wait, not awesome. What's the word? Oh yeah.
Mental.
So here's my plan.
I've taken it from the plot of "2001 A Space Odyssey", which as we all know is a template for good IT governance.
In the film, the computer HAL identifies an imminent failure in the AE35 Unit, a crucial part of the communication infrastructure on board Discovery. The crew remove the unit and find it to be functional. HAL proposes that the unit be put back into service, the idea being that after it fails, the fault can be more readily identified. This sets into motion the events leading to the climax of the film, weird lighting effects, demented choir and all.
So I'm going to leave my own little AE35 in service, and wait for it to fail.
And if it doesn't, I will kill the crew and continue the mission to Jupiter, alone and unhindered.
Nothing can go wrong.