Innovation in Increments

I have the good fortune of working in a Research & Development group. That means I get to learn about new ideas, experiment with them and apply them appropriately. Unfortunately I can not discuss my current project, other than it involves automating the creation of mobile applications. While I can not say that I am building something that is so deeply innovative that it has no precedence. But then again what most people do not realize that innovation happens mostly in small increments. You take an interesting idea, see if it makes your life easier and better. If not you review your work and options, and you try again. If it works, you get innovation!

So while I can not comment on my own work… 🙁 I can point some interesting work happening in the libre software community.

Canonical’s New Take on Scrollbars

Many of today’s computing innovations like tablets deal not with radical new technologies.  But rather making technology more usable for non-developers and non-engineers.  It might not sound like much, but Canonical is working on improving the usability of scrollbars in their Gnome desktop: http://www.markshuttleworth.com/archives/615

Take a look at the video in Mark Shuttleworth’s post.  I definitely think that abstracting the line indicator and the actual control is a great idea.  It also makes it more touch friendly and intuitive.

MeeGo and Qt Lives for KDE and the N900

While not so much an innovation per se, I am happy to hear that the development of Qt and MeeGo will continue.  The KDE crew came out and pointed out that Qt back when KDE started was a great framework and is even better now.  Back when I started using KDE, I was amazed at how well everything integrated together in look and feel terms.  This was all possible with KDE settling on one good UI framework, Qt.  Now that it is more cross-platform and rounded out, it still is a great compelling framework to learn and use.  There are some governance issues that need to get worked out, but it is nothing that won’t be resolved nicely soon.  I indeed intend on learning Qt, as soon as my own schedule clears up.

[Another analysis on the Nokia/Qt/MeeGo/KDE question.  Man isn’t life in the libre software world messy at times.]

As for MeeGo, sounds like Nokia will be supporting the N900 as an official development device for MeeGo.  So maybe Mr. Elop changed direction, but at least there is a way forward for MeeGo handset developers.  Hopefully that’ll mean that we can get started hacking on MeeGo.  And once more devices come out, all developer efforts can get carried over.  Maybe, just maybe we’ll finally have a good libre software platform for new disruptive devices, that won’t be threatened by the domination of one massive vendor.  I’m looking at you Google, Microsoft and Apple.

MeeGo Nowhere

My previous blog post about MeeGo was completely off-base. So it looks like Nokia decided to go with Windows Phone 7. Personally I don’t see the point, but then again I don’t run a Fortune 500 firm either. Apparently there are still plans for a MeeGo powered handset/mobile computer. Sometime in May, maybe? However it does not bode well for us from the Maemo community.

So what about the dreams of having a real Linux running on handsets, netbooks and all that jazz? Well it looks like WebOS gets that privilege and honour. Maybe others will run with MeeGo, but this all is starting to all look a lot like the OpenMoko or LiMo. In other words, a Linux + GCC + X + Gtk + Qt stack is something that for now will remain in the corner. Something that the free software idealists, early adopters and researchers will run. But otherwise, rather irrelevant to the rest of the world. I’m also worried that closed, locked down garden walled ecosystems will prosper rather than something totally free and flexible. So Stallman’s dystopian future of the Luna colonies looks all the more real, each and every day.

So what about our man, Nokia, jumping off a burning oil platform into the “safety” of the North Sea, as CEO Elop so eloquently quipped? Hope they don’t die of shock. The North Sea is not exactly a safe and nice place to take a pleasant dip into. I wish them the best and hope they don’t end up washed up on the shore of some strange mobile country as a frozen corpse. Because baby, it is cold outside (the mainstream mobile ecosystems).

So where does that leave us? Knowing Qt is still a good idea for other reasons. The Maemo user and developer community should prepare to become self-sufficient because there probably will not be anymore Maemo-like devices out there. As for MeeGo? Come back in May and we’ll see if anyone gives a damn. The most widely adopted, open and flexible mobile OS right now is Android. At least thats how I see things playing out.

Nokia and Qt, I Choose You!

Since I commented on this post about MeeGo here, I really should explain.

I went to a Wavefront/Nokia seminar about Nokia’s Qt and Ovi store on Friday.  Partially out of curiosity, partially to network and partially to perhaps win a brand new spanking N8.  Not that I want to hand in my N900, but I like new kit.  And as a research & development mobile developer it is my responsibility to learn about the whole of the mobile ecosystem.

First of all I want to say is that I am amazed by the pains that Nokia goes through to maintain being a market leader.  Not to sound like a PR person for Nokia, but the number of countries and languages that Ovi is available is astounding.  And for anyone wanting to integrate their app purchases with a carrier’s billing system Ovi is the only way to go.  Why?  The Google Market integrates with 2 carriers.  Nokia’s Ovi Store integrates with 99 carriers.  So while Apple iOS and Google Android do a remarkable job, they don’t scale like Ovi does.

