Saturday, November 17, 2012

Mae-Fi for MeeGo Harmattan

I have been working on a new application for the Nokia N9 and N950, which I call "Mae-Fi".  It is a simple Eye-Fi application written in Qt/QML, with a Python backend.

For those that do not know, Eye-Fi refers to a series of SD cards by the same name that have a Wi-Fi capability.  Their use is primarily for transferring images wirelessly from your camera (DSLR or P&S) to your computer or to online photo sharing sites. 

I have often taken some nice shots with my DSLR, but lack a convenient way of viewing or sharing them via e-mail until they are downloaded to my home network.  Eye-Fi cards can be set to use preconfigured networks, with sharing to online services, or FTP.  With FTP protocol, however, the images are first sent to Eye-Fi servers, and then back to your FTP server.  This is not ideal for my use case, as I do not like my photos being sent unnecessarily to online sites.

Eye-Fi does have dedicated apps that work with a Direct Mode, which enables transfer of images between the card and a mobile device.  As one would expect, the platforms where such functionality exist are iOS and Android.

Being a Maemo/MeeGo enthusiast, I thought I would try my hand at making an application for Harmattan.
Mae-Fi makes use of a python script called eyefiserver.  It was written originally by Jeff Tchang.  The N9 and N950, being mobile Linux computers, are able to easily use this script as-is.  I created some hooks to tie it back to a Qt/QML user interface.

The application has a start/stop button which enables the python script to start listening for the Eye-Fi card.  It also has buttons which launch the Hotspot and the built-in gallery application so that you can connect to the Eye-Fi card, and view images that get transferred to the N9/N950.

Requirements for running Mae-Fi are:

1. Nokia N9 or N950
2. Eye-Fi X2 card with Ad-Hoc capability.  Since Harmattan does not support infrastructure mode in its Hotspot, the more expensive X2 cards are required.
3. Hotspot mode on N9 or N950.
4. Eye-Fi Card configured to use the N9/N950 hotpot in Ad-Hoc mode
5. Eye-Fi Card with Relayed Transfer mode disabled.
6. Upload key from your Eye-FI card.

Mae-Fi can be seen running in a YouTube video I created a few weeks ago.  It shows the Eye-Fi card connected to my N950 hotspot, and also shows the transfer of a picture from my DSLR to the N950.

A more recent screenshot of Mae-Fi can be seen below:

Mae-Fi is close to being ready for distribution.  I need to add a way of entering the Upload key in the application, and I would like to add some visual indicator of image transfer within the application itself.

Digg Technorati Delicious Google Bookmark slashdot

Saturday, November 26, 2011

New to Harmattan C-OBS and

*Disclaimer: I am not a developer, hacker, or programmer*

Part of the agreement made when I received the Nokia N950 developer device from Quim Gil was to get an application ready for Harmattan in the open source App Store,  Although I had the guts of MaeFlight ready a few months ago in QtQuick/QML, I held off on packaging it until there were some applications in the Community App Store.  Not being a developer, I hoped to learn how others faired overcoming the wrinkles in the processes before I ran into them.

My application, MaeFlight, is a simple utility that fetches the status of your airline flight, given the airline code and flight number.  It is a nicer looking version, with simpler guts, of the Maemo 5 version I had coded close to 2 years ago.  I decided to use QtQuick and QtCreator, these being (in theory) the most straightforward paths for Harmattan development.

QtCreator and QtQuick are a good combination of tools for Harmattan development.  I could code within QtCreator, and deploy to my N950 to test with a few clicks of the mouse.  There were a few hiccups with QtCreator that I learned to work around.  One annoying one was when it could no longer find the N950 via WLAN.  Resetting that connection solved that issue.

After I had the most basic application ready to distribute via, I started a painfully long attempt at getting MaeFlight's sources built by the MeeGo Community Online Build Service.  The first step in this is to get the source into a format suitable for the COBS.  The MeeGo wiki and Jaffa's wonderful mud2 utility proved very useful here.  The mud2 utility creates the 3 files you require for uploading to the COBS.  However, after carefully following the instructions in the wiki, my package would continually fail the build process.  I found out via trial and error that the Changelog and Desktop files had to contain version numbers in them that agreed with the version number that mud2 assigns to the source packages.  Once I changed that, the build process worked, and the COBS built a .deb for my application, complete with its own repository!

I logically assumed that since the build process worked, my next step was to upload the package to the testing repository of  This is a straightforward process, and well documented in the MeeGo wiki. 

However, once MaeFlight was in the testing repository, it would install to my N950 from the Apps Client, but would not deploy the desktop file and launcher icon.  I reached out for help on, and found a suggestion from user rlinfati that seemed to work.  It involved additions to the top of the QtCreator 'pro' file.  This seemed to be the answer, as MaeFlight was then able to be built by COBS and be deployed to the device correctly from client application on the N950.  Success!

