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.

Happy Ada Lovelace Day

Wednesday was Ada Lovelace Day! (UPDATE: Apologies for the late post.)

In a nutshell, March 24 is set aside to promote the achievements of women in IT and software engineering.  And we can start by looking toward the achievements of Ada Lovelace.  Ada Lovelace-the daughter of the famous poet Lord Byron-was the first computer programmer and worked with Charles Babbage on the theoretical underpinnings of computing.  Without her contribution, modern computing probably won’t exist today.

Now I’m not into the whole feminist movement.  I don’t think the movement really represents what the majority women think or want. And the feminist equation of “woman == man” doesn’t make sense.  Neither does any equation that tries to equate one person with another.  All humans should have the right to own their own bodies and not being owned by others.  And I won’t get dragged into a libertarian versus non-libertarian political theoretical debate here.  However I was brought up thinking that women can think as well as men can.  Therefore women can do engineering, mathematics and computing as well as men can.  (<flamebait>Maybe even better.</flamebait>)  So I want to acknowledge in this post, women who I highly regard and who have achieved great things in IT.

@Home: Mom

OK so my mom doesn’t work in IT.  She in fact dislikes computing in general.  We still disagree over the fact that I chose software development as a career.  However I regard her highly and without her work I would of never been able to work as a software developer.  Mom not only brought me into existence, she also taught me.  She as someone with a Masters degree in Civil Engineering, she could of worked on engineering amazing structures. For various she gave that up, to teach and raise me and my brother.  When two public school boards gave up on me ever reading or writing, Mom taught me.  She taught me mathematics and gave me a solid base that carried me well into university level math.  And she always would point out how weird it was that Canada didn’t have as many female engineers as Poland did.  While there are many reasons why that was the case, it was Mom who taught me to believe that women can and should be engineers if that was their calling.  So while she doesn’t work in IT or software development, Mom brought up a pretty decent (IMO) software developer.

@Work: Jennifer Chung, Salina Behera , Safa Siddiqui & Monika Schigel

I am privileged to work with the above ladies at my current workplace, VisionMAX Solutions.  Jennifer and Safa works as developers.  Salina is one of our talented DBAs.  And Monika works in that dark, arcane magical realm known as data modelling.  Not only are they great people to interact with, they also possess a wide body of knowledge.  Jennifer is a whiz at Java and ExtJS, and I often find myself asking her for advice on how to solve various tricky problems.  Monika has a way to cheering people up and I’ve never seen her without a wide grin on her face.  Also she and Tom, our two intrepid data modeller have been initiating me into the dark art of data modelling and the business of retail and mobile telecos.

@University: Katarina Halan & Megan Foote

While studying Computer Science at the University of Toronto, I had the opportunity to study and work with these two incredibly talented ladies.  We helped each other out on assignments.  I can not stress how well they understood the various aspects of computer science.  Also they introduced me to some interesting parts of Japanese culture, namely anime and DDR.

In the Open Source Community

Finally, two ladies that inspire me to get more involved with the open source community as a whole are: Emma Jane Hogbin and Celeste Lyn Paul.  Emma works on creating and managing documentation at various open source projects.  Celeste is a HCI expert who helps make KDE applications have the best user experience of any desktop related project.   I’ve only had the opportunity to meet Emma in person at Ontario Linux Fest 2009.  But Emma, you sure inspired me to look at the various components of documentation.  And yes documentation can be sexy.  I don’t get the ponies though.  Celeste on the other hand inspires me to one day get back into university and work on getting a human-computer interface design.  Her work inspires me to improve the UIs and workflow of any piece of software I am involved with.

To all these ladies, I’d like to personally say thank you.  You made me a better software developer.  And you are an inspiration for all women in or thinking of working in IT and software development.  Thanks!


Now We Return to Your Regular Programming

Any writer who keeps on promising to write more regularily but doesn’t is a scoundrel and a rascal. I leave it as an exercise to the reader about what that makes me.

So I tried microblogging, like all the cool Web 2.0 kids do. Unfortunately for me I can’t blog about many things for a multitude: legal, personal, client confidentiality. What gets left are random bits and the boring and mundane. Even the little experiment of Day X of 2010, was a fun way of writing good soundbites but honestly I ran out of creative and witty quotes. I prefer long form writing. And only at random time when my muse whispers something interesting in my ear. I know very artsy of me.

