A trip down memory lane

Saturday, 17 November 2012
I was digging through some old backups on Friday looking to see if I had any old versions of the Qt source code lying around after Eirik mentioned during his devdays talk that the release tar balls for lots of the early releases including Qt 1. Read More

An Unexpected Journey

Saturday, 19 May 2012
Recently, when building qt5, I'd started noticing some very strange errors from the configure script. The errors seemed to indicate that an awk script was being used as a filename - very strange. Read More

What's New in Qt 5 for SSL?

Saturday, 14 April 2012
With the availability of the Qt 5 alpha, I thought I'd try to summarise what's been done in the SSL stack. Most of the changes in Qt 5 for SSL are incremental improvements, or things that will form the basis of future changes. Read More

Using GnuTLS with QTcpSocket

Saturday, 14 January 2012
It's been quite a while since I last wrote a blog post, but it's not because I haven't been coding, in fact quite the opposite. The Qt opengov project is finally underway and I've been doing quite a lot of work on the various SSL classes. Read More

Qt SSL Update

Sunday, 6 November 2011
It's been a while since I blogged, so I thought I'd post an update on what I've been up to. Along with nearly a thousand other Qt developers, I headed over to Munich for the Qt Dev Days. Read More

SSL at the Qt Contributor Summit

Sunday, 3 July 2011
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. Read More

Improving SSL Security with Certificate Change Notification

Sunday, 22 May 2011
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. Read More

QPcap - A Qt-Style Wrapper Around libpcap

Saturday, 19 March 2011
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. Read More

Loading and Scaling Images in a Thread

Saturday, 22 January 2011
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. Read More

Getting the details of an SSL connection

Sunday, 9 January 2011
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. Read More

Rendering UI files to PDF

Monday, 3 January 2011
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. Read More

Rendering UI files to SVG

Monday, 3 January 2011
In response to a question on IRC yesterday, here's a quick example for the New Year - rendering designer's UI files to SVG using QSvgGenerator. As usual, the code is simple since Qt gives us everything we need. Read More

Implementing a Reusable Custom QNetworkReply

Saturday, 28 August 2010
In my last blog post, I showed how to use a proxy QNetworkAccessManager to restrict network accesses to sites included in a whitelist. One limitation the previous version had is that it stopped the disallowed requests by rewriting the request itself to be to an invalid url. Read More

A White-listing QNetworkAccessManager

Saturday, 5 June 2010
My last blog post showed how a proxy class can be used to monitor the requests being made by a QNetworkAccessManager, and illustrated it using an example that displayed those requests graphically. Read More

QNetworkAccessManager Proxy Classes

Saturday, 1 May 2010
This blog post will demonstrate how you can tap into QNetworkAccessManager (QNAM), the class is used by QtWebkit for all its networking. QNAM is also the recommended API for high-level networking protocols such as HTTP in Qt. Read More

Tokamak4 - A New Hope

Wednesday, 24 February 2010
Today I'm leaving Tokamak 4, so I thought I'd write a post about what I've been up to while I've been here. The first day or so I spent getting my machine sorted out as trunk was causing some issues with my graphics driver leading to a hang in the DRI layer of the kernel. Read More

A Simple Threading Example

Thursday, 14 January 2010
A topic that I've not mentioned in any of my blog posts is threading, not because I have anything against it, simply because a simple use-case hadn't come up. Today I was coding something easy to describe, where using threads was a good solution, so let's take a look at it. Read More

Cutting the Web Down to Size

Tuesday, 20 October 2009
A feature that has been floating around in a few places but hasn't been a significant feature in KDE is web slicing. This is the ability to take a piece of a web page (commonly a div) and render it as a standalone object. Read More

Adding custom objects to Qt Webkit

Sunday, 5 July 2009
One question I've seen come up several times on #qt and qt-interest is how to add custom (application specific) APIs to those available by default in QtWebKit. This is actually pretty easy (once you know how) as I'll show below. Read More