I have observed some peculiar things with the MeeGo COBS and the client:
  • COBS fails builds sometimes, but then when restarted, the build works fine.  Perhaps there is a good reason for this, but it doesn't inspire much confidence in a novice like myself.
  • The client application on the N950 has a mind of its own sometimes.  For instance, MaeFlight has shown up multiple times at the same version, and has failed to install at all, in spite of the .deb installing correctly from my personal MeeGo COBS repository.  I am not sure why this is the case, but it also makes me feel unsettled.  The current v1.0.1 of MaeFlight built properly on COBS, installs fine from the .deb in my repository, but does not install from the client application on the N950 !

At the end of the day, I now have a process which can work, if the stars align themselves properly.  But, I think it should be easier.  That will hopefully come in due time. 

As for MaeFlight, it has proven to be an interesting experience for me in learning the ropes of open source development using QtQuick, QtCreator, and COBS. 

Digg Technorati Delicious Google Bookmark slashdot

Tuesday, June 21, 2011

N9 and MeeGo Harmattan: Loss of Widgets

Having thought about the Harmattan UI a bit more, I realized that since there are no 'desktop screens' as the N900 has, there are also no widgets!  The demonstration at #nokiacnxn showed the three aspects of the UI: Events, Applications, and Open Applications.  It appears that certain application events can populate the Events View.  For instance, the AccuWeather application puts the current weather conditions in the Events View. 

One of the most useful N900 widgets I use is the contact card, providing one-touch access to frequent contacts from the desktop.  It will be interesting to see if users will miss the N900-style widgets, and if Events View and/or the Swipe UI can make up the difference. 

Digg Technorati Delicious Google Bookmark slashdot

N9 Excitement in #nokiacnxn

It was like a group of friends watching Superbowl, or World Cup, or Olympic Gold Hockey. Last night, a bunch of Maemo veterans gathered on #nokiacnxn on freenode to watch Nokia Connection 2011 go down. When the N9 was announced, irc erupted with joy, URL's to Nokia's 'swipe' pages were revealed and shared, and the banter went on into the night. It was exciting, and also somewhat disappointing once the realization sunk in that MeeGo-Harmattan could be a game changing OS for end users.

It remains to be seen how 'disruptive' this device will be. I hope it is, and so do others. Let us pass this message back to Nokia executives: We Want Nokia to Keep Meego. That is all.

Digg Technorati Delicious Google Bookmark slashdot

Saturday, February 12, 2011

Confusions of a Maemo Enthusiast (Post 2/11)

I have been with Maemo since 2007, when I purchased the fabulous N800 Internet Tablet. It stayed with me through Chinook, Diablo and even through the 'Elephanta year'. The N810 started shipping in late 2007 with Chinook. If you recall, a rumoured OS named Elephanta and an associated device were dropped after the N810 came out, eating up about a year in the process. Rationale for this was not officially conveyed, but could be assumed to be due to a shift in strategy for Maemo, focussing on mobile phones rather than Internet Tablets. Fine with me at the time - let us regroup and Maemo will come back stronger and more resiliant at the start of the 'new' smartphone era.

Nearly 2 years later, Maemo 5 and the N900 entered my gadget bag, I finally had the mobile computer I always wanted. An evolution of the tablet I loved, now with 3G data, cellular phone, hardware keyboard and an OS that rocked. Things were looking good as Maemo was entering Prime Time.

That was late 2009, and the promise of Maemo 6 / MeeGo Harmattan has not yet materialized, in spite of official roadmaps presented at Maemo Summit in Amsterdam. In addition, no other devices running Maemo 5 ever surfaced from Nokia, not even the RX-71 mentioned in the source code. Maemo had momentum at that time, and a second product offering would have done the platform wonders. It would have established Maemo as a real OS, attracted more users and developers. And most of all, prevented the product from going stale.

February seems like a gear shifting time for Maemo/MeeGo. Last year, we were dropped with the news of the Intel partnership which created MeeGo. Understandably, this caused some shifting around of plans, and delays. But MeeGo Harmattan was supposed to be an instance of MeeGo, and not true MeeGo, an evolution of Maemo 5. From my point of view, an evolutionary jump like that was well within Nokia's capability to execute and deliver by Nokia World. Seems like that OS and device have also been dropped, ala Elephanta.

This February 11, a day that will live in infamy, we learned that MeeGo would be relegated to a research project, and not the OS of choice for Nokia's high end devices. A sad day, for sure. Yes, one MeeGo device will be released this year by Nokia, and will hopefully blow us away as the previous Maemo devices did. And again, we are waiting.

But, what happened? Where did the corporate vision for Open Source disappear? Why has Maemo/MeeGo floundered within Nokia's walls? Why has the one-two punch of successive product launches not happened in this segment, like competitors have been able to pull off? Why the sudden alienation of users and developers with one fell swoop? Is this a game winning decision or suicide?

