The MeeGo Comeths

A few weeks ago, Nokia and Intel announced a merger of the Maemo and Moblin projects. The resulting platform shocked the world. OK, it only shocked the communities (the third amigo) involved. Yours truly wanted to blog about it badly weeks ago. But I apparently never got the knack of timing and priorities just right. So please forgive my late entry into the fray, and accept this out-of-sync piece of journalism.

Sidenotes for the Technically Curious

I will touch on a few things that uninitiated might find confusing.  Without getting into the nitty-gritty technical details there are a few things some readers should know.  A stack or platform refers to a collection of software that works together to perform some larger task.  In the context of this article, a stack includes the operating system, libraries for supporting applications and system programs that provide services for user applications.  User applications being any program a user would use and identify on a device.  UI refers to the user interface for a program, namely all the buttons, sliders and widgets a user can interact with.  Packages refer to installable applications in the Linux world. A library is just a bit of code shared by different applications.

Aside from that glossary, please keep in mind that due to physical constraints small mobile devices will always be underpowered compared to full-scale computers.  There is just so much processor power and memory that can be crammed into a small handheld device before the device will use so much power that it will drain a conventional battery in minutes.  Batteries can only hold so much power without being physically bigger and heavier.  Thats why it is essential for anyone programming something like a cellphone to write code that is fast, efficient and doesn’t use too much memory.  On that note, programmers have the option of writing native or interpreted applications.  Native applications essentially instruct a device using machine code.  Interpreted applications need to first run on a special interpreter program that transform the code into machine code.  For that reason alone, the same code/algorithm running on native application will always be faster than an interpreted application.

The Birth of MeeGo

The MeeGo project comes from two very different but equally important platforms: Maemo and Moblin.  Intel created Moblin as a Linux stack optimized for netbooks.  Nokia created Maemo as a Linux stack optimized for pocket computers/handheld Internet tablets.  Aside from using Linux, a conventional GCC and Gtk technologies,  the Moblin and Maemo platforms are radically different.  Moblin targets Intel Atom (x86) powered netbooks.  Maemo runs on ARM powered mobile devices.  Moblin uses RPM package management.  Maemo stems from Debian and uses DEBs.  The UI is radically different for both platforms.  Moblin exists as a developer preview and doesn’t ship on any production run of netbooks (as far as I am aware).  Maemo runs on Nokia’s N700, N800, N810 Internet tablets and the N900 smartphone.  Oddly enough Nokia still considers Maemo a “developer” platform.  Or rather considered it a developing platform, up until the announcement of MeeGo.  Now Maemo is effectively a dead platform.

The Reaction

Quite naturally both the Maemo and Moblin communities were shocked at the announcement.  Considering how MeeGo is structured, the Moblin community just reacted with a surprised “Oh, thats nice.”.  The Maemo crowd didn’t take the news as well.  No wonder considering that many early adopters and developer paid a lot for the expensive must-have toy, the N900.  Mine own cost around 550 USD, but came out to over 600 USD after taxes, parcel forwarding to Canada (damn you CRTC, Bell , and Rogers for having a bizarre GSM network) and customs.  Many people were looking forward to a bright future with Maemo6.  Instead lots felt that Nokia pulled the rug from underneath their feet.  Needless to say a lot of dust and fuss got kicked up.

We Go into the Future

As soon as the announcement came out, the Nokians found themselves with a farther despondent and worried Maemo community.  The Maemo community felt that their expensive toys would  eventually become expensive paperweights.  However Nokia announced that the new MeeGo platform will work on Maemo devices, especially the N900.  No promises that MeeGo will get optimized to work smoothly on N900s, but a working platform is better than no platform.  So with the community calmed down but cautious, what are the next steps for the MeeGo project?  Well most of the Maemo community web resources are transitioning to MeeGo.  Maemo developers and packagers will need to learn how to build RPMs instead of DEBs for MeeGo.  The MeeGo folks chose to go with Moblin developer tools, simply because the tools are far more mature than Maemo’s.  Fortunately the majority of the Maemo community applications are open source, so in theory simply recompiling and repackaging the applications is all that is required to get Maemo apps running in MeeGo.  Also the MeeGo platform will use the Qt library heavily.  Since Qt is one of the most cross-platform toolkits/libraries out there, developers will benefit from learning a single library that will run on nearly ALL operating systems.

As a Non-Maemo/Non-Moblin User Why Should I Care?

Now most people who use netbooks or smartphones do not use either Maemo or Moblin.  No surprise since both platforms are currently targeted toward developers and early adopters.  Most netbook users use either Windows 7 or a Linux variant.  While most smartphone users use Symbian, Windows Mobile, Apple’s iPhone OS or Android.  Heck even Palm’s WebOS supports more devices than what MeeGo will support from the get-go.  So why should anyone care?  Well in the netbook category, Linux at least is consider a serious alternative to the Windows monopoly.  However the user experience on most Linux netbooks ranks from “decent” to “ho-hum”.  The Moblin (now MeeGo) project worked heavily on making the user experience on netbooks a lot,  a lot nicer.  I would even dare say, a sexy user experience.

On the smartphone side, iPhone is the game in town for good user experience.  Windows Mobile and Symbian are good but still lag behind.  Open sourcing Symbian hopefully will rejuvenate that platform.  Real competition comes in the form of Android (Google Java stack mixed with a rather unorthodox Linux setup) and WebOS.  However WebOS is counting on pure web (HTML & Javascript) applications which are limited in terms of rich user experience.  And Java is yet to be fast on ANY mobile platform.  Building on top of a full Java-Linux stack like Android does, will always be a performance hit.

This is were MeeGo can shine, by providing native Qt applications with rich user experiences.  Nokia and Intel want to work with other device manufacturers to build MeeGo powered solutions.  Solutions such as advanced in-car entertainment systems.  By building on a single platform, there will a lot less repeated work on building the necessary underlying platform.  Instead everyone can focus on building interesting new user experiences, and applications that link with systems in new, unimagined ways.  Of course, only time will tell if any of these blue sky dreams will become reality.  A MeeGo release for currently existing hardware such as netbooks or N900s, will be a definite step in the right direction.

RMS Does Toronto

Richard Stallman, President and Founder of the FSF

Richard Stallman, President and Founder of the FSF

Yesterday I got to finally meet Richard Stallman (RMS) in person.  And yes, he is a way cooler dude than many in the “open source” gang say he is.  The FSF announced a while back in a press release, that RMS would be speaking at UofT on the topic of copyrights in a networked world.

RMS lectured on the history, current politico-business problems with copyrights and some measures to fix them.  I personally found his points interesting, and I’m interested in trying out some of his ideas.  The brief period of exclusive commercialization and modification authorship rights versus long term exclusive publication rights for non-technical documentation is also pretty good.  Also he briefly touched upon the need for a micro-donation payment method.  Overall, a very interesting and engaging talk to a large student audience.

At the end of his presentation, he auctioned off a stuffed GNU and “Happy Hacking” t-shirt.  Eventually the proposed prices became too steep for even myself, so I this morning I went on down over to the GNU/FSF’s online store and bought both for myself.  Getting back to the evening, I also got RMS to autograph my copy of “Free Software, Free Society“.  I highly recommend reading that book.  Also RMS asked me personally to stop using the terms: open source and closed source.  Not only are those terms misleading but they totally ignore the important issue of user and developer freedoms.  So henceforth I’ll try to use the terms “libre software” or “free software” instead of “open source”.  And “proprietary” for “closed source”.  Also I got meet to Dave, one of the organizers of the event and DrProject developer.  And Aaron one of attendees.

A big thanks to RMS, the FSF and the students who organized this event.

Building a Community

Ok.  Aaron Seigo of the KDE project is a genius.  He really is.  Not only does he lead the absolutely revolutionary Plasma project in KDE, but he also knows what he is talking about.

Anyway he wrote a kickass article about how to build a community in open source.  And I’m too lazy to write one myself, since my experience is not as long or as exciting….  Or I might write it up later for reasons of posterity.

Without out further ado: advice from Aaron on building a community in an open source project.

Why Ubuntu is Important for Me…

So Jono Bacon, Ubuntu community leader (and mister communitizing the community using community tools 😀 )  asks why Ubuntu is important to me.  In my case this would be why is Kubuntu important to me, but then we will be arguing over semantics.

Yes, the freedom Ubuntu brings into my life is one reason why Ubuntu is important to me.  In general I value things free in nature: free will, free markets, freedom of speech, freedom of association, et cetera.  Ubuntu brings me freedom in the software that I use.  The obvious freedoms stem from the free software that makes the Ubuntu ecosystem: the freedom to use as I see fit, the freedom to study and enhance my knowledge of computing, the freedom to modify to my needs, and the freedom to distribute my modifications.  But heck almost every Linux distribution gives me the same freedoms.

What differentiates Ubuntu Linux from other Linux distributions, are the more subtle freedoms.  I have the freedom to setup technology to work the way I want it to work.  Yet I also have the freedom of having the technology actually work.  I have the freedom to choose between free and *gasp* non-free software.  I have the freedom to access and install applications from one of the largest package repositories, aside from Debian.  I have the freedom to choose where I get excellent support, from the community or from Canonical.  I have the freedom of which architecture I want to run on.  In essence, I have the freedom to use my computing resources as I see fit.  You can’t get this on a Windows PC or a Mac.

The other reason Ubuntu is important is the reason why Ubuntu is so successful: the people involved.  Without the strong, friendly community, the responsive developers and enlightened leaders in and around Ubuntu, this distribution would not exist.  So thank you, all of you involved with Ubuntu.  Thank you for your time, your effort, your contributions and your sense of humanity.