Archives: Software (Page 4)
Hack on the Mac(book)
November 16, 2009 at 15:53 by Mike McQuaid
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 so I’ve been flying to various places (Germany, Sweden, Denmark so far and Iceland next week) in the course of my work. 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 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!
MacBook KDE Development
July 20, 2009 at 20:52 by Mike McQuaid
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