I have recently been sent a couple of ebooks to review. It seems people at Packt Publishing think that I’d be a good person to review their C++ books… Anyway, bear in mind that this ebook was given to me for free and that I was asked to review it…
Instant Windows 8 C++ Application Development How-to is a short book, but then that’s what the “Instant” range of books are supposed to be.
Due to masses of attempted comment spam which was causing my hosting provider’s server some problems I’ve disabled comments for a while.
Email me if you have something you’d like added and I’ll sort it out for you.
Update - 13/5/13 - comments enabled again…
On the 3rd of May 2003 I posted the first entry on this blog. I then proceeded to “back fill” the blog with various things that had either been posted before in other places or had been laying around waiting for me to have somewhere to put them. This is why although the blog began in 2003 the archives go back to 1992.
Things have changed quite a lot since then, both in terms of blogging and my life.
Back in January 2010 I discovered that if FILE_SKIP_COMPLETION_PORT_ON_SUCCESS is enabled on a datagram socket and a datagram arrives when a read is NOT currently pending and the datagram is bigger than the buffer supplied to the next read operation then no error is returned and the read will never complete. This was confirmed as a Windows bug and I’m pleased to see that it’s been fixed in Windows 8 and Server 2012.
I’ve been pretty happy with moving to Windows 8. I’ve got used to the “new” UI, it was a pretty painless transition once I learned the new shortcut keys and I actually think that the new “start menu” is better, you don’t have to worry about complicated trees of folders, it’s all flat and you just start typing the name of what you want… So for me, a developer with two monitors and no touch interface using the desktop pretty much as I always have done, Windows 8 works well.
I’ve just released new versions of my Lock Explorer tools, LID and LIA. This is quite a big release as it increases the number of locking APIs that the tools instrument from 1 to 3. We now track Slim Reader Writer locks and Mutexes.
Arguably the tools should always have tracked these, and possibly more API calls, but the tools have always been first and foremost to assist in the development and testing of The Server Framework and, well, we only use Critical Sections.
I have clients asking me about this all the time. This article is pretty concise about the tools that you need to use to map an open port to the process that has it open.
I’ve had a little stand alone RAID device for several years now. It’s a Netgear ReadyNAS NV+ and it works quite nicely. I’m sure I could have something better but, I haven’t yet upgraded it apart from adding some memory and changing drives every now and then. I have a second ReadyNAS at my dad’s office and my office backs up critical data to that via rsync and a VPN; the one at his end does the same, though most data flows from me to him.
A note to myself and my clients more than anything else…
It seems that when you generate a key using a 1.x version of the openssl utility the blob looks like this:
-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQI7BZmHKzGwtQCAggA etc... T+CaOPXRod3cKwZEgp0vkM+gpsLw0C6WVEdV01ZrgUsJ2DceYXaenHCjfZ7jwy84 LKk= -----END ENCRYPTED PRIVATE KEY----- whereas when you generate a key in exactly the same way with an 0.9.8 version of the utility the blob looks like this:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,061B6446EB96A47B OFE9asOb689P0l6++Nwz0HYop4KdgKh6NFCzZV/kjp03VL2RW6beii2x70ikTLjs etc.
The Server Framework’s OpenSSL Option Pack integrates OpenSSL with my high performance server tool kit and gives you an IOCP based client or server that can handle many thousand concurrent connections with very few threads. The OpenSSL Option Pack has been around for over 10 years now and, as well as the SChannel Option Pack provides an easy way to add SSL or TLS to your clients and servers.
Updated 26th April 2023
The latest scripts for OpenSSL 3.