Today, I was once more aggravated when viewing something on github.com, as the avatar icons for the individual users were not being displayed. It turns out that github has reworked their system to display such avatar icons to go to gravatar.com, a popular service for such purposes. The following short essay applies not only to github, which is merely taken as an example, but to other web services as well, and gives ideas about how to produce an alternative design without these problems.

This is, in itself, a bad move, since it turns gravatar into a massive tracking database, much like the ones at doubleclick.net or other advertising agencies, only with an emphasis on techie websites. That this move, and supporting this kind of tracking, was intentional, is also underlined by the fact that the actual icons are not delivered by gravatar, but by github, by redirecting to the following URL:

https://identicons.github.com

So in effect, github does deliver all their icons below, but only makes a "detour" to gravatar to give them the ability to collect tracking data.

Apart from the profile-building property of this arrangement, this idea does also look quite dubious from a usability perspective:

  • It involves one more service, thus reducing the availability of the overall service.
  • It results in at least two more web requests, even HTTPS, per icon, introducing a noticable delay from the user's perspective, plus additional data transfer.
  • By the same token, it involves both more CPU load on the server side, as well as on the user side.

Using Firebug, I determined that the added delay for my notification page roughly varies between 1s for the fastest, and 2.5s for the last few requests, in overall page loading time. I dimly remember that conventional wisdom demands response times well under 1 second for a page to have acceptable performance. Firebug also showed that the individual icon requests were usually being processed in 1 second or under.

Now the questions are: Why would you introduce such delays into your website, especially if it involves added cost for everyone, without user-visible benefits? What are the hidden benefits of such a measure?