Another thing that Nokia does well is compete in various markets against various vendors at the same time.  In the superphone market it is up against Apple, Samsung, HTC, Motorola, Microsoft, Google, etc.  In the business space against RIM’s BlackBerry.  And it wipes the floor in the feature phone market.  Yes, the superphone market is proving difficult for them.  Hopefully MeeGo will change all that.

Qt is amazing, and Nokia is pushing Qt hard.  Very, very hard.  This is awesome news for the KDE community.  And it also provides a glimmer of hope for developers who would love to learn one framework very, very well and use everywhere.  Java failed, and if Android (which ONLY works on smartphones or smartphone-like handsets) is the best we can do then we have failed.  This is coming from someone who earns his bread and butter as an Android developer.  I love working in Android, even with all of its quirks and oddities.  But Qt… thats a whole new level, especially if the market accepts MeeGo.

So know there is a bunch of speculation about Nokia CEO Stephen Elop dropping a platform and merging with something Microsoft.  And everyone is speculating Symbian, Symbian^3 or MeeGo.  Symbian is not going away.  And I don’t think MeeGo will go for three reasons: it took years to get MeeGo to where it is.  Second is that already most of the up and coming in-vehicle interface systems will run MeeGo.  And third is this interesting tidbit:

Audience: So when is the next Qt training session for Toronto?

Nokia Rep: There is one in March for Montreal.  There will be one in Vancouver in April.  And there will be a whole new set of sessions including Toronto, around MeeGo devices.

That and other comments at the seminars point to MeeGo device appearing sometime before May.  So what about this mysterious announcement?  Well everyone seems to have forgotten that Nokia has a gaming platform: NGage.  Yes, that NGage.  The one that is not doing so well.  So how will they compete in the mobile gaming space with the iPhone/iPad and Sony’s next PSP that is Android based?  How about bringing Microsoft’s XBox to mobile devices?  Hmm…

Discuss!

As a sidenote, I’m planning to learn Qt while working on my current work project.  I can’t wait.

MeeGo 1.0 and Maemo5 PR 1.2 Released

While I was busy with the randomness of life, awesomeness hit the world of mobile Linux.

Maemo5 PR 1.2 Released

For all you proud owners of Nokia N900s, go and upgrade to the recently released PR 1.2 update for Maemo5.  This update really, really improved the performance of the phone.  Better multimedia playback, faster browsing experience and many other improvements.

I went the way of reflashing the device, using Nokia’s Updater.  Now it claimed that it would wipe out my personal data on the device.  So I made a backup and let the Updater do its thing.  I went the Windows route, because I didn’t feel like messing with the Linux flasher.  Both work the same, I just went with the easiest route.  To my surprise and delight, all my data carried over.  I needed to reboot the N900 before everything showed up.  But it was all there with the exception of my applications.  That required me to go and re-download and reinstall all my apps.  Not a big deal, but a slight hassle nonetheless.

What about MeeGo?

One thing that didn’t happen was an update to MeeGo for the N900s.  On one hand I understand why Nokia didn’t want to push-out a risky upgrade to existing N900s. On the other, never getting official support for MeeGo on the N900 is a shame.  Developers will get to play with MeeGo images for the N900.  But don’t expect Ovi or anything non-community based finding its way on the MeeGo for Handhelds, in terms of anything for the N900.

MeeGo 1.0 for Netbooks

Even if MeeGo never arrives officially on the N900, it is ready to hit the netbook.  The MeeGo project recently released MeeGo 1.0 for Netbooks.  Being the ever curious geek, I decided to download and install the MeeGo 1.0 image on a USB stick.  Since the netbook at home is currently on the other side of the pond, I decided to try it out on my non-portable super-netbook (a.k.a. desktop workstation). Unfortunately I got as far setting up and booting off the USB stick.  Then I got a funky framebuffer not found message, and the poor thing tried to start up a display.  I guess no playing around with MeeGo, if it isn’t a supported netbook just yet.

However Nixternal (of KDE/Kubuntu fame) had a better go and blogged about his good impressions of MeeGo.  So far people are impressed.  The MeeGo platform will impact the netbook and tablet market, at least with the products showcased at Computex.  Also it looks like DeviceVM will make their next SplashTop product on top of MeeGo.

We have a Go for MeeGo

6 days after I blog that the MeeGo project should start with a release of MeeGo as a first step… well they do exactly that.  Now before everyone goes off and tries to flash their nifty Nokia N900, please don’t.  This first release is just the underlying stack, without any GUI elements.  As in if you flash your device to this first release… you’ll get a console with a blinking cursor.  Now I don’t know about you… but I don’t know how to make a phone using the console.  Still great work MeeGo folks.  I look forward to seeing the upcoming release with the MeeGo User Experience, to see how the system will look once it becomes something an advanced end-user can use.

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.