[Jaffa Software]

Wednesday 2 November 2011

Colour operator logos on N9 lock screen

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.

Saturday 28 May 2011

MeeGo Conference keynote: how it should've been done

[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.

It did not bode well when the advertised title of the talk, The Future of MeeGo Starts Now was changed to Monday Morning with MeeGo. This event was the opportunity for the MeeGo Project to showcase, and celebrate, last week's 1.2 release (including the N900 Developer Edition). Instead, we got Jim Zemlin talking about the advantages of Linux and open source without connecting the concepts to the MeeGo project and how MeeGo adds value compared with other Linux-based, open source mobile OSes (e.g. Android).

A number of guests joined Zemlin on stage, with Imad Sousou (MeeGo's Technical Steering Group's sole member) and long-time Maemo and MeeGo contributor Robin Burchell being the highlights. However, the main thrust of the speech was that mobile Linux, and open source, are here now - and will increase in future. The issue lies in that the supporting graphs and data that were shared during the keynote were all based on Android's adoption, with hardly a mention of MeeGo. Nokia's groundbreaking work with consumer mobile Linux devices, which led to the creation of MeeGo, was not mentioned at all.

Here lies the problem with MeeGo being a Linux Foundation project: they aren't interested, or invested, in the success of MeeGo - just Linux in general. Therefore, they'll support anything which furthers that goal, including webOS and Android in the mobile space. This was reflected in the keynote: since the Android is already so successful (and its market-share is growing) it's not in LF's interests to try and fragment the mobile Linux landscape.

Announcing new devices, or freebies for attendees, isn't necessary. However, I did expect the MeeGo Conference Keynote to address the challenges facing MeeGo now; particularly since February 11th there is not a mass-market consumer electronics vendor onboard as a strategic partner. Celebrating the work that has been done to date is necessary for the community psyche. Outlining the next steps, including a roadmap, is integral for the development ecosystem. None of these things were done, and it left a pall over the entire conference.

Personally, I attended the conference believing that Nokia's upcoming MeeGo-compatible Harmattan OS had to work to try and get itself integrated into the MeeGo ecosystem in order to benefit from the growth that MeeGo was going to enjoy. I came away from the conference believing that MeeGo needs Harmattan a lot more than Harmattan needs MeeGo.

MeeGo needs fresh blood; a sentiment shared by others. The "#jaffa4tsg" hashtag on Twitter started to be used after Imad responded to my question about expanding the TSG (Technical Steering Group) beyond a single member by saying that anyone was welcome to put themselves forward. A surprising number of people I very much respect said that my flippant "I'll do it" was an excellent idea, with me "getting MeeGo". My professional experience in the IT industry, as well as my wide experience and standing in the community are also strong reasons to be involved.

Assuming this isn't an entirely silly idea - although there is no documented process by which people can join the TSG - here's how I think we should have run the keynote (keeping the two hour running time, and abiding by the rumour that politics prevented Nokia talking about Harmattan & announcing the awaited developer programme):

  1. Welcome, including rerun of the "MeeGo on all your screens" video from Dublin (10 mins)
  2. What've we achieved in the last six months? (30 mins)

    • MeeGo 1.2 tablet demo
    • MeeGo 1.2 demo on N900 Developer Edition ("mass-market consumer hardware, capable of running MeeGo")
    • Overview of all the manufacturers who have released, or committed to releasing, MeeGo hardware (including Nokia)
    • Announcements about Linpus, Red Flag Software, 4tiitoo AG and China Standard Software Company (C2SC) updating to MeeGo 1.2 base
  3. Why MeeGo can succeed in a crowded market (35 mins)

    • 20 years of Linux video
    • Mobile OS ecosystem (Danielle Levitis, IDC)
    • Some numbers from Dawn's community metrics about growth and activity of community
    • The potential of IVI (Tsuguo Nobe, Chief Service Architect, Nissan)
    • Time to market (4tiitoo and Amino)
  4. Organisational and governance changes, to ensure we do succeed in the next stage of growth (10 mins)
  5. What next for MeeGo (20 mins)

    • Roadmap for MeeGo 1.3 and call to action for faster innovation (Arjan van der Ven)
    • MeeGo 1.4 and beyond
  6. Soundbites video from day 0 (2 mins)
  7. Audience Q&A (13 mins)

Notice here that there's no wishful thinking, everything above (apart from governance changes) was either announced during the conference, put out in a press release or already known. But it is MeeGo-focused, which - in my humble opinion - the opening keynote of a MeeGo conference should be.

Sunday 6 March 2011

Cross-platform Qt dev: deploying to Symbian

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!