Where do Maemo enthusiasts go from here? I still like the N900, so one obvious spot to contribute is the Community SSU. That should realistically give longer life to this platform. What about the MeeGo project? Will Nokia be contributing as much 'post 2/11' as they have? Will the Handset UX development slow down now that Nokia's focus has shifted? And lastly, is it time to shift gears ourselves, and move to competing platforms such as the Big 2, or Mr. Jaaksi's Handheld Project?

Digg Technorati Delicious Google Bookmark slashdot

Sunday, December 5, 2010

Wanted: Task-Based Profiles

On the recent trip to Dublin for the MeeGo Conference, I noticed that I had to spend time to reorganize the desktops and other settings of the N900 to be friendly for carrier roaming. In my carrier's home zone, I have unlimited data, but while roaming, the data costs rack up quickly.

My roaming setup is:

1. Turn off all widgets that update themselves (OMWeather, Twitter, Facebook, RSS)
2. Set Mail for Exchange to Manual Updates
3. Turn off all IM and VoIP accounts
4. Use the 'mobile' HTML sites for GMail, Twitter, Facebook, etc.

There is no easy way to switch between my normal setup to this roaming setup and back again. So, after returning from my trip, I had to spend more time to put the desktop back to its normal state.

I recently stumbled upon 'Desktop Activity Manager' which allows you to setup different desktop profiles. This works fine for the desktop, but still requires manually setting MfE and IM/VoIP to off. I currently use 3 desktop profiles for 'normal', 'roaming' and 'car'. The car profile has only one desktop view with a few icons that are needed.

In a perfect world, while in my car, I would also like all IM to be turned off to reduce distraction, keep VoIP on so that I can receive calls, have the Phone and Maps applications started, and set the master volume to maximum. I wish I had an easy and reversible way to do this !!

Customizable profiles for the N900 would be a very useful feature for me. Not only in setting the look of the phone, but also it's functionality. Visual clues could be given to remind you what profile you are in: custom backgrounds, color schemes, or status bar icons. Switching between profiles could be accomplished via status bar icon.

No two users are alike, so any system would have to be flexible enough to allow deep customization.

Perhaps a talented Maemo developer will bring this to light someday!

Digg Technorati Delicious Google Bookmark slashdot

Wednesday, November 24, 2010

Thoughts on MeeGo Conference 2010

Since the Meego Conference in Dublin, many members of the community have already presented their thoughts on the venue, presentations, social events, etc. Those summaries echo what I felt while there. It was a fantastic experience, larger and better than the Maemo Summit last year.

As a conference wrap-up, I'll share a few highlights and takeaways that I had:

Seeing Carsten Munk on stage during Doug Fisher's keynote was, I believe, critical for MeeGo - it highlighted the openess that the project is trying to achieve.

IVI --> In-Vehicle Infotainment seems like a challenging aspect for MeeGo, due to the integration of other devices/sensors into the mix. As some of you know, I have a 'passing interest' in aviation, and immediately saw the potential for MeeGo as a base for IFE Systems (In-Flight Entertainment). Other than the usual entertainment use-cases, I see new angles: being able to bring your own content from your phone/portable media player to the seat-back displays; sharing that content with other seat-backs; Instant Messaging with other passengers.

Media Panel --> Monday at 5:15 pm was the media-only panel session chaired by Jim Zemlin of Linux Foundation. It was personally rewarding to be considered a member of the MeeGo Media, and I was elated to have finally met esteemed bloggers Mark Guim (The Nokia Blog), Vaibhav Sharma (The Handheld Blog), and Rafe Blanford (All About MeeGo). In terms of the panel session, it was a reiteration of the themes introduced in the morning keynotes.

Handset --> Not much to get excited about yet, since the Handset UX is not usable from an end-user perspective. Many handset veterans (read: folk) expressed that it is hard to get excited when you do not see the hardware/software in your hands. I agree - the N900's that were distributed at the Maemo Summit gave everyone an instant stake in Maemo - it is unfortunate that MeeGo based hardware from Nokia was not ready for Dublin.

IdeaPad Giveaway --> Thanks to Intel for the generous gift of the Lenovo IdeaPad. The MeeGo Netbook UX is not the ideal setup for this device due to its rotatable touchscreen. I would like to see something that handles both Netbook and Tablet UX on this device, which at this point in time, does not exist. If I were to chose one, I would go for the Tablet UX flavour for the Lenovo. But the Tablet UX seems to have disappeared from the MeeGo project! I expect we will see a usable solution for the IdeaPad soon, as there are people actively looking at improving the IdeaPad experience on

In closing, I extend my sincere thanks to the Linux Foundation, Nokia, Intel and other sponsors of the event. It was a fabulous time, and I look forward to MeeGo's maturity where I can use it as an everyday OS in my mobile life.

Digg Technorati Delicious Google Bookmark slashdot