Back in the UK

Normal service is about to resume… I arrived back in the UK yesterday evening after lots of good skiing in France and Switzerland. Conditions in France could have been better (it’s still best to hire skis or use your rock skis - in Avoriaz at least!) but that only served to make us realise how good the conditions had been in Switzerland. I now have a couple of weeks to get some work done and let my legs rest before 3 weeks in Jackson Hole…

Update

I’m back in the UK briefly on 28th and 29th December and then I’m off to Davos for new year… I’m back in the UK in early Feb and then ski guiding for the Ski Club of Great Britain in Jackson Hole for 3 weeks from 17th Feb…

Meanwhile...

Meanwhile, I’ll continue doing slalom training in Tignes in the French alps… Beware, those poles are addictive!

Question from a reader

I’ve just had an question from a reader via email: “I’m developing my huge server (I dont have much experience with programming servers) and as far as I know your source is the best available out there.. I would like fit it to my needs and use more c++ standard template libary instead of those buffer/linked list classes you made by yourself, but I’m afraid it would end in loss of preformance speed.

Socket Server Code - async connect failure handling change

I’ve just made a small change to The Server Framework. The change is in how the AsyncConnect() function reports connection errors and the potential problem can occur if there’s a race condition between a call to Close() on a socket that has not yet successfully connected. If the call to Close() completes before connection is attempted by the IO thread pool (possible but usually unlikely in normal operation) then the connection failure doesn’t currently make its way back to OnOutgoingConnectionFailed() which means that any code you might have in there for dealing with connection failures wont get called…

Why do developers still use VC6?

Tim Anderson asks why there are so many developers still using VC6… Well, as I said before, if you produce C++ software in source code form and any of your clients require that you support VC6 then it’s often easier to maintain the project files in VC6 (and thus use that as your day to day development tool) than it is to use any of the newer compilers. The reason for this is that all of the newer releases will read and convert VC6 project files but none of them will write out project files that work with earlier releases.

Socket Server code - addressing bug fix

There’s a bug in one of the constructors for CSocket::InternetAddress which means that changing the example servers to use a specific network adapter’s address, rather than INADDR_ANY will generate an exception from the call to bind which says that the address is invalid. The code currently reads like this: CSocket::InternetAddress::InternetAddress( const unsigned long address, const unsigned short port) { sin_family = AF_INET; sin_port = htons(port); sin_addr.s_addr = htonl(address); } and it should read like this:

PeakLeaders Argentina BASI course - review

Previously published This article was previously published on megeveski.com when I took some time out to ski. An index of these pages can be found here. Having just successfully completed my BASI training with PeakLeaders in Bariloche, Argentina (and having blogged daily about the experience) I figure that it’s worth doing a slightly more structured review of the course as this may be of interest to people wishing to take this course in years to come…

I passed!

Well, today I discovered that I had passed the BASI Ski Instructor course that I’ve been taking in Argentina, so I’m now a Ski Instructor… We fly back from Bariloche to Buenos Aires on Friday and then onwards to the UK on Saturday; the trip has been great, but i’m looking forward to getting home and getting a decent curry and a bacon sandwich…