First Hack with ItemsViewsNG

Friday, 10 April 2009
People reading planet will have seen Thomas Zander's post about the new ItemViews framework the Trolls^H^H^HQt Software guys have been working on. It's very experimental right now, but I thought I'd have a quick look. Read More

Querying a Wiki Using Qt

Sunday, 11 January 2009
I spent a little time yesterday working on a class that provides a wrapper around the MediaWiki API. It makes quite a nice example of how the QNetworkAccessManager API can be combined with QXmlStreamReader to quickly access web services. Read More


Monday, 29 September 2008
Just watched a very clever advert for the new iphone. It's a manual, it shows you how to download (and buy) new apps. It's very short, just one feature User ends up having fun - playing game, and then call from a guy Interupting you in the middle of the game is presented as a feature! Read More

Akademy 2008

Thursday, 14 August 2008
As you've seen from all the stores on the dot and on planetkde this week has seen all the KDE developers gathering in Mechelen in Belgium. The organisation this year has been excellent - even the network (usually the achilles heel of KDE conferences) has worked from day one. Read More

New Plasma Widgets Design

Monday, 14 April 2008
This is the draft design for a new widget API for plasma, it will be appearing on techbase later, but here's what we're thinking. General Notes The intention of this API is to provide a very simple way for users to create plasma applets. Read More

Plasma Sprint Day One

Saturday, 12 April 2008
After a day's work at the Plasma sprint, there's already quite a lot of news to report. After a lot of trawling through log files, I was able to fix the problem that was preventing the Plasma binding plugin from loading. Read More

QtScript Web Browser

Monday, 24 March 2008
As some of you may have seen, Kent has released the QtScript binding generator on Troll Tech labs. I've been playing with the code for a bit, and as with KJSEmbed one of the first tests was to make sure you could use it to write a simple web browser. Read More

Qtscript Binding Generator

Monday, 10 March 2008
In 4.0 plasma had support for writing applets using Qt's built in javascript interpreter QtScript, but the facilities have been fairly limited. In KDE 3.x KJSEmbed gave us reasonably complete bindings to the Qt and KDE api's, allowing us to write applications such as a web browser in 10 lines of javascript. Read More

XML Doesn't Beep

Thursday, 17 January 2008
I learnt a something new about XML today, a part of the specification that deals one of the many edge cases that exist in every file format. To illustate this, lets take a look at a few examples. Read More

Programming Styles - Why Encapsulation is a Good Thing

Friday, 21 December 2007
I was reading a blog post on beautiful code about different styles of programming earlier this week. The author was comparing the 'ruby style' of direct access to member variables with the getter/setter pattern common in Java code. Read More


Sunday, 9 December 2007
I finally got my hands on an EEE PC on Friday after having waited for nearly a month for the one I ordered by mail order to arrive. I found out that 'Toys R Us' had some stock and checked that the one in manchester had some. Read More

QtScript is also good for tiny things

Sunday, 14 October 2007
Here's a quick example of why it's nice to have a script interpreter embedded in Qt: Plasma's KRunner has a calculator which used code borrowed from the KDE 3.x minicli. The old code started up the bc command line calculator then displayed the result - not exactly an efficient way to do things. Read More

Plasma Scripting

Sunday, 29 July 2007
I've made some decent progress in the scripting support for plasma today with the addition of the ability to access QPainter, QTimer and QFont from scripts. I've also improved a few other bits of the code. Read More

Back from Glasgow

Tuesday, 10 July 2007
Well, I'm back from Glasgow and have now almost recovered. The conference was great, and I'd like to thank all the organising team for their efforts. For me things were quite productive, with some nice steps forward in my QtScript code (my bindings are now dynamically loaded plugins for example) and lots of useful discussions about topics from improving the library facilities for scripts. Read More

Animating Widgets

