Geek Speak

Major Vista Overlapped I/O change

I’m still reading the Richter book, highly recommended even if you’ve read one of the earlier versions. In fact it’s possibly MORE highly recommended IF you’ve read one of the earlier versions… It seems that lots of things have changed a little, and some things have changed a lot. Unfortunately the book doesn’t detail the actual changes. Note to publishers; I’d PAY for a slim book that DOES detail the changes between the APIs that are being discussed…

Process management using Jobs on Windows

One of the problems I currently have with CruiseControl.Net is that some of my tests spawn multiple processes; such as server tests which run the development environment, which runs a batch file to start a server (or two) and then run a test harness which generates network traffic and then run a program to ask the server to shutdown cleanly. When these tests timeout in CC.Net they’re forcibly killed. Unfortunately due to how Windows processes work, killing the parent of a tree of processes doesn’t kill the children.

Living with continuous integration

Well, it’s about a month since I started running Cruise Control .Net and things have settled down somewhat now and I can almost go a day or two without tweaking my configuration or being tempted to fix issues in Cruise Control itself. For those of you that haven’t been following along: First I realised that the latest (1.3) release of Cruise Control .Net wouldn’t work for me without some hacking.

Coding the markets

Barry (who seems to have stopped blogging) recommended this blog to me; Coding The Markets. It’s pretty good if you’re into investment banking development stuff.

DNSBL - again...

If Richard Wolff is reading this then I can’t reply to your emails as your ISP is bouncing my emails with this: `Hi. This is the qmail-send program at ns.mgf4.net. I’m afraid I wasn’t able to deliver your message to the following addresses. This is a permanent error; I’ve given up. Sorry it didn’t work out. Connected to 207.115.36.23 but sender was rejected. Remote host said: 553 5.3.0 nlpi100,DNSBL:To request removal of, 69.

CruiseControl.Net patches

Hacking CruiseControl.Net to work better for my specific circumstances (lots of projects that depend on lots of projects) has resulted in the following patches to revision 3607 of ccnet which I’m just about to submit to the developers. These patches are ‘supporting patches’ to the main ProjectTrigger and integrator changes, I thought I’d start with the simple ones… None of these patches should change existing functionality, all require new, optional, properties to be specified to activate the new code.

How important is VC6 to you now?

I’m working on the next releases of The Server Framework, and I now have continuous integration (of a sort) so my build and test problems are being minimised… BUT… Keeping Visual Studio 6 support in the framework is becoming a bit of a mission. It’s mostly simple template stuff that fails but I find that I keep having to work around VC6 issues. I’m proposing to drop VC6 support from version 5.

Thread.Sleep(100); // sleep for a short while, to avoid hammering CPU

I am intending to check out some of the other build servers that people have been suggesting, but today I was too busy with real work so I just left a cut down version of my latest CruiseControl.Net configuration running on one of my boxes and fixed a few issues whilst doing proper work most of the time… This evening I decided to go and look at why CruiseControl.Net scales so poorly and the first issue that I came across is the title of this blog posting…

More Cruise Control .Net woes

I’ve almost got something that works out of CruiseControl.Net. Once I’d hacked in some fixes for the project triggers and other stuff that didn’t work the way I wanted it to I concentrated on generating the config files that I required and testing the system. The good news is that I now have an integration system that works, it can build, test and deploy libraries in such a way that dependent libraries and applications are rebuilt as new versions of deployed artifacts become available.

Fighting with CruiseControl.Net...

I’ve been trying to get my code to build with CruiseControl.Net this week. It’s taken longer than I’d hoped, but I’m almost there. It became easier when I switched from assuming various parts of CruiseControl.Net would “work as I expected them to” to assuming that I’d have to delve into the source and change things… On the whole I’m a bit disappointed in CruiseControl.Net. I’m sure it works very nicely for simple situations, such as where you pull everything out of your repository and build it with a single project, but, when you’re trying to do more complex things it seems to be a bit fragile.