While Mozilla is gradually turning more attention to mobile platforms to expand its presence in the web, there’s another project, MicroB, that is already providing a Mozilla based solution for the Nokia tablet PC platform that has already become the default browser for Internet Table OS 2008, the latest version of Nokia’s maemo-based table PC OS.
Antonio Gomes, a MicroB developer kindly accepted an interview to learn more about the MicroB project and how it works.
Mozilla Links: What’s your role in the MicroB project and maemo in general?
Antonio Gomes: I am currently more active on projects surrounding the MicroB project itself. The main one is the Browser Extras project, which intents to make popular Firefox Add-ons available to MicroB. In my spare time, I am usually doing MicroB feature implementation and bug fixing.
How did you get involved with the project? I know you’re from Manaus, is maemo or Nokia particularly strong in Brazil or is it just coincidence?
It is not a coincidence. Back in 2005, we started developing (at INdT) a proof-of-concept prototype browser based on the Mozilla/Gecko 1.7 for the maemo platform. It was named MANaOS and featured a few basic functionalities of most popular desktop browsers customized for the mobile context. After a while, an advanced development project began in partnership between INdT and Nokia, which later on became the product program we know today as MicroB. This is basically how I got involved.
I believe that although Brazil cannot yet be considered a software development center (when compared to countries like India, Germany and the USA, for example), with regards to maemo and mobile development we are definitely up there and challenging. The activity is obviously more intense in the areas where INdT is present: Manaus/AM, Refice/PE and Campina Grande/PR. In Recife the guys have been doing a great job on projects such as Python for maemo, Canola, Mamona and Carman, whilst here in Manaus our focus is more on Web development and Kernel related work.
Internet Tablet OS 2007 shipped with Opera as the default browser, do you know why did Nokia replaced it with MicroB?
The MicroB team use to get emailed all time by people suggesting or complaining about features, requesting improvements, and even better, sending me patches to fix a broken piece of it. That is the point of the open source community: if you do not like/enjoy something, you can take it and implement it in your way. It speeds development up and then releases become more frequent. With Opera we could not have this kind of atmosphere at all.
Tell us about maemo. How did it start and how is it organized? Is the work done for maemo reusable in other mobile platforms?
Maemo is an Embedded Linux distribution sponsored by Nokia and officially launched at the LinuxWorld Summit in New York City on May 25th, 2005, when Nokia’s first Internet Tablet was announced.
Since then, various software releases have come out and been shipped on three different devices, the Nokia 770, 800 and 810. In the latest firmware edition, OS 2008 (Maemo 4.x), the platform’s maturity, stability and performance gains are notable if compared with previous versions, and for sure maemo can now be classified as a general purpose development platform, built from widely used Desktop and mobile systems components (including the Linux Kernel, D-BUS, GConf, GTK, Mozilla, among others). All of which goes towards delivering a rich set of applications that make a mobile users’ life easier.
A good example of maemo being used outside of Nokia is the Ubuntu Mobile Project, where the UI Framework is based on the Hildon Application Framework.
By the way, how is it pronounced? mee-moh? or meh-moh?
The pronounciation is â€œmy-eemoâ€.
How many people are currently involved with MicroB development?
For a while now I have not been certain exactly how big the whole team is. First off, I am not based in Helsinki, where the core team is, so I do not know everybody in the project anymore. Also, the team is getting bigger over time as we are always trying to get the latest and greatest browser tools available for our users. So, new projects get launched, new people get hired (including subcontractors like me), and the project grows…
How is work in Mozilla trunk synchronized with MicroB?
Our current synchronization is not as good as it should be for sure, but there are some reasons for this. Let me explain: MicroB browser is a patched version of Firefox 3.0 pre Alpha 1 source base [around mid 2007]. To be more specific there are over 160 patches (over patches) applied against a Mozilla trunk tarball. Keeping all these updated to any Mozilla official release is not an easy task.
Do you work directly with Mozilla Corporation employees?
I have more personal contact with Doug Turner, Chris Hoffman, Marcio Galli, and all the other MoCo employees that I met in person. However, after starting to â€œircâ€ more often on the Mozilla channels (#mobile and #prism) I found myself eventually starting to talk with some other cool guys such as Brad Lassey, Mark Finkle and Chris Blizzard.
Is MicroB development related to Mobile Firefox?
Well yes and no actually, but let me explain. The â€œyesâ€ is illustrated by the fact that both MicroB and Mobile Firefox (the product) run on top of a XULRunner build (the mozilla embedding runtime). Also the fact that some patches developed by the MicroB team are eventually checked in into Mozilla upstream CVS tree (trunk) means there is co-operation. Josh Soref, who is a long time Mozilla hacker, is the Browser Specialist guy at Nokia so there is a link there too. However, as I mentioned previously, MicroB’s engine is not synchronized to the latest and greatest Mozilla release.
Is it based on XUL, Hildon or a mix?
Maemo formerly shipped the Opera browser on the tablets and this relied on an already implemented Hildon-based UI layer so XUL is completely turned off on MicroB builds. The team understood that there was no reason for having two GUI toolkits. MicroB uses the Mozilla GTK2/Cairo backend, and Hildon/GTK for widgets, windows and dialogs. No XUL at all.
When can we expect Firefox 3 updates to be available in MicroB?
Actually, I am not sure when MicroB will get synchronized to the XULRunner/Firefox3 trunk. Personally, I hope it is as soon as possible. After that, all improvements of Firefox 3.x will be available.
I’ve seen a few popular extensions ported to MicroB. How hard is it to make extensions compatible with MicroB?
Mozilla’s extension and UI systems are designed to allow programmers to add new features to applications built on top of them or allow existing features to be modified. The add-ons (as they are also known) allow this usually by modifying the â€œchromeâ€ of their target application. When Firefox add-ons turns to MicroB, which has a Hildon UI and no XUL available, their port require all the chrome and â€œoverlayâ€ stuff that relies on XUL to be replaced. Furthermore, MicroB’s UI is a static set of binaries that can not be extended by other layers, so it is also tough to implement mechanisms for users to interface with add-on functionalities.
For Greasemonkey (GM), for example. we had to create a standalone Hildon Setup application to work as the default GM setup dialog on Firefox. Porting gets even harder due to the fact that the Gecko 1.9 pre Alpha 6 used on MicroB has some annoying bugs which amongst other things require the engine to start twice to have the new installed add-ons registered and working smoothly.
I see RSS support was recently improved. When can we expect these improvements to come in final form?
As I said before, I am not exactly sure how this update will occur. The only thing that I can say is that it will bring great additions to the maemo user’s internet experience.
Update: Josh Soref (incorrectly mentioned as Josef Soref in the interview) is not and ex-employee of the Mozilla Foundation or any of its subsdiaries.