Tuesday, 6 March 2007
Qt 4 includes a useful class called QTimeLine that can form the basis of animations, it's used in QGraphicsView but is also more generally applicable. I did a bit of hacking this weekend and wrote a class that illustrates how it can be used to create a fairly general mechanism for animating QWidgets. Read More

QtScript 105

Monday, 12 February 2007
I've done a bit more stuff with QtScript in order to keep up with the changes in the Qt snapshots. The API has changed a bit to make things more consistent, and I've updated the demo code I had to work with the new version. Read More

QtScript 104

Friday, 19 January 2007
So far, I've only accessed QObjects, slots and UI files, we need to do better to be able to do anything useful as the Qt 4 API has a lot of methods that aren't accessible that way. Read More

QtScript 102

Sunday, 7 January 2007
I've done a bit of tidying up of the QtScript code I was working on, so here's another version. Now, as well as being able to create individual widgets, you can load UI files from Designer. Read More

QtScript 103

Sunday, 7 January 2007
Now we can create widgets and load .ui files, we can take the time to fix a few other things. Initially, we could create widgets, but we couldn't specify their parents. Read More

QtScript 101

Saturday, 6 January 2007
As you might have read in Kent's blog post yesterday, the latest Qt 4.3 snapshots just gained a javascript interpreter. I had a bit of a play with it yesterday and it's pretty neat. Read More

Yet another CMake Blog

Sunday, 6 August 2006
Since everyone else is blogging on build systems today, I thought I'd join in. Overall CMake seems to be working out ok, but like anything else, it is not without its problems. Read More

I hate telemarketers

Tuesday, 1 August 2006
I just got a spam call from some telemarketers called Eurointerview who are based in Germany. They seem to think that because they're not in the UK the telephone preference service doesn't apply to them, and presumably that because they're calling the UK the German laws don't apply either. Read More

First steps towards Kasbar 4

Sunday, 21 May 2006
Over the last few days I've started working a rewrite of Kasbar for Qt 4. This is a rewrite rather than a straight port because lots of the code in kasbar was there to work around limitations in X11 that will not apply once we have a composition manager. Read More

KJSEmbed 4, small steps

Thursday, 30 March 2006
I finally got some time to spend on KDE last weekend, so on Sunday I started working on a new binding generator for KJSEmbed on Qt 4. In the KDE 3 version I used Doxygen to generate XML output then processed that with XSLT (using xsltproc) to produce the C++ code for the bindings. Read More


Thursday, 9 March 2006
Well, after a long break I've finally had a chance to work on KDE again. As a start, I've been trying to get KPassivePopup into a sane state in the KDE 4 libraries. Read More

Scripting, Malaga and KDE 4

Sunday, 4 September 2005
I'm now back from Malaga and have just about recovered, so I thought I'd blog a little about the discussions etc. I've been involved in over there. For me, obviously, the big questions were about scripting. Read More

Scripts with a KDE Feel

Sunday, 28 August 2005
At the party last night I got asked to put my presentation from yesterday online. So, for now I've put it online on my website Thanks to everyone who came, I hope you found it useful. Read More

Qt 4 Work

Wednesday, 18 May 2005
Some progress has been made on the Qt 4 front this week. I've implemented a simple QHttp based version of XMLHttpRequest that will ultimately be bound to KJSEmbed/Qt4. This will mean that the scripts will be able to access web based XML services such as news feeds, weather reports etc. Read More

KJSEmbed 4

Wednesday, 11 May 2005
Well, I've just got back from London visiting my brother. A note for anyone who plans to visit the Turner Whistler Monet exhibition at Tate Britain - make sure you book. Read More

The trouble with DConf

Friday, 15 April 2005
There's been lot of discussion on the XDG list about a proposal called 'DConf'. Unfortunately, it seems to me to have missed some rather important issues. The most obvious question in any sort of common configuration is system is 'What configuration can be shared? Read More

Trinary operator in python

