After all the stuff that happened in my professional and personal life last month we can extract some technical bits
First of all, during Camp KDE it was awesome to talk to people like Jos, Celeste, Alexandra, Till, Leo and Jeff (and many others). It’s good to share your thoughts with many people that you just don’t have this big bandwith for chat that you have when you’re physically together
Our awesome dragons
I spent last month studying and working with QML, trying to get the most of it and I think that I (and the team that I work with of course) reached a very good level of knowledge regarding the new Qt’s declarative language. We have some expertise with declarative languages for some time now (started with Edje three years ago) and went through QEdje and now we have a proper Qt solution for this that will probably be released with Qt 4.7.
QML is awesome. Big tip: just try to avoid “leaking” code from your c++ controllers and models and you’ll get any interface that your designers want for free
. We achieved very good results working with this architecture for software and I really recommend it for everybody (I’m not talking about this right now as it can be a whole paper – hmm, maybe a paper for next Akademy ?
).
Alexis showing QML mobile shell on N900
Ok, so after studying QML and talking a lot with Alexis and others (like Helio) we had great ideas to try out on mobile devices (read N900 here). Let’s see what we can do during tokamak 4. Good to read Aaron’s post about it and to know that he’s excited with this possibility too. I talked about this during my talk at Latinoware conference and right now we can expand and make “my dreams” come true. We have really good use cases for this and we should really focus on this at first. We need help from designers (Nuno and oxygen team?) and usability experts (Celeste, here I am again – I know you should hate me every time I say your name under this circumstances hehe
). The design of this kind of product should be the first step after studying technologies.
Talking about KDE: for KDE 4.5 I’m really going to change the pastebin applet. Feature-wise it’s really in good shape but it’s not very healthy code-wise and we can really improve it and it’s data engines to something more user friendly and also that can be easily improved with the use of plugins (anybody thinking about service providers and GHNS ?). First of all, it’s not user friendly to call it “pastebin”. My mom have no clue what pastebin is. For sure she knows what “Share it” means and we can make use of KIPI plugins to allow it to export things to Flickr and other services too. So, for 4.5 expect some big improvements on the developer side of pastebin. From a user’s perspective it should just have a better config dialog, interface and will have support for much more services
(at least I hope so).
Just upgraded to trunk (KDE SC 4.5) and it already looks awesome: from the KDE theme to the new notification messages that Marco is working on. Amarok (as always) had (good) surprises for me and this “Photo” widget is awesome. It ties together the awesome experience of one of your senses (audition) to another sense (vision) and it’s awesome. Great pictures from my favorite artists and songs. Amarok++.
Amarok and new Photo Widget
Right now, I want to work on so many cool stuff and I just don’t have the time. Probably work is going to consume most of my time for the next 2 months but I’ll make it work and will help KDE to get even better and to start working on Maemo for example. Konquer the world!
Ah, as a simple tip: if you own an N900 just install the “Angry birds” game, it’s awesome hehe

Well, it has been a long time since my last post and a lot of stuff happened during that, specially regarding work and that explains a little bit why I was so “offline” last days (month).
It all started when I received my N900 from Maemo’s developer program that is just awesome as it gives the opportunity for developer to have access to the platform and keep developing for it. Comparing to other options: for some fruit company’s platform you have to pay to develop for a closed platform and for other you receive devices to develop to an open platform. Big kudos to Nokia for everything it’s doing with Maemo.
Regarding Maemo, I used my N900 in the last month on all business trips that I did and the vision of having contacts instead of accounts really made a difference. It was so easy to use Skype or my SIP provider (Inphonex) while I was out of the country that my mobile phone just worked as it should always work: as a personal extension of my home phone. Perfect.
So, the trips began with Camp KDE and I went to Los Angeles one week before the conference itself as I had some days to take as vacations. It was really great, from watching a live record of one of my favourite TV shows (Two and a Half men) to watching all the amazing talks during Camp KDE it was all great. I would like to also send some kudos to Camp KDE organizers. I know how hard it is to actually make an event like that happen.
The gate where the show was recorded
After Camp KDE I just had three days at home and then went to Oslo/Tampere for Qt work and it was really great to actually see snow for the second time. First time I’ve ever seen it snowing actually (the first time I needed to go up to a mountain last Tokamak hehe – thanks Marius for the chance!! it was awesome).
During this trips I had some ideas regarding mobile platforms and discussed a little bit of it during my talk at Camp KDE and also with Alexis Menard (former Troll). I think that for Tokamak 4 we’re going to have some nice ideas to work on for mobile platforms. It’s important to say that this is all at “pre-pre-pre-pre beginning stage” and that we have a lot of work to be done on the Netbook effort for example that Marco is taking care in an awesome way
Back to reality I have some work to be done and we are already setting things up for Bossa Conference. So I have Carnival, Tokamak 4 and Bossa Conference in a row. And still job to be done…well, I think I can handle that
So, this is all that happened last month (trust me, a lot happened) and next post will be a little more technical or at least more KDE related and for sure I’ll have some more Maemo related posts in the (very) near future (specially after Tokamak 4).

