On Hiatus

Maybe I should put off on posting any new updates considering I haven’t slept this night.  I plan on hiatus from writing for a bit.  I have things that I need to sort out, before I’ll have time to blog anytime soon.

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.