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”

Nokia mobile theme for Drupal demo

In an effort to show what you can achieve with the nokia_mobile theme that (hopefully) will be released shortly, I set up a small demo site with some dummy content. You can visit the site with your mobile device at Don’t hold your breath, it’s dummy content, but the device detection and how the theme adapts based on the device capabilities should be evident.

The Mobile Plugin normally uses a PHP implementation of the WURFL API, unfortunately on a cheap hosting service (I bought dreamhost’s CHEAPEST possible offer on purpose) this crashes the server. So for this demo I started implementing what is in my view the next step, a very basic device detection that will enable site owners to decide what they want to do. If they have a lot of content optimised for different devices, they should pick WURFL and use the advanced rules settings available in the plugin, on the other hand, if they want a basic detetion and provide just two or three layouts, a simple detection should be more than enough. With the current demo version, no cache files are generated and the detection is instant. I would like to make this part of Mobile Plugin, eventually and better integrate the device classification that I built in the nokia_mobile theme.

More on device classification in the next days.

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.


First impressions about Nokia MOSH

I had just posted about Nokia MOSH and it’s a restricted beta, luckily I already got my password to access it. I created an account and uploaded my first content. I was really testing the site in parallel on my Mac and on my mobile phone.

Very first impression is that it’s an interesting new social site. It has all the common features such as upload a photo, invite a friend, exchange messages. The first question that comes to my mind is “So what’s new?”. Not very much I’d say, if you don’t consider that it’s made for mobile devices first and ALSO features a web interface. The main concept here is to be able to upload contents from your mobile device. This is nice and probably Nokia’s commitment is promising, but I don’t see it SO different from what Flickr Mobile has been offering for a while or even ShoZu.

But the very first question that came to my mind even before completing the registration was how they would recognize devices. The e-mail clearly stated that they will do their best to support all devices. Well, look at the image below and think…

I believe they are using WURFL. Not very hard to guess since it’s free and very well supported by many developers, but at the same time you might expect a different approach from Nokia. Are they using WURFL as-is? Did they patch and optimize the Nokia devices? Are they going to give back to the community?
How can I say it’s WURFL? If you look at the screenshot you can see a few things that hinted this to me such as “Research in Motion Ltd” instead of “RIM” or “Blackberry” that are much better known names than the complete company name. Another thing is the duplicated “Vitelcom” and “VITELCOM for Telefonica Movistar”, I remember adding those values and wondering if they should be merged or not. Then there are a few brands that you would not expect to be possible to be picked from a list of devices such as “W3C”, “WAPUniverse” and “WinWAP Technologies” (the first one is obviously not a device manufacturer and the other two are companies selling a browsing software). Also, if you look at the list of Sony Ericsson devices, you can see the “W810”, “W810i” and “W810c”, but the “W810” does not exist, it’s a virtual that device we defined in WURFL and the different localized versions (i for Europe, c for China and a for Americas) inherit from it most of their capabilities if not all.

Going back to the service, I liked that once I completed the registration it suggested to point the browser of my mobile device to a Accessing the site via your desktop browser provides the very same interface… Since they have a version optimized for desktop PC’s it would be good to be automatically redirected to the other version OR have a link. Nokia, if you are reading, I suggest you use is_wireless_device from WURFL.

One bug that I already found was that when trying to upload from the mobile, I could specify the tags. There was no mention of how to do it, so I used commas as on, but this did not work, so the upload was not successful. Since I was using Opera, I could not pick a file from the filesystem, but I had to use the camera, so I had to take another picture and, even worse, some, but not all of the information I had provided was lost such as the tags (of course) and the content title. This one needs to be fixed.

Questions still open are:

  • is the site able to recognize the device while browsing and let me know which contents will be appropriate? Using Opera Mini it did not seem to pick it up correctly (but the pages looked very good).
  • how will they be able to keep out pirated contents. I have uploaded one image and it is now waiting for approval, but still I can’t imaging people at Nokia testing all the applications on any possible device.

dotMobi’s mobile phone database, what is this?

You might have read the recent press release from dotMobi about the launch of a global mobile phone database. The press release also mentions that I have been appointed as Director of Device Initiatives and this means that I will be in charge of the project, starting from the design and down to the development and launch as a public service.
In the last few years I have made some good experience in device databases with WURFL and worked with some first class people in the W3C’s DDWG. dotMobi seemed like the perfect place to start a whole new adventure to create a new and innovative device database. I have all the experience of the open-source community and the will to make a first class product that can satisfy the small shops and the enterprises, dotMobi is the right place to try to achieve this huge task.

