Old is the New New

Or at least it seems that way. After all the fun that was summer, it looks like I will be going back my old pace of life and digs. So does that mean?

First of all, no real changes in my life at the present. The world changes around me. I feel like I am running around like mad trying to change life. But instead it looks like most of my efforts are resulting in my not moving. Or maybe it is the motions of the universe cancelling out my motions. Either way nothing new on my side. At least nothing new that I can envision. Maybe just a gentle slow plodding toward where I need to get to. Except…

Except that I may start working as a software developer again. And I might get the chance of working on various mobile platforms. I’d like that very much as I do want to move into mobile programming. If not I am pleased that the job market for software developers is hot. Especially ones with experience and modest expectations. I think the era of the very highly paid developer will draw to a close, as the economy tries to readjust. But I am so ready to get back into coding on a day to day basis.

On the tech side, after playing around with openSUSE this summer I realized this distro is not for me. I love the polish and care that the KDE side receives in openSUSE. But the underlying system and configuration just does not match the way my brain works. A Debian distribution feels more natural and works better. Combine that with a focus on ease of use that Ubuntu offers… well I am back to using Kubuntu. Kubuntu 10.04 is a better version and feels just as snappy as openSUSE. While the construction of the system and the popularity of Ubuntu win out over openSUSE.

Upgraded to WordPress 3!

Well after a long wait, I finally upgraded to WordPress 3. Amazing is all I can say. However rather than doing a simple upgrade, I decided it was time for a fresh install. Just in case, and to get rid of any old configurations or scripts that might cause problems. I still plan on adjusting the theme and fixing the categories which magically exploded from some reason.

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.

Migrating to openSUSE

If you’ve followed my dents on identi.ca, you may have noticed that I asked people for their recommendations for a good KDE4 Linux distribution.  Well after a bit of thought I decided that I would move away from Kubuntu to openSUSE.  Why the change?

  • KDE4 is the desktop environment that gets all the attention and polish.  Kubuntu is great and valiant effort by the community to bring the Ubuntu experience to KDE4.  However, there is a lot of polish and integration missing that openSUSE provides.
  • A system that supports my hardware. From some weird reason, the Ubuntu kernel maintainers removed a flag that cause my DVD burner not to see CDs.  This is not the case in openSUSE.  I actually tried to burn something off a LiveUSB before installing openSUSE.  Yes, I could of recompiled my kernel with the right flags.  But if I wanted to do that, I wouldn’t have moved off Gentoo to Kubuntu.
  • A system with lots of packages and community repositories. This is why I didn’t choose some of the lesser known distributions.  openSUSE (and Fedora) do a good job at this.
  • A stable system. Fedora does not do that.  The upcoming release of Kubuntu LTS et al, seems to break things.  openSUSE is extremely conservative in this manner.
  • Something I am familiar with. This was not a hyper-important point, but I do like the fact that I’ve used SuSE in the past.  So installing openSUSE is a bit like going back to an old and comfortable place.

And so far I am pleased.  The desktop looks polished, quick and a great KDE4 experience.  All that said there are somethings I don’t like:

  • Configuration is weird. I am not a huge fan of YaST.  It is good, but somehow my brain has gotten used to thinking either configuration files or KDE’s System Settings.
  • Leaving Upstart. Upstart is really, really neat way of dealing with services.  Now I’m forced to think in terms of rc.d runlevels and I’m not a happy bodkin.
  • NXServer installation breaks things. Oh yes it does.  I fought for quite a while with getting my OpenSSH server starting at boot.  It looks like the bootscript for nxsensor (nxserver’s statistics gathering engine) screws up runlevels.  Never ever had this issue in Ubuntu.
  • No DEBs. I miss DEBs,  aptitude and various DEB tool.  I’m hoping that zypper and yast manage RPM dependencies in a saner manner than what I remember from 2004-2006ish.

