RequireJS and jQuery - A Journey in noConflict Mode
Being purveyors of 3rd-Party JavaScript, sandboxing is something near and dear to our hearts. We take integrating with our publishers seriously, aiming to ensure a high-quality experience for their engineers and most importantly their users. jQuery has noConflict()
and you’re gold; easy enough,...
Chris Metcalfe Engineering Team Lead, SFP
Ryan Loomba Software Engineer
Your Backbone Can't Save You Now: Why We Use Backbone Marionette
The big ball of mud is a well understood software anti-pattern, and we’ve all experienced it at some point in our careers (sometimes on the receiving end but all too often as the creator). There is never a specific event where we can look back and say, “this is what caused the problems we’re experiencing...
Danny Olson Software Engineer
The Right Time for Structure: Retrofitting Backbone.js to a jQuery Application
It started innocently enough. We had a story to make a few UI changes to a small JavaScript app. There would be no functionality changes, so it was going to be an easy morning. Maybe even an early lunch? When we fired up Vim we saw that lunch was going to be a bit later than expected and that we...
Danny Olson Software Engineer
jQuery Vs jQuery
During integration testing, one of our publishers recently reported that their Comments section didn’t work correctly after adding our tags. Nothing else seemed to be amiss, and our content was appearing and behaving correctly.
Shipping 3rd Party JavaScript comes with its own unique set of challenges...
Peter Kinmond Engineering Team Lead, Client
3rd Party JavaScript: Welcome to the Circle of Trust
For the last three years, we’ve been supplying our publishers with 3rd Party JavaScript to power native content distribution, helping them make a buck by providing non-interruptive, choice-based advertising. Our code is put on the publisher’s page directly, versus in an iframe (typically referred...
Peter Kinmond Engineering Team Lead, Client
Keep Your Friends Close and Your 3rd Parties Closer
As part of our viewer engagement tracking, we send back a umtime
parameter (MDN: milliseconds since the epoch) to our tracking servers, http://.../?umtime=1375503164030&...
. Timing allows us to tell a story around how viewers engage with our content, for example “Unfolded the card, watched a video...
Rob Slifka VP of Engineering