I joined less than a month ago and we are now in the most exciting phase of software development: collection of requirements and design. This is a very critical moment as we need to identify the meaningful use cases for the repository and then design our software and data structures so that they can satisfy the needs. In order to get started quickly, we reserved a meeting room in our Dublin offices, got coffee and cups for all, sat down and spent about 2 days talking about what the existing databases provide, how they are built, what they offer, what are the needs of the community of developers and designers and how we should build a new, revolutionary solution. We don’t want to re-invent the wheel, but we want to learn from past experiences and then try to make some steps forward. When the meeting started everyone had a number of ideas that did not really seem to work out very well with each other. I have to say that after two days drawing on a blackboard, talking, writing notes and sharing ideas, we have come to a very interesting solution. When the meeting started we had all these pieces that did not work very well, but after a lot of work, the dam was open and the river of ideas was flowing smoothly, every piece had found its place and the big picture had a very good shape.
We have now collected the requirements, we have defined the use cases and we are deep down in the design phase, this is the most exciting part of software development. We think that a mixture of Agile and XP programming is a perfect fit for this project, there are some functionalities that have been discussed only at a high level and that will be interesting to see them take a shape while the software grows.

Our desire is to make a few steps in the right direction and create new opportunity for developers, designers and companies in general. dotMobi is perfectly positioned as the company is all about mobile services. and are growing in popularity every day and the mobile phones database will be another quality tool offered to the community.
I am very excited about all the features we have thought so far and I am confident that most developers will be BLOWN AWAY by the software that we are going to build.

ATAC Roma improves the services for mobile users

I can’t really say “I just received” as this e-mail is dated back June, 1st, still I think it’s very good news. My friends at 01design have officially launched the new services for mobile users for ATAC Roma. ATAC Roma is the company that takes care of all public transportation in Rome, quite a good example of how a service should be tailored for the mobile context.

I went to try to service, but apparently you need to have a subscription with ATAC Roma, which I don’t have. This sounds like a big limitation, as I’d be happy to be able to access news and updates even if I’m just a tourist. I hope this is just a limited time closed service and that it will be open to all.

ATAC used to have a WAP site developed on top of WURFL, it sounds like the mobile section of the services have worked out and they decided to go with a more complete service that includes updates, news and so on.

The site is optimized for Opera Mini. Again, too bad I could not test it. I will look for a test account and update, if possible.

Well done!

WURFL PHP tools Version 2.1 released

Dear WURFL users I am here announcing the release of the PHP library version 2.1 Final (changelog). This release has been sitting there for quite a few months, it includes the patches I received, includes the new debug feature that was introduced in Beta 3 and a few more tweaks.
browser_is_wap has been there from day 1, but in the last year or so has proved to be outdated. The property is still there, but I strongly suggest that you use the WURFL capabilities (is_wireless_device and device_claims_web_support). The property now gets values from the WURFL capability is_wireless_device when available, just like Tera-WURFL. If you want real web/mobile distinction, I suggest you get the web patch.

The only major issue that I fixed is the exact matching that sometimes did not happen in specific circumstances.

I know I had promised to add the multiple patch support, but it never arrived. If you want to implement it should really take something between 5 and 10 lines of code.

This is my last release of the library, as you know I will not be active in the WURFL project anymore. At the same time I don’t see much space of evolution for this library. If you are unhappy with the speed of this release, you should probably give a try to Tera-WURFL, if you are unhappy with PHP 4 and want PHP 5, you should probably re-write it from scratch. For these reasons, I believe this is the last release. If anyone has an issue and wants to contact me, feel free, if you want to pick it up, I’ll be happy to see it keep living. MPL 1.1 gives you the freedom of picking it, just play nice with the license rules.

Hopefully there will not be release-time bugs. 🙂

WURFL is great, but I also need to move on

I have been working on WURFL since 2002. It has taken a lot of my work and off-work time and I put in a lot of energy in it.
The project has grown from 6 devices into more than a thousand and a few thousands user-agents, from 20 capabilities to almost 500.

We started as 5 people from around Europe with the same problem and we ended with hundreds of developers from all over the world contributing and thanking us.
The W3C invited me to join (as an invited expert, a quite rare thing) the Mobile Web Initiative thanks to my experience with WURFL and mobile site development.

During these years I worked for small companies, developed small sites, but also worked on big on-portal services, worked on off-portal sites, delivered ringtones, SMS’s, MMS, java midlets. I would say almost everything that is related to mobiles.

WURFL has achieved great results and worldwide fame and I like to think also thanks to my contribution and the time I spent regularly on it and in the mailing list.
Now has arrived a time for me to move ahead a look for something new. It is time for new challenges, put on the table what I learnt so far and see what I can do.
WURFL has been a HUGE success, being able to do something as good can be scary, but should be a lot of fun, not to mention the personal achievement!

Stay tuned for an update about what I’m going to do in the years coming. It’s going to be BIIIG.

If you are a WURFL fan, have no fear, the project will stay alive and I actually hope it will grow better every day, Luca is still committed to keep WURFL alive. If you want to make your voice heard in the project and are willing to share some of your time, this is a good time. Get on wmlprogramming and make your voice heard.