Friday, 15 April 2005
Here's an example of an easy and compact way to simuate the trinary operator in python. It is not short circuit like the one in C, but it is pretty simple: Read More

Kasbar and Kicker

Sunday, 3 April 2005
I'm wondering about kicker and kasbar in KDE 4. If we can make kicker's abilities powerful enough to support the features kasbar needs, then maybe it should be less of a standalone app. Read More

Well, I drew a new avatar...

Friday, 1 April 2005
I decided I didn't like the photo I had here before, so I drew a new avatar. What do you think?

Preparing for Qt4

Saturday, 26 March 2005
I've started looking into porting KJSEmbed to Qt 4. To begin with, I've recreated most of the Q_CLASSINFO demo I posted recently using the Qt 4 equivalents. Listing the slots of an object is even easier than before, as is finding a marker interface: Read More

KListViewSearchLine Rocks!

Sunday, 13 March 2005
KListViewSearchLine is a great class - I just added search capability to to kdcop with 2 lines of code and a little bit of work in designer! First filter Second Filter

When you add stuff to KDE Libs...

Saturday, 12 March 2005
Reviewing some of the new code that has been added to kdelibs for 3.4, I've noticed a few old problems recurring. Some of the new classes are missing d pointers, this will be a pain in the future and should not have happenned. Read More

Avoiding marker interfaces

Sunday, 27 February 2005
I was talking Ian Geiser last night on IRC about ways to allow you to dynamically query KParts for their interfaces. This would for example allow you to avoid having to link special interface classes, or to use marker classes to identify your capabilities. Read More

Duplication in open source

Friday, 27 August 2004
One thing that people constantly seem to carp on about in Open Source circles is the frequency with which there are several apps that do the same thing. They then generally go on to say that the developers should work on whatever their favourite application is. Read More

Re mpyne's gstreamer blog

Tuesday, 24 August 2004
Since mpyne's blog on planetkde doesn't allow comments I'll post this here: You are incorrect that KDE requires glib thanks to arts - use the ARTS_1_1_BRANCH like most of the core team. Read More

Coming soon to a CVS repository near you

Friday, 20 August 2004
It's been a little while since I posted what I've been up to, so here's an update. I've been busy at work, so I've had less time for KDE than I would have liked, but even so I've made good progress on kasbar 3. Read More

Don't worry annma

Thursday, 19 August 2004
Don't worry annma, your not the only one missing the conference. I'm going to be stuck enjoying the thunderstorms here in Manchester.

I would hate you a lot clee

Monday, 2 August 2004
Clee, I'm dead set against you (or anyone else) splitting up kdelibs. This is a poor idea for a large number of reasons which have pointed out before.

KasBar 3NG

Saturday, 24 July 2004
I've been doing some work in the last few weeks to get Kasbar ready for the KDE 3.3 release. The code is now looking good, and doing this has given me some ideas for some major Kasbar enhancements for the next KDE release. Read More

First Thoughts on Qt4

Saturday, 10 July 2004
Last night I downloaded the Qt 4 preview and had a play with it, so far I'm very happy. The new painter code seems great and the GL painting demo suggests a lot fun ideas. Read More

KJSEmbed gains momentum

Monday, 21 June 2004
A few minutes ago, I was thinking that kjsembed is picking up users less quickly than I would have expected (given how easy it is to use). In the short time between then and now I've found out about two people/projects using it that I wasn't aware of, which has cheered me up. Read More

Being Earnest is Nice, but Being Useful is More Important

Friday, 21 May 2004
Last night I was able to commit to CVS the first cut of a kjsembed app I'm working on that will be useful to anyone - even if they don't care about scripting. Read More

KDE is Best Linux Desktop

Wednesday, 21 April 2004
Just a quick note to say KDE won best linux desktop for KDE 3.2 last night!

Ready for UK Expo

Monday, 19 April 2004
Well, I'm all set for the UK expo now. Hopefully I'll see some of you there. I'm only going to be around on the second day, but the booth will be manned on both. Read More

