« June 2007 | July 2007 Archives | September 2007 »
So, back in June I discovered that my performance counter library code didn't work on my new Vista x64 development box... The problem seems to be that the code has always been doing things in an undocumented/unsupported way and it's only now that the old way doesn't actually work at all any more... I think I know what I need to do to fix the counter installation problem, use the wonderfully unixy named "lodctr" program (or the API alternative) to load the strings for the performance counters rather than simply shoving them into the registry myself... That means that the…
I'm fixing up my performance monitoring code and this uses shared memory to communicate between the perfmon extension DLL and the application. Since I'm tightening up security I decided to explicitly pass in the security attributes, which has a possitive knock-on effect to several of my Win32 tools classes which now also need to deal with security properly rather than just conveniently... Of course once you're passing explicit security attributes around rather than simply passing 0 to the APIs you can get back some of the convenience of the not-needing-to-think-about-it style of security by passing in an "allow all" security…

Performance counter rewrite almost complete

| 0 Comments
Around a week ago I started looking at rewriting my performance counter library so that it worked on Vista. That work is almost complete and I'm at the stage where the new library does everything the old one did but there's a list of 'nice to have' new items that I haven't completed yet. The work was reasonably easy once I got into it. I wasted an afternoon or so trying to understand the original code that I'd hacked a little way back in 2000 and eventually gave up and went to the documentation (and the book from whence the…

Non-trivial...

| 0 Comments
Charles Miller over at 'The Fishbowl' provides a cheat sheet to decode what us programming types mean when we describe the difficulty of solving problems...…

Infrant Ready NAS NV+

| 10 Comments
I've been running a pair of 2TB Infrant Ready NAS NV+ RAID systems for a while now as on-site file server and off-site backup and so far I'm very pleased with them. I have one under my desk and one in my dad's office and they talk over a VPN and keep each other in sync using rsync. The one under my desk acts as a file server for my development boxes and as a music server for my Squeezebox music players. It seems a little underpowered for the Squeezeboxes, the UI on Squeezebox is annoyingly slow sometimes but I've…
I'm still working on my performance counter library. I've got parent and child objects working and multiple instances and I have a sample server that publishes performance data using two objects, one for the executable (io threads, sockets and buffers in use, etc) and one for each of the server instances within the executable (connections active, bytes/sec, etc). The per server instance counters have the server executable as a parent and it has some totaled up counters for each instance... In turn there's a _Total instance in the server executable object's instances and that totals all executables... You can run…

VS2005 breakpoint annoyance

| 2 Comments
My Visual Studio 2005 C++ debugger seems to have stopped doing what VC6 used to do if you placed a breakpoint on a line that didn't result in executable code... VC6 used to warn you and then move the breakpoint to the next executable code line, VS2005 just seems to ignore the problem and disable the breakpoint when you're running and therefore just run straight past it... This is especially annoying in situations like this: myObj.DoThingWithLongArgumentList( // I usually set the breakpoint here... arg1, arg2, arg3, arg4, arg5); // You actually have to set it here... I'm starting to wonder…

Unsequenced socket bug fix

| 0 Comments
I've just fixed a bug in the latest version of The Server Framework (v5.1 - if you dont have docs and a version number then you're < 5). The probelm was that I was being fractionally over-zealous in making things easy for the user... CStreamSocket has a RequestWrite() method that takes a BYTE * and a length. Originally this used to fail if the length was more than the size of a buffer. Then I fixed the problem so that it split the write over multiple buffers. Unfortunately this is the wrong thing to do if write sequencing isn't enabled. So now…
I've spent some time over the last few days playing around with my CLR hosting socket server example. I had stalled on a piece of client work, I've got a bit of a head cold at the moment and my brain just wasn't in the right place for what I was supposed to be doing so I picked up one of more interesting the items on my todo list and took a look at that instead... The bulk of the work flowed nicely but then, just at the end things stopped working for no apparent reason... I'd done what was…

Nick Gunn is blogging again...

| 0 Comments
I used to work with Nick at CSFB and then at Barclays Capital. He's always been a good, techie, low-level COM/.Net geek and his latest writings on the Microsoft Concurrency and Coordination Runtime are interesting! If you're interested in async/multi-threaded/concurrent stuff then go take a look.…

VS2008 Beta 2 first impressions

| 0 Comments
I've just installed Visual Studio 2008 Beta 2 in a VMWare box so that I can start to test the x64 port of The Server Framework with the new compiler. I haven't bothered to look into what's new in the 2008 C++ compiler, I'm more interested in changes to the project file format (for the tools I'm building to fix this problem) and things that may prevent my code compiling or passing its tests rather than reasons to upgrade. So far I've had no problems, things build well and VS2008 performs pretty nicely in my 2gb mem, dual processor, x64 virtual machine.…
It's interesting, no, really, how the more things change the more they stay the same... I've been doing COM for a long time. I first discovered COM back at Interlink when I was writing a windows version of a product call CardMaster which did credit card production. The system supported lots of different machines and each of these machines needed different drivers, the drivers were written in C and usually spoke to the machine via a serial port. In the DOS (actually Concurrent DOS, but...) version of the product I'd used structures of function pointers that the driver populated during…

See the "What About .NET?" sidebar...

| 2 Comments
Interesting... It seems that rumours of C++'s demise in the brave new world of .Net were slightly over exagerated, perhaps, maybe... From a recent issue of MSDN magazine: "There are two main reasons why this column was born. First, despite the phenomenal success of the Microsoft® .NET Framework, there are still plenty of scenarios where it makes more sense to use native C++. Adoption of .NET will continue to grow, but C++ is here to stay. Second, with the launch of a major new operating system it is unreasonable to expect that all the various application frameworks--from MFC and the…
« June 2007 | July 2007 Archives | September 2007 »

About this Archive

This page is an archive of entries from July 2007 listed from newest to oldest.

June 2007 is the previous archive.

September 2007 is the next archive.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing