Achievement Unlocked: Google Tag Manager

I’d never bothered to figure out how Google Tag Manager actually works, because… well, nobody ever asked me to. But today I found myself trying to figure out how to do basic link tracking, and sure enough, the GTM site/webapp was still utterly incomprehensible to me. It was definitely easier to use than before, but it still doesn’t make any sense if you’re a raw beginner. Which I was.

Normally, I hate trying to learn developer skills from videos, but the GTM documentation wasn’t helping me, either. So I finally caved and found Measureschool’s YouTube video, which was both short and subtitled, so I could actually enjoy it at work.

And now I’m not a raw beginner anymore, and can actually use GTM to do stuff besides basic session tracking. And hopefully, Google’s documentation won’t be completely opaque to me anymore.

(Another achievement unlocked this week: genuine object-oriented programming in PHP. Again, nobody actually needed it from me before. This one I could actually figure out from the documentation, though.)

Stonegate Venture Partners

Stonegate Venture Partners
Stonegate Venture Partners

A new partner site to Stonegate Advisors, this one not only uses the same design, it shares 98% of the CSS. The only big change was the conversion of the news articles from static HTML to a database-driven PHP/MySQL system, which was also copied from another recent site of mine (Vasilko Architects et al). This meant we could get the site up and running from only rough design sketches inside of a week.

Vasilko Architects

Vasilko Architects


This is a fairly basic site content-wise, but it’s the first client site we’ve built on the Bootstrap 3 framework — extensively customized, of course, and fairly heavily optimized. jQuery provides animations when you mouse over project thumbnails, and the project slideshows themselves are powered by Bootstrap’s Carousel component.  Continue reading Vasilko Architects

Caching Google Maps geocoding lookups

Google Maps geocoding — the ability to send an AJAX request with a street address and get back a specific latitude and longitude (and lots of other data) in response — is a very useful tool for any number of mapping applications. Best of all, these applications can be written in pure JavaScript — but at a price. Google has strict usage limits for its free geocoding service, which can only be increased for a fee.

However, if your application tends to hit the same addresses over and over again — say, to plot the location of restaurants near your business address — it’s possible to cache these lookups in a database. You’ll still be using Google to look up new addresses, but any user hitting the same address twice in the same day will use your database instead of Google’s service. Continue reading Caching Google Maps geocoding lookups

Geocoding with Google Maps without OVER_QUERY_LIMIT errors

Problem: A JavaScript application needs to do more geocoding lookups than Google will let you do at once. It’s possible to use setTimeout() to make JavaScript wait, but with the callbacks, it’s cumbersome.

Solution: Use a server-side script that will retrieve the same data, requesting it over and over if an OVER_QUERY_LIMIT error occurs.

Continue reading Geocoding with Google Maps without OVER_QUERY_LIMIT errors