Friday 20th November, 2009 @ 19:36
Like my esteemed colleague at KDAB I’m also now a Nokia Certified Qt Developer!

Given that I just was an assistant on my first KDAB Qt training course in Berlin last week I’m happy I haven’t let down my fellow Qt experts at KDAB; I’m at the company meeting in Iceland so would never hear the end of it if I’d not passed…
There’s been some horse riding (which I boycotted in favour of cake), whale eating (tastes like moist beef and was a non-endangered species, absolving my guilt), soaking in the Blue Lagoon and much banter has been had. I’ve also been fighting with our time-tracking tool, Charm (which is in KDE SVN) to try and get Carbon and Cocoa events working nicely side-by-side (Carbon is the C-based API that is not supported for 64-bit applications, which are the default on 10.6). I was pleased to see that Qt Creator (my current C++ IDE of choice) also supports limited amounts of Objective C which has made things slightly less confusing for a certified Qt Developer
Posted in Software Development
2 Comments »
Monday 16th November, 2009 @ 15:53
It’s been a busy few months!
Outside of work my fiancee and I have been planning our wedding and bought a house for us to live in when we get married. It was worryingly easy to do the whole thing, it required minimal paperwork. It’s in Broughty Ferry (on the outskirts of Dundee) and the sea is 100m away and visible from my new study. It’s all very exciting and I’m counting down the days until we get married and I move in.
At work, I’ve been involved in some more fun Qt consultancy stuff. It’s all been enjoyable and varied, something that really suits my childlike attention-span. I work from home for KDAB so they’ve had me flying to various places (Germany, Sweden, Denmark so far and Iceland next week) in the course of my duties. I like seeing new places but am a rubbish tourist so it’s been nice to be able to expand my horizons without much personal effort.
One of the nice things about working with Qt and other open-source projects is that I can get to contribute to them at work when a customer needs a feature/bugfix. One of my projects has involved a lot of QtScript and I used QtScriptGenerator for the bindings (wanted to try SMOKE but I couldn’t find enough of a solid internet presence to trust it fully yet). I’ve made a few fixes to support code written in C++ rather than Qt (handle exceptions better, do some automatic C++ standard library type conversion, support C-style single “void” parameter and bugfixing). This stuff is all available from the KDAB QtScriptGenerator clone on Gitorious and should all make it upstream eventually, I’ve made the necessary merge requests and a few of them have already been accepted.
I can’t wait till KDE and more open-source projects move to Git (and Gitorious/GitHub). It’s so amazingly simple to get patches merged and retain your attribution and handle local work branches while tracking upstream, with merging normally being handled near-automagically. This requires so much time to do in Subversion that it really pains me to have to use it now.
Another interesting project I’ve been working on recently is Homebrew, a package manager for OSX that seeks to use system libraries, be fast and make contribution incredibly easy (things that MacPorts and Fink seem to fail at). It uses Git as the repository backing store so you just fork from mxcl’s repository, use “brew create $URL” to create a template package from the URL and archive name, modify it until it works and make a pull request on GitHub. mxcl then looks over your contribution and merges it if it looks good. So far I’ve tweaked Qt and started adding the necessary dependencies to get KDE in there too.
I really like this model. I trust mxcl as a benign dictator, he is a good guy and makes sensible decisions (such as buying me beer), and I feel this method of contribution really opens the project up to many more people than it would otherwise. It also has the Steve Jobs/Linus Torvalds-type figure that I think is essential for any piece of software to have a clear set of goals and maintain a certain quality level.
It’s been nice for me working mostly on my Macbook now. Everything just works that I need to and I can still run pretty much every open-source application I used on Linux. It’s nice to see the vibrant OSS ecosystem on OSX and the attention to detail in applications such as Adium, particularly in having an attractive and easily usable interface. Hopefully I’ll be able to apply this level of polish to some of the KDEPIM apps in the next while too, currently they work great but look a bit nasty on OSX.
Too much writing, back to the code!
Posted in My Life, Software Development
2 Comments »
Friday 24th July, 2009 @ 09:52
Seeing all the other posts recently about people working at KDAB I thought I’d announce that my “secret dream employer” I previously mentioned I was freelancing for was, in fact, KDAB (the Qt consultants) and they decided to take me on as a permanent employee.
It’s an awesome place to work as I get to work from home which means playing my current favourite pretentious but awesome progressive rock nice and loud while I work without having to worry about irritating anyone else. It’s been awesome hanging out with the guys at GCDS and on my various expeditions (in their head office in Sweden at the moment). They are all really cool people who can have a decent laugh while getting lots of cool work done. It’s also been great for me to now have a job with so many amazing software engineers who I can learn from.
My only problem is that they seem like they are hiring everyone now. I thought I was special? Now I just feel like just another notch on the bedpost organisational chart! For each awesome person who gets hired I feel like I deserve to be here even less!
It’s also nice because it’s got me doing way more KDE stuff that I was previously. I’ve been actually getting involved in the KDE Mac project now and hopefully will get to push KDE forward through some (unannounced) work stuff too.
In short, KDAB rocks!
Posted in My Life, Software Development
7 Comments »
Monday 20th July, 2009 @ 20:52
Recently while looking for a replacement for my trusty Dell laptop I ended up being sucked into buying a piece of white shiny plastic that apparently doubles as a computer.
I tried running Linux on it but due to some still unresolved issue it’s not really usable as a main operating system yet on this laptop so I’ve been forcing myself to use OSX for a while and trying to learn some lessons from it.
As my first main contribution to the KDE Mac project I’ve been working at getting the packages easily buildable and distributable without MacPorts/Fink by using CPack (a cross-platform packaging tool that comes with CMake). This is the type of project that will probably be mostly committed in a oner into KDE Libs (post-review) and hopefully then available to basically any KDE project with a little configuration. I’m planning on starting with getting some basic packages without dependencies first (e.g. without KDELibs or DBus bundled) and then work up to an application bundle that contains all library and executable dependencies. If you’re interested what the result might look like then take a look at the Mendeley Desktop OSX package, built entirely using CPack that I produces while working at Mendeley.
Another thing I’ve found while building KDE for OSX is the need to build universal packages for all the KDE dependencies. This omits Fink unfortunately so I’ve ended up using MacPorts. Due to a decision I disagree with I’ve contributed to Harald Fernengel’s project for adding dummy versions of MacPorts packages that are already available on OSX Leopard. You can find this on gitorious.
For anyone interested, the current minimal dependencies for various packages in trunk are listed below:
kdelibs: pcre++, shared-mime-info, jpeg, giflib, libpng, dbus
akonadi: shared-mime-info, boost
kdepimlibs: gpgme, libical
kdepim: none
Once I’ve got a bit further I’ll get all this stuff on TechBase. Anyone interested in helping out or lending an opinion feel free to leave a comment.
Posted in Software Development
5 Comments »