The CVS to SVN code migration is going well. As recommended by a commenter I’ve switched from using a script to pull my tools libraries from their repository into The Server Framework examples build tree to using svn:externals. This works nicely and plays well with branches and tags (as long as you remember to update the svn:externals definition on your branch or in your tag so that it points to the correspondingly tagged version of your externals (but this would have been the same if I were using a script).
I’m in the process of moving my source code from a CVS repository to Subversion. The main reason for the move is so that I can move the repository onto one of my NAS devices so that it can be backed up automatically. I have a spare NAS due to the fact that I had a power supply fail and the fastest way to get up and running again was to buy a new one rather than waiting for the replacement PSU… Anyway, the development NAS has SVN running on it which means that I now have a RAIDed, UPS protected SVN server which gets backed up nightly to my ‘off site’ NAS via rsync…
The move to the new hosting server is complete and all the perl config has been done so I’ve turned comments back on!
I’ve just updated my installation of DevPartner Studio. I mainly use the C++ error detection part of this suite, that’s the bit that used to be called BoundsChecker. Anyway, version 9.0 is the first version to support VS2008 and x64 so I was quite excited to be able to run the tool on my dev box rather than on my old x86 dev box.
Unfortunately my first impressions aren’t good. Here’s some of the output from the build window whilst the build is being built for “Error detection”.
I’ve been compiling with /W4 for some time now. I didn’t realise that this wasn’t the best you could get. There are some warnings which are not enabled by default and therefore aren’t included in /W4. To enable these you need to specify /Wall. The list for Visual Studio 2008 is here. Obviously there are some warnings that I don’t find that useful, but these can either be disabled as and where I need to with #pragma warning or globally in my ‘Warnings.
I’ve been meaning to build STLPort for Visual Studio 2008 for some time now but as the STL support that ships with Visual Studio has been improved the urgency to be able to use an alternative has reduced. Unfortunately STLPort 5.1.5 doesn’t build for VS2008 out of the box so it wasn’t simply a case of downloading it and building it.
Anyway, I asked a question about it on StackOverflow and got an answer which linked to a blog posting from someone who had hacked the VC8 build to work with VC9.
I’m currently writing and testing a simple class that watches for system time changes. This is to allow an app to adjust some timers that it sets for absolute times in the future if the system time changes.
The code’s fairly simple. The system automatically broadcasts a WM_TIMECHANGE message to all top level windows whenever something adjusts the system time or the time zone so all you need to do is write code that creates a hidden window and deals with the message.
There’s an interesting article over on Dr. Dobb’s about why writing lock free code is so hard. Herb Sutter takes some code from an article that Dr. Dobb’s published a couple of months ago and pulls it apart and points out the problems.
I stumbled on Gustavo Duarte’s blog this week via this post about how lucky we are to be programmers.
The post that led me to his blog is good stuff and has had lots of linkage this week. The rest of the blog is also good stuff; I especially like the “Reality Driven Development” post which fits nicely with my “thin thread of functionality” way of designing software. I’ve always tended to design from the bottom up and my testing addiction has fuelled that somewhat; but I do still like to pop up to the surface on regular intervals and then drill down with a ‘spike’ of throw away code to make sure that the stuff that I’m building properly is actually what we need to build.
I found JP’s blog whilst googling for some information on RVA forwarders in PE files. There’s lots of good stuff there about reasonably low level Windows development, debugging, testing and API hooking. Recommended if you like the kind of stuff that I write about.
In addition to the blog postings JP has produced cfix a unit testing framework for C++. I haven’t had a chance to look at it too deeply yet, but the documentation looks good and the source is available from SourceForge under the GPL.