mike mcquaid dot com

the internet is leaking

License to be Qt

Like my esteemed colleague at KDAB I’m also now a Nokia Certified Qt Developer!

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 »

Hack on the Mac(book)

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 all merged upstream and part of QtScriptGenerator.

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 »