13 October 2011

Why I want to be at Nokia World 2011

I've been a hard core Nokia fan for as long as I can remember, well, since ~2000, when I bought the Nokia 7650. I'm a hacker, I like to code things and have a passion for mobile devices. I want to attend Nokia World to have a chance to witness the beginning of Nokia's next steps. I want to see what amazing innovation and design they've got planned for their next devices and I want to meet the people that make it happen. If I can attend I'll be taking lots of photos on my N8, doing lots of tweeting, facebooking and blogging :)

6 October 2011

QML/HTML5 Application State Transfer

So over the past month I've been working on several modules to provide QtQuick/QML and HTML5 applications with the ability to transfer seamlessly from one device to another. The approach I've taken is to use HTML5's local storage facility, which QtQuick also provides, and simply copy the data-store for any given application from one device to another.

This video demonstrates using this technology to transfer the state of a video playing application from one device to another. My TV, powered by my media PC is running a QML application which plays a video from the internet (points if you recognize the content). When the video is paused, the application displays a 2D bar code, or, QR code, which when detected by the software running on another device causes the device to connect to the master (TV) device and clone the applications data-store which contains the applications state.

The QR codes are used to notify other devices of an applications' synchronization availability. In this case the QR code reads: "sync+ssh://tswindell@" this tells other devices that they can synchronize with the application by using SSH and connecting to on my home Wi-Fi network using the username "tswindell". This setup is just a prototype of the intended framework. I'd like to implement the system using both QR codes and NFC (Near Field Communication) when available. I'll also be working on adding network connection settings, so a device from outside of the Wi-Fi network can setup direct ad-hoc connections for synchronization.

The idea for this project was inspired from some ideas I've been throwing around the back of my mind for the past several years and discussions I've had with, the unfortunately now departed, Gary Birkett (AKA. lcuk). And, Carsten Munk (AKA Stskeeps). This project was also sponsored by Imogen Software (Carsten Munk) who has been extremely helpful with this project and others, with which we are planning on developing a new context aware and activity oriented Grande computing platform built upon the newly reestablished Mer Project.

Below I've listed the projects that I've developed for this technology demonstration.

QML Launcher

HTML5 Launcher

Declarative Barcode Reader (using the open source zbar)

QREncoder Declarative Plugin (using the open source qrencode)

Grande Sync Declarative Plugin (currently not pushed)