Somethings I look forward to trying out:

  • How easy updates work. openSUSE 11.3 is in the works, and I can hardly wait until it comes out in July.  I got a taste of KDE 4.4 via a backport  PPA in Kubuntu.  And I want that that goodness, without my system acting weirdish after the update.
  • Easy to do backups. I could not for the life of me setup a decent backup scheme under Kubuntu.  openSUSE provides a backup module right into YaST.
  • Better performance. So far openSUSE feels snappier than Kubuntu.  We’ll see what will happen once I restore all data from a backup.
  • Developing and distributing KDE and Qt with ease. This is a huge one.  I want to get into programming in Qt and enhancing the KDE experience.  I’m hoping that the tools and build system in openSUSE makes this braindead easy.

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.

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!


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

Welcome to 2010. Where the Hell is My Robotic Servant?

Happy New Year to all my readers!  2009 was quite an emotional year: the first batch of my close friends got married, a death in the family, the ups and downs of dating, professional life and all that jazz.  Last year I’ve felt I’ve grown like no other year.  I started work in 2008.  But 2009 was the year that I feel I kicked off the sneakers, t-shirt and shorts laid-back attitude of  a university undergrad, and donned the look and feel of a professional.  I definitely feel the change was for the better.  Also last year I rolled up my sleeves and told myself to do the things I wanted to do, but kept on putting off.  True, I came up with some grandiose plans that I couldn’t of finished realistically.  Still I  managed to tie up most of the loose ends of previous years.  My projects moved forward by a bit.  My organizational skills improved, and I no longer procrastinate on tasks for months.  I still leave things off, but only for a few days.  At most a month, if something is a bit more complicated or delicate.  Come to think of it, most of the tasks that hang around are ones that will take hours to do.

Now the new year, nah new decade begins.  I feel I’m a better professional, writer, programmer, businessman, outdoorsmans and well… man than a year ago.  Ditto for 10 years ago.  So whats next for 2010?  Lets hope no massive shift in society occurs (and that I fear more and more is a possibility to no-one can simply ignore) and God willing that nothing crazy happens in this upcoming decade.  I’d hate to live the life of a Snake Plissken, Mad Max or an Afghani.  Assuming that nothing happens, my new years resolutions come from a modified version of last year’s:  (Which yes stems from goals of 2007…)

  • Become a Senior Software Developer/Consultant
    • 2009:  Learnt the Spring MVC framework, EJBs, AJAX, ExtJS and other Web 2.0 technologies.
    • 2009: Advanced in my skills in databases and Python scripting.
    • Learn and become a Qt/C++ developer.
    • Learn to manage risks, estimates, costs and client expectations as a consultant.
    • Advance my knowledge of Python, PHP and Javascript web frameworks.
  • Become a Published Writer
    • 2009: Started work on a number of novel ideas.  In total wrote about seven or eight separate chapters.
    • Finish and publish at least one novel.
    • Read a finished piece at The Totally Unknown Writers Festival 2010.
    • Publish my university articles in novel or series form.
  • Start a Masters in HCI Design
    • This is a blue skies idea.  But I do plan to go back to university and start working on a Masters degree on HCI (Human -Computer Interface) Design.
  • Become a Libre Software contributer
    • Continue work on justCheckers.  Possibly create and release the mythical version 1.0.
    • Get involved with the KDE or Maemo projects.
  • Build out my stealth mode start-up
    • 2009: Created a business plan and strategy.  Now I just need to execute on it.
    • Build an initial product offering, that will fund future development.
    • Add finances into the mix.
  • Personal
    • Get a full driving license.
    • Date that awesome girl. (Ladies a bit of help with that one? You know who you are.)
    • Get more involved with outdoor sports.
    • Deepen my faith and my knowledge of the world around me.
    • Learn to use a “freaking” calendar, rather than ignoring it.
    • Clean up the mess that is my home computing system.
    • Regular exercise and fitness.

And thats about it… Time to take on 2010.  I’m disappointed by the general lack of robotic servants, flying cars, jetpacks and moon bases.  Still I’m thankful for no nuclear war, giant mutant predatory creatures wandering the streets,  grey goo accidents or human-unfriendly singularity AIs too.  So 2010 probably won’t mean a radically different future for humanity.  But that doesn’t mean we don’t all have something look forward to this year. 🙂

News – Google Chrome for Linux, Thunderbird 3.0 & Malware for Ubuntu

Dorian is currently concentrating on writing and getting things ready for Christmas.  So in the meantime, here are some new stories to tide you over: