AUG
28
2011

New 'Cool' Developments

"World must be crazy" say fellow hackers when realized that one day I left Samsung's Linux Mobile Lab to work on Smart Refrigerators.

But well, it's still in the same company, the same city. Yet this does not mean I am stopping to dig in Linux stuff for living: we're talking about Linux fridges.

JUL
3
2011

SSL at the Qt Contributor Summit

I haven't written any posts for a few weeks, so I figure it's time for an update. I, along with a bunch of other people who hack on Qt, attended the Qt Contributor Summit in Berlin. This was a very useful event, since it brought together a good mixture of both Nokia developers and external developers - as I would have hoped, KDE was one of the most common afiliations.

JUN
19
2011

Keep Calm and Hack On

I've just got back from the Qt Contributor's Summit, and I had a really good time.

I arrived on Wednesday evening and we had arranged to meet in a bar called 'Brauhaus Lemke' in Hackescher Markt which is quite near Alexanderplatz. It did look easier to find on the map than it actually was, but Hackescher Markt is a great place. There is a big square with loads of bars that have seats outside. The Lemke is slightly off the main square.

MAY
22
2011

Improving SSL Security with Certificate Change Notification

Improving the security of SSL is a hot topic these days, and trust in certifcate authorities is rightly at an all time low. One way of improving the situation that doesn't rely on believing that a 3rd party will actually do their job properly is to notify users when the certificate for a site changes. There are already extensions for some browsers that offer this facility, so I sat down today to write a proof of concept that looked at how this implemented in Qt.

APR
15
2011

Next Step in Certification

Even if you are certified Qt developer already, I definitely do not recommend to stop but continue the certification effort.

MAR
19
2011

QPcap - A Qt-Style Wrapper Around libpcap

I've been working on a new library for the last couple of weeks that provides a Qt style API for libpcap. For those who aren't familiar with it, libpcap is the library used for capturing raw packets used by tools like tcpdump and wireshark. The pcap library has been around for years, and is built in C rather than C++. The API is pretty simple, but it's not one that can be trivially integrated into a gui application. The aim of the library I've been working on is to make using packet capture in Qt programs a simple matter of using a QObject and connecting to its slots.

FEB
12
2011

Ingredients

The recipe is a draft only but shows the taste.

JAN
22
2011

Loading and Scaling Images in a Thread

In a previous blog post, I showed a simple example of using threads to perform complex calculations (SHA hashes) in a worker thread. I used them there because generating the hash of a DVD ISO can take a while, and GUIs that block make everyone cry. In this post, I'll use the same technique to load and scale an image whilst still letting my GUI startup instantly.

JAN
9
2011

Getting the details of an SSL connection

SSL is a pretty complex topic, and whilst Qt makes the APIs pretty easy to use, there's a lot going on underneath and it can be hard to debug. In order to make life a bit easier, I've written a simple tool that will connect to an SSL service then dump every piece of information Qt makes available concerning it. Of course the aim here is both that the tool be useful in itself, and also that it provide a good illustration of how to use the APIs concerned.

JAN
3
2011

Rendering UI files to PDF

As a followup to my previous blog post about rendering widgets to SVG, lets take a look at rendering them to PDF. I won't go into as much detail as the previous blog post since the code is mostly the same. This time, instead of a renderToSvg() method, we have a renderToPdf() method. All the rest of the code is basically the same as the previous example.

The renderToPdf() method makes use of the ability of QPrinter to generate PDF files (incidentally, it can also generate postscript). The important part of the code is as follows:

Pages