Short story long: I’m back to just plain old blogging, on no day in particular and not particularly long. Enjoy.

A Day in the Life of Dorian for 2010-02-09

Nokia N900 – The Penguin Has Landed

You may have noticed that I’ve dropped off the side of the Internet somewhat. Life can get busy at times, especially for someone who sometimes gets muddled up with time management and priorities. Another compelling reason for this is that I recently bought a Nokia N900. And I’m still getting used to incorporating it into my day to day activities.

Getting It Home

Unfortunately, Nokia does not sell the N900 in Canada. In theory it might eventually. But I wasn’t going until the Canadian duopoly of Rogers and Bell along with the CRTC got around to doing so. So much for Canada being a leader in telecommunications technology. Instead I bought my N900 through Amazon and used Shipito to forward my parcel. Later I found out that buying from Dell may have been a cheaper and faster alternative. It took about three weeks but I eventually got my toy.

Hardware

I must congratulate the engineers at Nokia for coming up with solid feel to the N900. I would of preferred a metal body like my old N810. But the N900 is definitely not as flimsy and plasticky like my Nokia 5800 XpressMusic phone. The touchscreen is quite sensitive and responsive much like the iPhone’s. The sliding keyboard also feels great. Each key nicely rounded, depresses in a solid quiet manner and gets illuminated in low light conditions. The 5 Megapixel Carl Zeiss camera takes great pictures with good resolution and great colour balance. My 5800 in comparison took decent photos but everything was a shade of grainy grey. The auto-focus on the camera leaves much to desire. But it might be a case of my not knowing how to use the software. The N900 takes MicroSD cards, which helped with migration away from my old phone. The internal memory is a massive 32 GB. Sound quality of the speakers is excellent. Great feeling stylus as well.

I loved the large full kickstand on my N810. Apparently the preproduction units of the N900 also had this design. However the production N900s have a small kickstand built into the lower frame of the camera. It took my quite some time to find it. And since the kickstand is off-center the whole device wobbles on its kickstand. Not cool. The real scary thing is the micro-USB connector. The power adapter for the N900 recharges the device using the micro-USB. And the port itself is surface mounted to the circuitry. I’ve read quite a few horror stories involved where the port detached from the device! So I’m paranoid, and extra careful with plugging in the micro-USB cables to the N900.

Software

The UI on the N900 screams wow. The Compiz-like 3D views and effects win everyone who sees the device in action. A phone should not be able to look and act so sexy. The UI is intuitive and very finger friendly. Web browsing is where the N900 excels. The swirl zoom in and zoom out, smooth scrolling and fast rendering makes web browsing fun. The browser fully supports Javascript and Flash, so the experience is comparable to using a full desktop browser like Mozilla Firefox. The N900 also has a great PIM/contact management. Combine it with the Hermes app from Maemo extras, and you have an awesome contact management that integrates your contacts on various messaging, microblogging and social network services. Amazing. There are a few nice apps available through the repos and the Ovi store. Including the fun games of Bounce Evolution and Angry Birds.

It is not all roses in the software realm. The N900 while a mobile computer and all that jazz is still a mobile device. Space and energy constraints plague every mobile device out there. So there is a limit to how much multi-tasking one can do. Fair enough. But sometimes the device grinds to a slow halt with just a few apps on. Why? I get it why it happened when I copied my 6GB music collection off my MicroSD onto main memory. Maybe I need to restart the device once in a while? But why two browser windows, two instant messaging apps and a music player can stall the device… Also the Maemo5 platform used on the N900 is new, so there will not be the number of apps that Symbian S60, Apple’s iPhone and the Android app stores enjoy. Nokia has Ovi working for the N900, except payments are still missing. Hence my hesitation to say the N900 will work well for non-enthusiasts. It looks like Nokia also has similar feelings. Then again Nokia has said that Maemo6 will be the mainstream platform, with multi-touch support, app stores and all that jazz.

Thoughts, Ideas and Dreams

This review is reaching epic proportions now. In short, I love my little N900 mobile computer/Internet tablet/cellphone. It is definitely something I looked forward too. And I’ve owned a number of mobile computing devices already: Palm Tungsten E, Nokia N810 & Nokia 5800 XM. A great thing is that the device and platform has the potential of getting way better with time.

Related Links