Thursday, June 17, 2010

From Maemo to Meego

Seek out any project that has one of the following resume-ready words in its description:
  • Multimedia
  • Worldwide
  • Advanced
  • Strategic
  • Revenue
  • Market
  • Technology
  • Rapid
  • Competitive
The Dilbert Principle, pg 81
by Scott Adams
I'm thinking it best to start off with a little background. On talk.maemo.org and throughout the rest of maemo.org I am known as "epage" (I tend not to be too Original). I joined the community when I got myself a Nokia 770 to replace my Palm Pilot I used for keeping myself organized at school. My old college campus has wifi everywhere and I had moved a lot of my data over to online services so I needed a device that could handle my changing needs.

I started off contributing to a project called "GCDialer" a Grand Central client for Maemo. GCDialer would use your browsers cookies file with wget to communicate with Grand Central. This worked great on Maemo but my desktop had already switched to a version of Firefox that changed how cookies were stored. To get this to work on my desktop I took an ActiveState recipe for downloading pages with cookies and integrated it into GCDialer. Since then the other contributors backed off, we switched the name to DialCentral (pre-GV, for trademark concerns), moved over to Maemo 4.1, added a host of features when adding Google Voice support, and added Maemo 5 support.

I'm now the sole maintainer of DialCentral, Quicknote, Multilist, ejpi, Gonvert, and The One Ring. I've also contributed to NQA and flirted with Mer. This list slowly evoled as I've either start new projects (ejpi, The One Ring), I wanted to make improvements to things I use regularly (DialCentral, Quicknote), or people have requested ports (Multilist, Gonvert, NQA).

Recently I've been trying to help out on the wiki with Python Performance and PyQt.

That last one is where I'm going with this. I have a couple projects in the pipeline. One is for a non-profit and I'm waiting on them to give the "Ok" before releasing. Developing an app that was not for my specific needs or the needs of other community members but for a longer term benefit of a non-profit motivated me to finally start preparing for Meego.

With Maemo 6 we were told Qt was the future and GTK was community-support only. I think I saw in the transition from Maemo 6 to Meego that GTK was going to be fully supported. I took that from the Maemo perspective (rather than Moblin) and assumed GTK/Hildon was to be supported. This made me complacent to learning Qt and switching over. It took long enough switching my applications to support Maemo 5 in addition to Maemo 4.1 but to switch the toolkit also?. After some discussion on the mailing list about Hildon on Meego it looks like Stskeeps is going to pull through on this one though I wonder what Hildon is like without the custom GTK underneath.

I still figure I should learn Qt. My plan is the following:
  • Port Gonvert for an intro into the basic Qt UIs
  • Port ejpi to learn about custom widgets
  • Port DialCentral to develop strategies for threading
I've actually finished Gonvert and plan to write up my experience from that. The main reason I finally got around to starting a blog was to provide a source of slightly less outdated information than what I kept running into.