Measuring site performance with JavaScript on mobile

There is a lot of talk around responsive Web design being too slow or too resource intensive and that other methodologies can achieve better performance. I don’t want to go into the details of which approach is better because I think different scenarios require different solutions. What is certainly true in all cases is that a Web site or app that loads faster is better than one that is slow.┬áCompanies like Google, Gomez and Akamai have all published papers and survey results showing how speed affects user perception of a service from your desktop computer and even more on a mobile device (KISSmetrics has also drawn a nice infographic for the lazy ones). This is the first article and another one will follow shortly. Continue reading “Measuring site performance with JavaScript on mobile”

Why Microsoft and Windows Phone 7 is the best way to pee in your pants

DISCLAIMER: I work for Nokia, Forum Nokia.
DISCLAIMER 2: What I am going to say here is exclusively my own thinking and analysis and based only on what is publicly known.
I have no insight on why and how the decisions were made, no insight of any behind-doors-agreements, gossip or promises.
What I am writing here is simply the result of my thinking based on what I have read and heard in the public announcements. Continue reading “Why Microsoft and Windows Phone 7 is the best way to pee in your pants”

Google, Apple and the Internet OS

The other day I was reading a great post by Tim O’Reilly entitled The State of the Internet Operating System. It’s a long article if you are used to the average blog post (not very different from what this one will be!), but it’s worth reading all of it.

Now, if you are done reading it, I wonder if you agree with him or not. When I started reading and probably up to one third, I was not understanding where he was going to end up, but then I had a A-HA moment and all of sudden I realised what he means and I completely agree. It is something that has been in my mind for a while, but I was never able to put it down in words as well as Tim O’Reilly did. One of the reasons recently I’ve been paying particular attention to where I sign in, which cookies are in browser and where I go is that I can see where Google are going and how they are expanding their APIs and how developers are using them more and more. Google are amazing at how they are identifying growing trends, developing new technologies or acquiring companies and integrating their existing products. Add to this their release speed and you have an amazing juggernaut heading to the conquest of the Internet Operating System. They are obviously dominating the Web and you don’t need me to tell you that they are doing very well with APIs. Come in mobile devices and more in general mobile computing. Google have not left any base uncovered and they have the already successful Android and the upcoming Chrome OS. Then at the latest Google I/O the Google TV is announced in partnership with Sony, a company that has always tried to develop its own technologies and keep them as closed as possible. If they have given up to Google it means Google is giving them something that is worth a lot.
Continue reading “Google, Apple and the Internet OS”

Sorry, your HTTP headers are incomplete

You might know by now that over the years I have developed a little fetish for HTTP request headers of mobile devices. At dotMobi this is a common reason to make fun of me, they let me discuss them for a little while and then either all walk away or just point out that I’m the only one who cares. Obviously, this is not helping very much my mental issues, so I’m here telling the world.

We all know how Apple is sometimes evil and how they tell everyone that the iPhone has a “full web browser” and is not mobile and bla, bla, bla. We know this is not really the case, but we certainly don’t want to ruin the only one thing in 10 years that might be making the mobile web take off!
The headers the iPhone sends do not provide a UAProf URL and all iPhones (2G, 3G and who knows next) all send the same User-Agent string where the only difference is the firmware revision. It is good if you want to know if it’s OS 1 or 2, useless if you want to know if it’s 3G, has GPS and so on.

Unfortunately it looks like Android is following the same path and not really helping developers. The G1 was the very first GooglePhone and everyone implemented a G1-specific UI or site. Hopefully more Android-based devices will come in the next few months and we will see much more activity on our websites, now, if this is true, be prepared for a new device detection nightmare. See these two User-Agents that we recorded in DeviceAtlas:

Mozilla/5.0 (Linux; U; Android 1.5; de-de; HTC Magic Build/CRA86) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
Mozilla/5.0 (Linux; U; Android 1.5; en-gb; HTC Magic Build/CRA71C) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1

You might have guessed they come from an HTC Magic, the device that Vodafone should be releasing any day now. If you know how most device detection algorithms work you will know that they normally just walk the User-Agent string from left to right and try to match it with known strings. Notice how “de-de” and “en-gb” are before the string “HTC Magic” this will either break that search algorithm or make us record all possible combinations of languages.
But don’t panic, YET, the User-Agent string is not the only HTTP header that a browser will send when requesting some content. Since this is a mobile device (it IS a mobile device, right?) you might expect a UAProf URL. Even though UAProf has not solved all our issues, it was still one of the very few things we KNEW every mobile device would provide since probably year 2002 or so. It was not the case for the iPhone and the G1 and you will not be so surprised to discover that it is also missing with the HTC Magic.

I am sure I can thank HTC for this, not sure how much Google is responsible, surely they haven’t done much NOT to make it happen. I guess we’ll have to wait for some other vendor to come up with an Android-based device.

One last bit of my rant is about a NEW header that is added, instead of the Referrer, the browser sends a header called Origin, which is EXACTLY like the referrer, but with a different name! Good idea, isn’t it?

New Gmail mobile built on HTML5

I was very pleased to read an article from Alex@Google that describes how they have decided to develop the new gmail mobile web interface.

There are at least two reasons why I liked this article, one is that, as Alex mentions, the team originally developed a J2ME application (that I used quite a bit on my old Sony Ericsson W810i) and then decided they needed a web application to serve slightly different needs (and probably slightly different users). The second reason is that it seems like if you don’t create an application for the App Store you are going to fail, while Alex explains quite a few reasons why developing a web site was better than a native application.

Bottom line is, of course, that users get multiple options and an opportunity to choose what suits them best.

I think the article is well worth 10 minutes of your life, if you still haven’t read it, hurry up to check HTML5 and WebKit pave the way for mobile web applications.