Building and Deploying

I'm doing some research for a book chapter on building and deploying Qt applications and I'm wondering if you have an opinion. If so, mail me. I'm e8johan and I use gmail.

The most obvious thing to cover will be QMake and its abilites. This means platform optionals, building a complete project (subdirs, libs, plugins and apps) and the INSTALLS variable. A complement to QMake is QConf. Some platform specifics for Mac and Windows will also be touched (universal binaries, Windows app icons).

Something else that I consider covering is CMake. Is this necessary? Will CMake be so common that it is a good thing to cover in a Qt book?


There is Hope

It is a great feeling to realize that there are only three more chapters and appendixes to complete before the first round of my Qt book project has been completed. Then there is reviewing ad infinitum left to do and lots of details (index, toc, foreword, etc) but I choose to ignore them for the moment and just feel good for a while.

Winter, attempt 5?

Again winter has tried to establish itself here. This is what it looks like from my office window. Lovely - I actually took the chance of playing around with the car (I know - I'm immature). Sadly they are speaking of rain in the evening, but I'm still hoping for the snow to stay for a few days.


Swedish iPhone un-boxed

Following the hype around the iPhone I was surprised to find out that the Swedish paper NyTeknik sent iPhones to all their subscribers. I un-boxed mine and took some photos of the process.

This is what I found in the mail.


The iPhone.

Unwrapping? Uncutting? Don't know - just getting it out of there.

I had to add an extra layer of paper to ensure that the structural integrity could be maintained.

Cut out to be a winner?

And the folding.

Front and back.

Compared to the Topcom DECT phone that I use indoors. Apparently the DECT has better coverage as I can use it up to 50 meters from home. I just was not able to make any calls from the iPhone - but it looks neat.

Also, do not place your iPhone in your pocket. It will not survive it.

Update. Digg it here!

Oslo, snow and schedules

I was invited ny Trolltech to come to Oslo and have dinner with the Qt Quarterly contributors from 2006. Yes, I've contributed.

The goal was to be in Oslo by 6pm last Thursday so I left Gothenburg just after 1pm. It usually takes 3-4 hours to drive between Oslo and Gothenburg, but there has recently been a landslide, so you have to go around a part of the E6 road that was swept away. That was why I added an hour to my travel plans. Then came the snow.

Apparently most lorrys do not use proper tires adapted for snow. Nor do they keep snow chains. The consequence was that I spent six and a haft hours to travel 400km. When approaching Oslo there where queues in both directions moving at about 10-20kph.

I made it anyway - the dinner did not start before 7pm and I had to be efficient when checking in to the hotel. After getting some food and a beer I could relax and be social again. I got the opportunity to sit down and talk to David Boddie and Jasmin Blanchette (hi guys!).
I also ran into a whole bunch of trolls (I only remember half of the names, so I won't mention any). After a nice evening at Akers Brygge I left for the hotel.

The next morning I spent in more or less informal meetings at Trolltech. Very giving. The trolls are really a nice bunch of people. Very easy to work with.


Windows, mingw, Qt and MySQL

Building the QMYSQL database driver plug-in using the mingw environment shipped with Qt is not a nice process. It seems easy when you look at the documentation, but it is not. I got it working and have summarized it at the QtCentre wiki. I also added a task to the task tracker over at Trolltech.


One year - and a contest

As some of you might know I'm one of the admins over at QtCentre.org. The site has being going for a year now and I must say that I'm thrilled by the outcome. The major point for starting the site was to provide the community with a free forum - but we also have a nice wiki and a FAQ.

As we enjoy Qt programming and want you to try your Qt 4 skills we have decided to start the first QtCentre Programming Contest. With great support from the Qt companies out there - Trolltech, basysKom, froglogic, Integrated Computer Solutions and Klarälvdalens Datakonsult - we can offer prizes such as Greenphones, a MacBook and an iPod. The competition entries must enter in one of the following categories: custom widget, development tool, helper library, mobile application and desktop application. The categories have been picked so that pretty much any piece of Qt software can join so register your project today and start coding!


The Efficient Month Starts Now

Now Christmas is over and it is time to get seriously efficient. Right now I've got 30 days, seven chapters and three articles to write before I get back to writing in my spare time. Before my head falls of from all this writing (I have prepared 9 examples and written down all the notes for a chapter of multi-threading today) I just wanted to show a small update to my Acer fix software.

I found a gap in the calendar last week and added a small loop that looks for the window every five seconds. This means that it works regardless of the starting order of the applications. The new source looks like this.

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpCmdLine, int nCmdShow)
HWND acerWin = NULL;

while( (acerWin=FindWindow( NULL, "ACER_GraviSense" )) == NULL )
Sleep( 5000 );

if( !acerWin )
return -1;

SetWindowLong( acerWin, GWL_EXSTYLE, GetWindowLong( acerWin, GWL_EXSTYLE ) | WS_EX_TOOLWINDOW );

return 0;
Using this you can alt-tab freely without having to run into an invisible window now and then. I wonder if it would be fun calling their help-desk and trying to give it to them as a contribution. :-)

Another note is that my employer, Bitsim, has announced Badger. This is a platform that I'm really looking forward to playing with. So if you're ever in need of an Arm system capable of hardware accelerated graphics you know where to look :-)


A Rainy Day

Happy new year to everyone! On this rainy day I would like to remind all of you that rain can be a beautiful thing.