The PyMaemo team has prepared a short tutorial with an actual example on how to access APIs for which there are no Python bindings yet. libosso-abook was used as an example, but in practice, you can access any C libraries using the same approach. This technique can be used while we do not finish implementing the full Maemo API.
Enjoy.
Update (2010-01-27): New version of Qt installer (v2).
Qt 4.6.1 was released last Tuesday, so I took some time to update my Linux support patches for Qt (which are now merged in qt-s60 tree and hopefully will be in main Qt tree at some point) and GnuPoc (which, thanks to Martin, are now integrated into the latest release).
I had a couple of previous posts detailing instructions on how to install the SDK on Linux, but after some time, it became too boring to run those commands manually, and some people asked for a script. So, from now on, I will provide two installers to make the process much more automated and simple: one installer for GnuPoc + Open C/C++ plugin, and another for the Qt for Symbian SDK.
Note that currently the GnuPoc installer handles only the S60 5.0 SDK. If someone is interested on a 3.1 SDK installer let me know so I can add support for it too.
Preparation
Download all required files to a single directory (e.g. “~/downloads”):
- S60_5th_Edition_SDK_v1_0_en.zip (623MB): S60 5th Edition SDK for Symbian OS (be sure to click on the “Download all-in-one SDKs” button on that page)
- s60_open_c_cpp_plug_in_v1_6_en.zip (35MB): Open C/C++ Plug-in
- qt-symbian-opensource-4.6.1.exe (209MB): Qt for Open Source C++ development on Symbian
- gnu-csl-arm-2005Q1C-arm-none-symbianelf-i686-pc-linux-gnu.tar.bz2 (11MB): CodeSourcery’s ARM toolchain for Symbian
- gnupoc-package-1.15.tar.gz (6.2MB): tools and patches to run Symbian SDK on Linux
- gnupoc_1.15_S60_5.0_installer_v1.sh: Unofficial GnuPoc installer (currently supports only 5.0 SDK)
- qt_for_symbian_4.6.1_linux_installer_v2.sh: Unofficial Qt 4.6.1 for Symbian installer for Linux
For building the native tools from gnupoc, you will need:
- the GCC C/C++ compilers
- development files for zlib
- development files for openssl
On Ubuntu, you can install these using the following command:
sudo apt-get install build-essential zlib1g-dev libssl-dev
Installation
First, install GnuPoc + S60 5.0 SDK + the Open C/C++ plugin:
./gnupoc_1.15_S60_5.0_installer_v1.sh \
<download-dir> \
<gnupoc-dir>
Replace <download-dir> with the location of all files downloaded in previous section (e.g. “~/downloads”), and <gnupoc-dir> with the destination directory for GnuPoc and the SDK files (e.g. “~/gnupoc”). Note that both directories must have absolute paths.
If installation was successful, you should see an output like:
Installation has finished. Before using the GnuPoc SDK, run these commands on the console:
export PATH=<gnupoc-dir>/bin:$PATH
export EPOCROOT=<gnupoc-dir>/symbian-sdks/5.0/ # trailing "/" is required!
(These commands must be run again every time a new console is opened.)
Run the commands as instructed on the message. Next, install Qt for Symbian:
./qt_for_symbian_4.6.1_linux_installer_v2.sh \
<download-dir> \
<qt-s60-dir>
Replace <download-dir> with the location of all files downloaded in previous section (e.g. “~/downloads”), and <qt-s60-dir> with the destination directory for the Qt files (e.g. “~/gnupoc/qt-4.6.1″). Note that both directories must have absolute paths.
If installation was successful, you should see an output like:
Installation has finished. Before using the Qt for Symbian SDK, run this command on the console:
export PATH=<qt-s60-dir>/bin:$PATH
(This command must be run again every time a new console is opened.)
Before using Qt for Symbian, you should run the command as instructed on the message above.
Usage example
To test the installation, I will describe how to build the “colliding mice” example.
- cd into the example source:
- Open collidingmice.pro and replace these two lines:
- Now build the example and generate the SIS file
cd <qt-s60-dir>/examples/graphicsview/collidingmice/
TARGET.UID3 = 0xA000A643
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
with:
TARGET.UID3 = 0xE000A643
In other words: replace the UID3 “0xA000A643″ with “0xE000A643″ and remove (or comment out) the “include(…)” line. This will allow to sign the built SIS file using a self-signed certificate, otherwise you would need a R&D certificate.
qmake
make debug-gcce
make sis
A few notes:
- Only the “debug-gcce” (if you are using the GCCE toolchain AKA “CodeSourcery toolchain”) or “debug-armv5″ (if you are using RVCT) will work, because the 4.6.1 release only ships debug versions of the libraries
- Make sure you do similar changes as described above if you want to try compiling other Qt examples. Otherwise, you will receive errors like “Unable to install” while trying to install the SIS file on the phone.
A small post.
In the first season, the focus was S60 devices. After the holidays, the new season is about Maemo. =)
Qt Mobile Demos are in Maemo 5 extras-devel, so now it’s easier to check them in a N900 near you. First, you need to enable the extras-devel repository/catalogue and the demos should appear if you search for “qtmobile”.
The packages are:
hyperui -> qtmobiledemo-hyperui
mybudget -> qtmobiledemo-mybudget
shoplist -> qtmobiledemo-shoplist
weather -> qtmobiledemo-weather
Future? Well, soon QAbstractKineticScroller will replace our kinetic list implementation. (Read the comments).
And yes, we have a list of known issues to solve in our free time…
The code still in the same place, http://qt.gitorious.org/qt-labs/mobile-demos
That’s all for today.
PS: Thanks to Etrunko, who helped a lot with packaging stuff =)
Shiboken now has proper threading support putting QtCore in an “almost done” state.
Read the mailing list announcement for more details.
The support for Qt’s signal/slot system in the Shiboken fork of PySide has been completed! Happiness abound!
Read the mailing list announcement for more details.
Today on the very very very late gamaral show: Me, Icelandic ponies and KDE SC and X-MAS. (all in under 15 minutes)
Please send in your comments and ideas to: gamaral@amaral.com.mx.
New Features:
– Support for Qt 4.6 release;
– Support for QtMultimedia;
– Support for Animation Framework;
– Support for State Machine Framework;
– New test-cases including QtMaemo5.
We hope you enjoy this new release! Feel free to contribute with comments,
bug reports and suggestions.
So last week Nokia ASF hosted a Qt WebKit Code Camp in Wiesbaden, Germany. It was the first time most of the people working on – or using WebKit inside Nokia, got together and met face-to-face. It is obvious that we have a great bunch of clever people, but also that we still have a lot of work to do before out Qt port is up to the level of the Google and Apple ports, but don’tworry, we are definitely getting there!
Before the event, I had a look at adding tiling support to see if it would actually bring noticable performance improvements. I did a small presentation about it, which you can find below. [UPDATE] The implementation is an experiment to avoid doing unnecessary calls into WebCore and is only meant as input for other people working on adding tiling support to WebKit. I would like to thanks ProFusion, Antti Koivisto and Benjamin Poulain for fruitful discussions who helped to the current implementation.
Having working on NPAPI plugin support before, I can tell you it is not a very beautiful part of a browser. Some time ago, we were so lucky that Girish joined us and implemented support for windowless plugins. Now he has even gone one step further and written a huge blog post about it, something that is definately worth checking out. You can find it here:
http://blog.forwardbias.in/2009/12/flash-in-qgraphicsview.html
Also, join me in congratulating him in becoming an official WebKit committer!
At the office we are starting to get into Christmas mood! and friday I’m heading off to Europe to celebrate the Christmas holidays with my family and girlfriend.
Anselmo just took this nice picture from our office:










