• Squander

    A few weeks ago Aaron Gustafson wrote a post explaining how third-party widgets can compromise user privacy by tracking users’ browsing activity. It’s something many developers are familiar with but Aaron took the additional step of detailing a roll-your-own solution for popular third-party widgets. It’s good. If you make websites you should check it out. The ...

  • Third-Party Cookies Explained

    For reasons I don’t understand, the subject of HTTP cookies tends to attract confusion, vague understanding, and outright misinformation. For instance, you may have read that cookies are scripts, or “programs”, or software, all of which are untrue. You may have read that cookies can transmit viruses or install malware on your computer. Also untrue. ...

  • Should optional link disabling for touch interfaces be a thing?

    I don’t know if this happens to you but every now and then when I’m reading an article on my iPhone or iPad, I touch the screen to scroll and my finger inadvertently bumps into a link. Woops. Most times it’s not a problem but it can be annoying if I’m on a low-bandwidth connection, ...

  • Tracking Scroll Depth with jQuery and Google Analytics

    Scroll depth—the measure of how far a user scrolls on a particular page—is an interesting but lesser-known engagement metric. It’s not something you can find in your Google Analytics or Omniture account but you may be familiar with it from other analytics services (e.g., Chartbeat). If you’ve ever participated in an ontological debate about “the fold”, ...

  • firstImpression.js: A micro-library for detecting new visitors

    firstImpression.js is a micro/nano-library (1 kb minified) that answers the simple question, “Has this user visited this site before?” The detection doesn’t require much logic, so the majority of the code is just a Plain JavaScript port of the popular jquery.cookie plugin. Using it Writing and reading your own cookies is easy enough but if ...

  • Responsive Ads in the Real World: Ad Server Implementation

    The last time I wrote about responsive design + advertising I put together a few examples demonstrating how an ad unit could respond to its environment. The demos were fun but in the real world, ads need to integrate with an ad server. This is a slightly greater challenge but I’ve had a few thoughts ...

  • Simple CSS/JS Concatenation and Versioning with PHP

    Here’s a quick and easy way way to concatenate stylesheets and JavaScript using PHP. I’ll also show how to layer on file versioning so you can use far future expires headers for optimal client side caching. There are many ways to combine files to reduce HTTP requests–you can use a build tool to prepare static ...

  • Watch and Compile LESS From the Command Line

    Unlike SASS and Stylus, the command line compiler that comes with LESS does not include a watch option to automatically compile LESS files whenever changes are made. There are several GUI apps that provide watch functionality but if GUIs aren’t your thing or if you need something that can run on a server, you’ll want a way ...

  • Responsive Ad Demos

    My previous post was about some of the business challenges surrounding responsive design and advertising. I wrote it just after reading Mark Boulton’s excellent Responsive Advertising, which was written earlier this week and which you should definitely read if you haven’t already. While I still think the business challenges are the greater obstacle, the technical ...