Planet maemo: category "feed:bc034fe7bc4cd5ba2bbd6c0cfff73d04"

Andrew Flegg

This is the first post in a new BlackBerry category in my blog. Having attended the "BlackBerry 10 Dev Jam" in London last week, BB10 looks very interesting - and a spiritual successor to MeeGo 1.2 Harmattan, i.e. the Nokia N9.

It's particularly interesting as BlackBerry have created their own Qt/QML-based environment, called Cascades.

However, I've got an existing app, Bedside which is almost pure QML. Could I get it running? More detailed instructions will come later, but here's how I got to where I am:

  1. Install the BlackBerry 10 Native SDK and developer environment.
  2. Create a new BlackBerry Cascades C++ project, although we're going to use it for "plain" Qt (as described in this Chinese blog post).
  3. Ensure you add <env var="QT_QPA_FONTDIR" value="/usr/lib/qt4/lib/fonts" /> to bar-descriptor.xml.
  4. Copy qmlapplicationviewer.{cpp,h} from the existing project into APP/src/.
  5. Put your QML resources in APP/assets/ (note you can't use asset://... URLs within the QML files, as you can with Cascades).
  6. Replace main.cpp with a simplified version from your other project, for example:

#include <QtGui/QApplication>
#include <QtDeclarative>
#include "qmlapplicationviewer.h"

int main(int argc, char **argv) {
QApplication app(argc, argv);
QmlApplicationViewer viewer;
return app.exec();

In particular, note the path to the main-QML-file.

And here's the initial version of Bedside (with no screensaver interaction yet) running on the BlackBerry 10 Dev Alpha:

[Icon] [Portrait] [Landscape] [Multitasking]

UPDATE: With a bit more work, I've got a single source tree working: now I can deploy to Symbian, Maemo, Harmattan or BlackBerry 10 (using Qt SDK for the first three, and BB10 Native SDK for the latter).

Instructions are in this forum post.

Categories: #jf
Andrew Flegg

Avoiding jet lag using continuous clock change

2012-02-26 18:38 UTC  by  Andrew Flegg

These days I'm often travelling long distances; whether it's to Asia or Detroit with work; or San Francisco for the MeeGo and JavaOne Conferences.

Ten hour flights are rarely fun; but when combined with a ten hour time difference? The jet lag can destroy you.

However, I trust a clock when I see it. So if I can convince myself that the time isn't changing in one big jump, jet lag is less of an issue. I used to do this with my watch: every two hours on a ten hour flight with an eight hour time difference: move my watch forward two hours. By speeding up, or slowing down time, I find it excellent for transitioning gradually to my destination timezone.

My N9's standby screen provides an opportunity to do this automatically: every time I glance at my phone on the flight, it could show me the right "transient" time.

I prototyped it with a spreadsheet (download), for a recent trip to Korea, to see how effective it would be before writing an app:


To try it out, first off, enter the local departure and arrival times; and the timezone difference:

If travelling eastwards, the time difference will be positive. If travelling westwards, it will be negative.

A shell script will then be shown in column E. Copy this column and paste it into a text editor. Copy the resulting script to your UNIX-based mobile device (N9, N950, N900, N8x0, jailbroken iPad).

On a Harmattan device, the script needs to be run in develsh:

~ $ develsh

On everything else it needs to be run as root:

Jaffas-iPad:~ mobile$ su -
Jaffas-Ipad:~ root# sh

If run with screen or nohup, you shouldn't even need to keep the terminal open.


Obviously the next step is an app. Is it something you'd be interested in? Is there a nice Qt API for changing the time? Are there Qt APIs for looking up timezones, and setting the device's timezone?

Thanks to eipi for allowing me to use MaeFlight's icon in this post. Also published on Nokia Developer blogs

Categories: #jf
Andrew Flegg

Colour operator logos on N9 lock screen

2011-11-02 09:02 UTC  by  Andrew Flegg

Nick Larsson (aka frals) has posted an article on adding a small (120x120px) logo to your N9 lock screen.

The N9 has a PenTile AMOLED screen, but is configured to avoid the colour fringing problems that affected the Android-based Nexus One. However, when the lock screen is displayed, certain bit patterns produce colours:

Photo of N9 lock screen with colour image

John Hutchison's Generating false colour images on the Nexus One using only grayscale pixels contains source code and examples.

The above photo was created by taking a 120x120px cut from the example rainbow image and setting it as the logo:

Greyscale section of rainbow

The same section, viewed on a Nexus One looks like:

Greyscale section of rainbow

As you can see, the colour mapping isn't the same (meaning new reference images need to be generated). However, you'll see it is possible to have colour logos on the lockscreen. Hopefully someone will take it forward, perhaps Nick can update his tool to do colour mapping; or someone can post the reference images so that the Java source code from Luke Hutchison can work.

Categories: #jf
Andrew Flegg

[MeeGo Conference logo]The first official day of the MeeGo Spring conference started with a two-hour keynote by Jim Zemlin, Executive Director of the Linux Foundation. While MeeGo is a Linux Foundation project, nobody from the Linux Foundation is formally involved on a day-to-day basis in the management and leadership of the project, which is being left to Intel (and, previously, Nokia). Because of this, Mr. Zemlin stands in as the Linux Foundation's public face for MeeGo.

Click to read 1592 more words
Categories: #jf
Andrew Flegg

Cross-platform Qt dev: deploying to Symbian

2011-03-06 21:26 UTC  by  Andrew Flegg

I've gone beyond the playing with QML stage and now want to port my first Maemo 5 application, Attitude, to Qt Quick; with the aim of having it run on Maemo, Symbian, MeeGo and Android.

Development environment

I'm using the Qt SDK 1.1 beta on Ubuntu 10.10. I'll deal with developing with this in another post (Eclipse keybindings, the combination of graphical and source editing (and the limitations therein), issues to bear in mind). Here I want to deal with deployment. Qt Creator offers a number of targets:

  • Desktop (not relevant to this app)
  • Maemo
  • Simulator
  • Remote compiler

I chose the last three. On Linux, there is no native support for deploying or compiling for Symbian. Compiling can be dealt with by the "remote compiler", but what about deploying?

I can, now, to the following; all from within Qt Creator:

  • Compile Qt applications and get a signed SIS file for installation
  • Install the SIS file on to a USB-connected N8
  • Start the application and get its console output back in the IDE.

Configuring the remote compiler

  1. Get a Forum Nokia account, if you do not have one.
  2. Install runonphone.
  3. Download this script: runonphone.wrap, and put it on your PATH (make sure it's executable).
  4. In Qt Creator, select Tools > Options... > Projects > Remote compiler and authenticate with your Forum Nokia details:

    Screenshot of Qt Creator options
  5. Open your project, and select Projects > Remote Compiler > Build. Ensure Signed is checked.

    Screenshot of Qt Creator options
  6. Switch to the Run tab and create a new deployment and run configuration.

    • Command: runonphone.wrap
    • Working directory: $BUILDDIR
    • Arguments: either install (for deploy) or run.

    Screenshot of Qt Creator options

Configuring the device

  1. Go to <QT_SDK>/Symbian/sis/Symbian^3.
  2. Send the SIS files under Qt/4.7.2, QtMobility/1.1.0 and TRK to your phone (e.g. via Bluetooth) and install via launching them.
  3. Go to the main launcher menu and launch RnD Tools > TRK.
  4. Under Options > Settings ensure USB is set as the connection method.
  5. Connect your Symbian phone via a USB cable.
  6. Select Options > Connect.

Then, when you deploy and run in Qt Creator the SIS file should be sent over the usbserial connection and launched on the device.

Unfortunately, if there's a problem you can sometimes end up in a state where you need to kill -9 the processes blocking the port. It also doesn't seem to like working on /dev/ttyUSB1, only /dev/ttyUSB0 - but these could all be interrelated problems. Improvements to the script very welcome!

Categories: #jf
Andrew Flegg

We go to MeeGo

2010-11-20 16:33 UTC  by  Andrew Flegg

Please forgive the cheesy title :-) As everyone wrapping up the conference has said, it was a great place; well organised and a fantastic atmosphere. Here are some of my bullet point thoughts:

Click to read 1112 more words
Categories: #jf
Andrew Flegg

Join MWKN hacking - right *now*

2010-11-14 22:10 UTC  by  Andrew Flegg

At the MeeGo Conference in Dublin? Want to come and see how MWKN is put together every Sunday evening?

Come along to the D4 Ballsbridge, following signs for "MeeGo Conference 2010 Early Bird Event" and we're in the bar next to the ballroom.

You might want to bring a beer from the Dubliner, as the bar here's not (yet?) open.

Categories: Maemo
Andrew Flegg

As Ryan and I - editors of MWKN - will be at the MeeGo Conference on Sunday evening, we'll try and find some space to get together to put together the issue. We'd love to have some help!

What's MWKN?

M* Weekly News is a weekly news digest from the MeeGo/Maemo worlds; inspired by LWN and Wine Weekly News.

Throughout the week, contributors ping over links and short titles to the @mwkn account on Twitter. These then get expanded with quotes, de-duplicated etc. on a Sunday evening for the issue to be published on Monday morning.

The idea is that the community is far too large for any one person to know everything going on, so we can crowdsource the interesting bits which are happening on IRC, the mailing lists, the fora, elsewhere on the Internet etc.

Want to get involved?

Getting involved as a contributor, or an editor (to help with putting the issue together), couldn't be easier; and we'd love to have more people involved.

Please feel free to get involved ahead of time or - if you're going to be around in Dublin on Sunday evening - let me know, and you can either come along and help edit the issue; give us moral support or just get a flavour of what it is we do.

Categories: #jf
Andrew Flegg

Here and Now: what's on near you now

2010-10-03 10:26 UTC  by  Andrew Flegg

Nokia's N8, a Symbian^3 device, comes with a service called Here and Now. This reads the cell tower information you're currently connected to and opens a web page detailing the current events (cinema listings and weather, for example) near you. I've done a quick port to Maemo 5 and the N900.

Once installed, you can launch it like any other application:

[Launching Here and Now]

Without using a GPS, it sends your approximate position to Nokia's servers and shows you what's currently going on:

[Here and Now screen]

Categories: #jf
Andrew Flegg

Council election time again

2010-09-16 12:19 UTC  by  Andrew Flegg

Voting has now opened for the next Maemo Community Council and, once again, I'm standing.

Last year I won, and the council chose me as their chair (hence the quietness of this blog compared with the Council blog, or even MWKN).

Please vote, the Council this next term will be very important in setting the tone of, and the way the Maemo community can work with (and, where desired, transition to) the MeeGo community.

You can read my declaration, my response to EIPI's set of questions covering numerous topics. Then, don't forget to vote. Contact Dave Neary if you have not received your voting token.

Categories: Maemo
Andrew Flegg

The election period has started for the next Maemo Community Council election and we have a number of excellent candidates, including - even if I do say so myself - me ;-)

Click to read 1124 more words
Categories: Maemo
Andrew Flegg

Catorise: auto-organise N900 applications

2010-01-12 22:52 UTC  by  Andrew Flegg

In a brief break from Hermes-related Maemo work, I was inspired by Manfred Weiss' MyMenu to create an auto-organising menu application for the N900:

[New application menu: top-level]

Catorise organises the application menu to have top-levels corresponding to the sections in Application Manager. Features:

  • Uses the section icons from the current theme, falling back to the default theme if none available.
  • Determines an application's section from the same information the packager used when uploading it to Extras.
  • Keeps track of application installs/uninstalls.
  • Entirely non-destructive: remove the package and everything goes back to how it was before.
  • "All" and "Other" sections, just as in the App Manager, to provide additional access routes.

So, with Catorise the section you find an application's icon is the same you used to install it!

It is currently in Extras-devel. This should, therefore, only be tested by people who are willing to suffer potential data loss, hair loss and the eating of babies.

It's largely feature complete, however there are some known problems/future developments:

  • Applications installed from Ovi will go into the "Other" section, due to the way Ovi on Maemo has been designed. I've some thoughts on how to work around this, though.
  • Changing the theme will only update the icons on the next application install/removal.
  • A quick GUI editor could be created to manipulate /opt/catorise/menu which is a simple text file cache to speed-up rebuilding. This would allow the user to shuffle the apps to best suit their use cases.
Categories: #jf