I'm in the process of moving the blog from one host to another and until I get all of the perl configuration working so that the various comment spam protection methods are working properly I'm turning off comments. Email me if you have a comment to add.…
The move to the new hosting server is complete and all the perl config has been done so I've turned comments back on!…
It seems that there's a 'known issue' with DevPartner studio's instrumentation and VS2008. Apparently the compiler architecture changed somewhat between VS2005 and VS2008 and sometimes the instrumentation is incorrect which is the cause of my 'strange crashes' with DevPartner 9.0. There's no patch available at this time...…
The latest release of The Server Framework is now available. This release includes the following changes. The following changes were made to the libraries. Admin Library - 5.2.4 We no longer support Visual Studio 6. We now compile with /Wall (in VS2005 and later) to enable all warnings, even those that are disabled by default. Of course this means that the list of warnings that we disable in Warnings.h has grown a little. The custom message pragmas are now all prefixed with JETBYTE_, so there's JETBYTE_TODO, etc. This is to prevent name clashes with user code. C++ Tools Library - 5.2.4 Added…
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…
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). Using externals isn't perfect mind you; although the externals are automatically processed…
Converting a numeric type to a string format in C++ is one of those problems that was 'solved' a long time ago. The 'standard' method usually involves streaming the type to be converted into a std::stringstream and then extracting the resulting string representation. Something like this, perhaps: #include<iostream> #include<string> #include<sstream> using namespace std; string itos(int i) // convert int to string { stringstream s; s << i; return s.str(); } int main() { int i = 127; string ss = itos(i); const char* p = ss.c_str(); cout << ss << " " << p << endl; } This style of…
In one of the original articles that introduced The Free Framework I mentioned that the original design was possibly lacking in that it required a critical section per connection and that this could be resource intensive. Shortly after I changed what was to become The Server Framework to use a lock factory which passed out instances of critical sections based on a hashing algorithm applied to a key that the caller supplied. This allows a known set of critical sections to be shared (evenly, we hope) across all connections. This means that we know in advance how many critical sections we're going…