Nat, Miguel, FUD and other buzzwords

Monday, 29 March 2004
It's hard to see what's going on at Novell right now, and recent comments by Nat and Miguel aren't making things any clearer. They're claiming that they're not aware of any SuSE development using Qt other than YaST, ignoring all the SuSE sponsored KDE development (including new hires such as the developer of the KDE-OpenOffice GUI glue). Read More

UsageMonitor - A New Tool for Usability

Friday, 12 March 2004
One thing that recent dicussions about usability have highlighted is how much our decisions are currently based on personal opinions rather than hard facts. Aaron has recently been trying to address this by asking people how much they use the various buttons in the konqueror toolbar, but this is both labour intensive and inaccurate. Read More

Usability Teams - A Problem or a Solution

Sunday, 7 March 2004
Aaron has posted a blog entry about developes 'fearing' usability teams, I've replied to his post itself by a comment but I'd like to provide a fuller view of things here. Read More

ADSL from tomorrow, look out XPath and KJSEmbed here I come

Tuesday, 2 March 2004
My ISP confirmed last night that my ADSL should be working from tomorrow, so I'll be getting back to work on XPath and KJSEmbed. Hurray!

I hate moving too

Tuesday, 24 February 2004
I just moved house (like aseigo) and I second his thought on how much it sucks. My ISP was due to reconnect me to my ADSL today, but this morning I got a call saying it could be another week. Read More

Making a start on XPath

Wednesday, 28 January 2004
I've started taking another look at how to best add support for XPath to KHTML. I've got a bunch of code I'm busy reexamining that lets you define an AST for XPath. Read More

Autogeneration of JS bindings is a go!

Monday, 29 December 2003
There's good news to report today, I added the first autogenerated binding to the CVS last night! The binding provides access to QDir but the tool is generic and should work on anything we can access as a JSOpaqueProxy (this limitation will be lifted later). Read More

Quicky demo of image effects in JS

Sunday, 9 November 2003
Here's a nice piccy of a water colour effect that was created using Javascript. It was originally one of the n7y pics - enjoy!

KJSEmbed reorganisation complete - many fixes

Sunday, 2 November 2003
This didn't seem to work first time, so I'll try again: I did a major reorganisation of the code just before the freeze hit. This caused a lot of breakage (eg. Read More

KJSEmbed marches on

Sunday, 12 October 2003
I haven't written much about KJSEmbed for the last couple of weeks because I've been concentrating on squashing bugs in kasbar, but over the last couple of days I've had a chance to work on some kjsembed stuff that has been becoming more and more important. Read More

KJSEmbed support for event handling

Saturday, 6 September 2003
KJSEmbed can now handle events. At the moment only mouse events, but the rest will come soon. The example below shows how this can be used in practice. Note that I haven't committed this code yet, so it'll be a couple of days before you can use it. Read More

KJSEmbed now supports enums!

Thursday, 28 August 2003
I've just committed some basic support for enums to kjsembed. This means that enums published by QObjects using the Q_ENUM declaration can be used by scripts. At the moment, the constants are properties of the proxy object itself rather than the class, but the basics are there. Read More

Creation of KParts, opaque QVariant support, void * support...

Sunday, 17 August 2003
Lots of new features in KJSEmbed over the last few days. I got a new factory method implemented that lets you create read-only parts! This has let me knock together an example that uses KHTMLPart to provide a web browser - total code 22 lines (including blanks and comments). Read More

Things are coming along nicely

Saturday, 2 August 2003
I managed to get a first pure-KJSEmbed application working last night. It's only a basic text editor, but it creates its own KMainWindow and has acess to the action collection. Combined with the signal/JS function code I added recently I think we're almost at the point where KJSEmbed can be used to create real applications rather than just simple wizards etc. Read More

First Post!

Friday, 11 July 2003
Just testing the site while i hack KJSEmbed.