If you’ve ever stayed at Center Parcs, you’ll probably have noticed that the heating is configured to drop down to 14 °C every few hours.
One part of doing C++ the right way is using automatic variables for everything you possibly can. However at some point in your C++ endeavours, you’re likely to be using a C API of some sort, with explicit method calls to manage lifecycles, which can make this more difficult. My work at Canonical has involved talking to lots of these sorts of APIs, many of them based on GNOME’s Glib. To make life easier, I have created a set of easy to use wrappers to manage the lifecycle Glib and GObject objects.
Having tried to fall in love with Meld and KDiff3, I’ve eventually gone back to my favourite merge tool, TortoiseMerge. It’s actually very straightforward to get running on Linux.
Over the last few years I have become a much bigger fan of dynamic languages like Ruby and Python. Today I was thinking about one of my old gripes about dynamic languages, which was a lack of method overloading.
I guess this is really just a link to someone’s Github project. It’s a spec-style testing framework for BASH that has helped me write tested shell scripts!
Here’s a script I came up with to extract any project’s CVS repository from Sourceforge and convert it into a Git repository. To run it you’ll need Git and Subversion installed on your machine.