Recently I had lunch with Drit Suljoti (@dritans) of Catchpoint who sponsors NY Web Performance Meetup and as always with Drit, we had a great talk about emerging technologies, product ideas and ways how web can be made faster.
At some point in discussion about casual gaming I remembered great series of projects by Luis von Ahn (of CAPTCHA and reCAPTCHA fame) who was working on so called “human computation”.
One of the ideas he was working on was development of games that humans can play and produce a side product that will help computers with tasks that they are not that good at. He created ESP game that was later licensed to Google to become Google Image Labeler and Peekaboom (now unavailable).
These two games were working on a problem of object identification in images – task that computers might never be able to master, at least during our lifetime. I really recommend his awesome presentation about the topic of human computation, CAPTCHAs and games – watch it all, it’s worth it.
So, talking to Drit about the performance, I realized that human computation can be the answer to one of the problems that Web Performance field is struggling with for a while already: how to automatically identify “enough” point of the web page, when it becomes reasonable for a user to engage with the page; metric that we can use to optimize web page performance for.
This metric is notoriously hard to measure, browser events only reveal technical aspect of page load, but do not tell much about user’s perception. Even render events are not good enough as having something drawn on the page, although dramatically removes the emptiness feeling of “nothing is happening”, still doesn’t provide the enough moment.
There are some algorithms that try to define “enough” by analyzing the drawing activity of the visible area of the page (so called “above the fold”, term we got from newspapers), they are still not very precise and hit the same constraints any object recognition algorithm will hit.
And having this problem in my head for quite a while, looking for an ideal metric that Show Slow can track, that can be put on weekly reports and even t-shirts, I realized that we might not be able to give a good answer to this problem by computerized means. It is very possible that the only way to achieve reasonable results is to use human brains.
So the solution could look like a game or at least a game-like environment in which people are given a simple task that, as a side product can produce enough data so we can identify performance metrics using statistical analysis.
Right now I see a few important metrics that people can enter voluntarily on involuntarily – time at which page rendered to “enough” state and points on the screen that represent the most important visual information.
Both of these metrics can probably be collected simultaneously and using the same process. Players might be identifying page’s content or provide timing directly.
Luckily many tools, including free and open source WebPageTest.org and Catchpoint’s commercial monitor can already capture images of page rendering activity so getting the content is not a problem.
So, what it all means is that people can work very well where computers can’t and human computation can come to rescue for web performance industry’s most complex problems.