Sorting User-Agent strings out

It is very common that over the years something gets more and more cluttered, until at some point someone comes in and decides it’s time to clean up and start fresh, based on current and up-to-date needs. User-Agent strings, part of the HTTP request headers, are no different and between desktop and mobile browsers, the history is long and the amount of text (some might say useless text) has just kept growing. I am going to try and write down what is important today and why.
Continue reading “Sorting User-Agent strings out” update

I felt like my little site to see a browser’s HTTP request headers,, would at some point die and that is why I have not updated it in months. The reality is much brighter and while I see crawlers visiting every other day (don’t care about those very much and I’m sure they do not care about the service!), I also see mobile devices and strange User-Agents coming every day. This is of course a good sign, a proof that it is useful to some and even if it’s very simple in concept it’s good that it is being used.

For this reason I have spent half an hour today to make a small change that I think can be very useful. Up until yesterday I showed the headers as PHP stores them which was probably OK, but less than perfect as PHP uses its own header names and changes everything to uppercase. Using a simple function (apache_request_headers) I have now changed to the actualy names as received by Apache. This is probably a change that will not make a huge difference to the most, but it’s a valuable improvement to some. I have some other improvement on my mind, but I need to install some software and unfortunately I don’t have time, but expect something soon.

I also removed the officially-dead-for-quite-a-while list of tests. I originally created them thinking of using them as a test suite for browsers and mobile devices and wanted to store results in a database. Eventually and thankfully, dotMobi came in and we developed a nice site for testing that is fully integrated with DeviceAtlas and so now I’m linking that site, if you want to run any tests (see the online docs for TA-DA). Remember that in order to login you will need valid mobiForge/DeviceAtlas credentials; on the up-side, all your tests results are stored with your profile.

High Efficiency

I always run Rescuetime in the background, even though I have to admit I don’t check it so often (anymore).
It was interesting to see that the week before the DeviceAtlas 2.0 release my efficiency was very high. See here:

It should be noted that normally during the day I spend some time developing and some time writing specs, talking to colleagues, on the phone and so on, but of course, just before the release it was all about development. 🙂

Within the DeviceAtlas team, on Monday 29th September, we worked an average of 11 hours and 30 minutes, plus the what the designers worked, that is probably about the same. What a team!!

HTC naming madness

The other day I was trying to do some house-cleaning of HTC device names, clones and HTTP request headers for DeviceAtlas.

The result was that I was one step from going crazy. All those devices have names that are almost the same, UAProf or user-agent string refer to slightly different names, different network operators re-brand with *other* different names.

Just to give you an idea, I found a couple of useful sites that talk about HTC devices, platforms, and model names:

One of my favorites is the T-Mobile Atlas, a.k.a T-Mobile Wing, a.k.a. HTC Herald, a.k.a. HTC P4350 and probably some more names. The saint had less alternative identities!

I think it’s almost impossible to keep up with all those names and re-branding. If you know a good way or you work for HTC and want to help me, *please* contact me.

Has Nokia run out of names?

Nokia always named their mobile devices with numbers. Most of the times 4 numbers, sometimes 3. In the last few years they started also using letters such as N and E.

Many have tried to find some reasoning behind the numbers, but no real rule was ever found (at least that I know of). Anyway, it looks like Nokia might have run out of numbers. Today, while checking on Forum Nokia I noticed a device that was advertised as new, but did not sound so, to me. A little research on the Forum itself shows that the “new” device is the 3120 classic, but there’s also an older 3120! So why is the new one called “classic”? Shouldn’t it be called “new” or something?

Well, for all of us (OK, I’m the only one) trying to remember all model names, it’s going to be harder now.

PLUG: luckily you’ll find both in DeviceAtlas (Nokia 3120 classic and Nokia 3120).

New WURFL Java API will be GPL?

DISCLAIMER: I run DeviceAtlas for dotMobi.

A thread about making the next version of the Java API of WURFL more OO, something that Java developers are certainly fond of, has spun in a thread about licensing.
I think a few developers have been caught by surprise. In short Luca wants to make the new API GPL, instead of the current MPL. It is still not clear which version of GPL and I think it is not yet definitive.
The problem that was raised is, of course, that changing the licence to GPL will compel all developers selling their software based on the WURFL API to open-source it and use the same version of GPL. Luca mentioned how mysql does not have this problem and how big companies like Google can use open-source softwares, but not release back to the community. This is of course a different case from mysql, because the API would be tightly embedded in the software and the licensing issue would affect mostly consultants, not companies doing internal development (like Google, in Luca’s example). If you think that WALL might be licensed in the same way, it might be even worse as WALL will certainly be a core part of any mobile application.

There is a solution to this, of course, a dual-licence. Also, special discounts are announced for companies buying consultancy.

I am curious to see how this will end. I hope the community will be able to find a feasible solution that will keep everyone happy.


Over The Air event report

Last Friday I was in London to speak about DeviceAtlas. My speech was actually called “DeviceAtlas Masterclass”, but I did not know exactly what to expect, of course I knew the participants would be developers interested in mobile, but what exactly were they looking for? 1 hour was the scheduled time, I prepared a speech that would take about 40 minutes so that I would leave 20 minutes for discussion. The speech was really an introduction explaining how DeviceAtlas works and why dotMobi decided to create it.

There were about 30 people in the class. Most of them already knew DeviceAtlas and already had their own ideas of what they needed. While the presentation was only an introduction, the outcome was very positive, in fact there has been a lot of interaction, questions and discussion. I think this really turned a speech into a masterclass.

The only real issue during the class is that it was interrupted by a Fire Alarm started. We all walked out and stood in the grass for a few minutes. Then back into the class-rooms and got an extra 15-20 minutes. Luckily the weather was very nice and chatting on the grass has been a pleasant interruption.

Argogroup data is now part of DeviceAtlas

We announced DeviceAtlas back in February and promised that Argogroup data would have been included to our repository.

Well that day has arrived, Argogroup brings so many years of experience that I can hardly think of a company in the mobile space that was around when they started. We have already loaded information for almost 800 devices (adding information to existing ones or creating new devices) and we have a few more updates in the pipe.

This addition brings a lot of value to DeviceAtlas as Argogroup has built a huge reputation on their testing platform (Device Master) which makes it a perfect match for DeviceAtlas and dotMobi.

Visit the official DeviceAtlas site now to get the fresh downloads and if you are not a user yet, I think it’s a good time to get your developer licence for free. Do not forget you need an account (also free) on, first.