« OLEDB | Rants Archives | Refactoring »
I tend to develop code with JITT (Just in time testing), this is like TDD when I'm doing it but it doesn't always get done. What does get done, generally, is the "first test" for each class. This ensures that subsequent testing is possible as the code doesn't have hidden dependencies and it gives me a test harness that's ready to go when I find that I need it. More complex code end up being TDD, easier bits end up as JITT where the tests are only written when I've wasted time banging my head on the desk trying to…
So, it's nearly a year since I first started noticing issues with VS2015 on my build servers. The bug in question now has an entry on Microsoft Connect and Google can help with some work arounds which don't require turning the machine off and on again a random number of times until it works... There's even a Visual Studio extension that fixes the issue for you (!). I find it disappointing that this hasn't been fixed, it's a fundamental usability issue which seems to be causing lots of people lots of pain. It's probably not too bad if you're running…

SChannel ALPN support, documentation "bug"...

| 0 Comments
I'm looking at adding support for the TLS Application-Layer Protocol Negotiation Extension to The Server Framework as a precursor to looking into HTTP 2.0 support. This TLS extension is supported by both SChannel and OpenSSL. It's relatively new (only having been included in SChannel since June 2014 (!)) but there seems to be no documentation on MSDN for the structures and how to use them to add the appropriate entries to the TLS handshake and then to select and validate the protocol of your choice... Searching today with Google for something like "SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT" just gives just the usual selection of hits…
There should be a Developer Advocate position within Microsoft. They seriously need someone who doesn't "Drink the Kool-Aid" who can step in and tell the Program Managers or Marketing bods or whoever it is who makes all the really STUPID decisions that the decision is stupid and that they should get back in their box and leave the developers who support the Windows ecosystem by building software that runs on it to just get on with their lives... Yes, this is going to be a rant... So someone has decided that being able to query which version of the Operating…
As I said a while ago, Visual Studio 2015 appears to have lots of pretty serious bugs. One that probably bites me more than many people is this Save As bug. If you have a project and you select a file in that project and do a "Save As" such that the target file is also in the project then the VS2015 IDE crashes. I tweeted about this a while back, and the Visual Studio Program Manager, Cathy Sullivan, wanted me to create a new project and see if the problem happened with it... Not quite sure why she couldn't…
As usual I have used VMs to play with the CTP releases for the new version of Visual Studio and fixed up new warnings and build failures in my source so that I'm not too surprised when the RTM comes along. Unfortunately as soon as I put VS2015 RTM on my build server and started running it as part of my CI system I started noticing strange things... The first is that it seems to be possible to get VS2015 into a state where it will refuse to load C++ projects. I've no idea how I've managed this, but it's…
Today I discovered that C++ scoped static initialisation (function level) in Visual Studio is not done in a thread safe manner. It's the kind of thing that I should have already known but I guess I assumed that since namespace level static initialisation was safe so was function level static initialisation. Unfortunately it's not. If you read the MSDN documentation in a particular way you could decide that the docs say that it's not; but it's imprecise and unclear and I doubt that I did read the MSDN documentation anyway. Looking at the generated code from Visual Studio 2013…

Incorrect Windows 8 error message change!

| 0 Comments
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. In fact, the biggest upset for me so far…

Where are all the Microsoft Networking MVPs?

| 5 Comments
There's a gnarly networking question on stack overflow that I've since reposted on various Microsoft forums and so far I've had absolutely no useful response. Not even an "I don't know, but I'll look into it". I can understand that, perhaps, the issue may be a little bit technical for a support person who isn't steeped in networking API knowledge; but where are the MVPs? Why isn't there a Winsock MVP who can tell me that the bug has already been raised somewhere and might get fixed, or that it's a known and desirable breaking change?? This issue looks…

WebSockets - I miss the TCP half close...

| 2 Comments
As I mentioned here, the WebSockets protocol is, at this point, a bit of a mess due to the evolution of the protocol and the fact that it's being pulled in various directions by various interested parties. I'm just ranting about some of the things that I find annoying... The WebSockets protocol includes a way for the endpoints to shut down the connection. If an endpoint receives a Close frame and that endpoint did not previously send a Close frame, the endpoint MUST send a Close frame in response. It SHOULD do so as soon as is practical. An…
As I mentioned here, the WebSockets protocol is, at this point, a bit of a mess due to the evolution of the protocol and the fact that it's being pulled in various directions by various interested parties. I'm just ranting about some of the things that I find annoying... The WebSockets protocol is designed to be extended, which is all well and good. Extensions can, at present, be formally specified by RFCs or be "private use" extensions with names that are prefixed with an "x-". So far the only "official" extension is the deflate-stream extension that's detailed in the…
As I mentioned here, the WebSockets protocol is, at this point, a bit of a mess due to the evolution of the protocol and the fact that it's being pulled in various directions by various interested parties. I'm just ranting about some of the things that I find annoying... The client MUST mask all frames sent to the server. A server MUST close the connection upon receiving a frame with the MASK bit set to 0. In this case, a server MAY send a close frame with a status code of 1002 (protocol error) as defined in Section 7.4.1.…
As I mentioned here, the WebSockets protocol is, at this point, a bit of a mess due to the evolution of the protocol and the fact that it's being pulled in various directions by various interested parties. I'm just ranting about some of the things that I find annoying... Back when binary frames were mentioned in the WebSocket protocol specification as a slightly hand wavy "something for the future" and only text frames were actually possible to send and receive using the clients at the time then there MAY (in the strictest RFC meaning of the word) have been…
As I mentioned here, the WebSockets protocol is, at this point, a bit of a mess due to the evolution of the protocol and the fact that it's being pulled in various directions by various interested parties. I'm just ranting about some of the things that I find annoying... The first thing to realise about the WebSockets protocol is that it isn't really message based at all despite what the RFC claims. Clients and servers, after a successful handshake, transfer data back and forth in conceptual units referred to in this specification as "messages". A message is a complete…

Movable Type upgrade annoyance

| 0 Comments
I've just upgraded Movable Type from 5.03 to 5.11. The upgrade itself went smoothly except for one thing. A recent fix to MT to remove an obscure HTML standard violation that Firefox was causing problems with means that permalinks with runs of dashes in them have been changed. You can see the full details here on the MT forums where I posted the bug report. This is more of an issue for me as I did the upgrade and then launched www.lockexplorer.com which uses the same MT installation as www.serverframework.com, www.jetbyte.com and www.lenholgate.com. The new site now has the…

Things I hate about Visual Studio 2010 - part "today"

| 0 Comments
I tend to work with lots of solutions at once. I'm often building code for clients, building and testing new example servers for The Server Framework and running lots of copies of various versions of Visual Studio at once. Now, if I happen to try and open two VS2010 solutions at around the same time (and given the time it takes for VS2010 to start up that's not that hard to do), then one of them wins and gets my normal settings and one (probably the one that gets a sharing violation whilst trying to read my normal settings) ends up with…

DevPartner Studio 10 - unmanaged disappointments

| 2 Comments
The story so far, I've owned DevPartner Studio for several years and been on a support contract the whole time. The support situation went a bit flakey when Compuware sold the product to Micro Focus, I expect that either I'm simply not a big enough client for them to care or their post sales and support is just no where near as good as the Compuware offering. With Compuware I'd be contacted when new versions came out and I had a named sales contact that I could also use for questions, etc. What's more the sales guy was good, he…

Tool lag

| 6 Comments
One of the problems of having a collection of tools that interoperate is that there's often a lag between when a tool will interoperate with the latest version of another tool. I'm hardly a bleeding-edge tool junky, I wait until RTM before I start using the latest Visual Studio on a daily basis, and in the case of VC 6 I stuck with it (as did most of my clients) until VS2005 came out and actually improved life for unmanaged C++ development... However, it seems that some tools take a long long time to catch up with Visual Studio. Take…

Things I hate about Visual Studio 2010 - part 1

| 0 Comments
So far I've found Visual Studio 2010 quite a compelling upgrade from Visual Studio 2008 for native C++ development. Intellisense is better, the build experience seems smoother and faster, editing on a decent development box seems OK, the various profiling and concurrency tools look interesting and, well, it mostly works quite nicely. It's a pity that there are some rough edges. I've been seeing crashes when I update project and solution files whilst it has them open (a common thing to do if you're working with source control). I haven't yet been able to get a repeatable reproduction, but my…

Visual Studio 2010 Beta 2 installation failure

| 0 Comments
I've been having problems installing VS2010 Beta 2 onto a selection of x64 VMWare machines (fully updated and service packed XP and Windows 7). In fact I was having problems installing it onto any of them. The error that I was getting was this: [10/22/09,07:28:42] Microsoft Application Error Reporting: [2] CMsiComponent::Install() expects the setup file for Microsoft Application Error Reporting, but the file failed verification. And whilst a google showed that others were also getting the same error it was few and far between and nobody had been given any useful advice. I'd tried with both the premium and the…
Back in October 2005 some of my clients started to complain that the latest version of the Platform SDK (the April 2005 version) broke their builds. The culprit was uuid.lib which had been built with debugging information that the VC6 linker didn't understand and which caused a link failure. The end result was that the last version of the Platform SDK that worked with VC6 was the February 2003 version. This all seemed quite unnecessary to me at the time; as if the latest Platform SDK was deliberately unusable for VC6 which had (in September 2005) just become unsupported. Well,…
I'm downloading the Windows 7 Beta from MSDN Subscriber downloads right now and the new Microsoft File Transfer Manager appears to be very very crap. The MSDN site insisted on updating the file transfer component before I could download and this version seems to stop every few minutes with errors about web server headers being missing. I have no proxies of my own that could be causing problems so I assume it's a wider problem than just me... Anyway, it's a pain that I have to keep hitting the Resume button ever few minutes...…

The perils of precompiled headers

| 0 Comments
I'm working on some client code today and it's fairly typical of most 'Visual Studio Wizard generated code' in that it uses precompiled headers in a pretty poor way. The default wizard generated code seems to encourage people down a slippery slope of just including everything in stdafx.cpp and not worrying about the consequences. Of course, by the time the project is large enough for this to be a problem the damage is already done and it's a nightmare to try and unpick the resulting problems. I've mentioned before that I use precompiled headers in the "one true way" (see…

Flame on

| 0 Comments
There's an interesting post over on "Blogging Considered Harmful" about why flaming someone for incorrect technical spouting is a good thing; I tend to agree. I actually WANT people to shout down my stupidity, if they're right and I'm wrong then hopefully I'll learn from the exchange. If I'm right and they're wrong then perhaps they'll learn from it. Either way it should make both sides think; though perhaps I'm being a little naive... Take this recent exchange in the comments for one of my articles over on CodeProject. Someone, ostensibly called Alex Gris, with no other posting history on…
I really really really hate the error that I sometimes get when trying to copy a file from my Vista box to my NAS: "The mounted file system does not support extended attributes". With the options to "Try again" or cancel. I suppose the "Try again" option is just in case the mounted file system changes its mind or the file somehow decides that the extended attributes that it's somehow acquired aren't actually required... The main problem I have is that I get this with text files where I've never done anything 'special' to create "extended attributes" (whatever they are).…

Go on, tell us why?

| 0 Comments
It wont come a surprise to anyone who has read this blog for a while that I disagree with much of what Simon Sebright has written about asserts in the latest issue of the ACCU's Overload magazine... I've stated my case far too many times to go through it all again, but, it would be nice if he'd explained why he doesn't like using references when a pointer argument cannot ever be null, especially as he then takes a stance that says, in his view, a pointer argument SHOULD NEVER be null...…

Lifetime management issues with CLR hosting

| 0 Comments
I'm still playing with hosting the CLR in C++ (using "Customizing the Microsoft.NET Framework Common Language Runtime" by Steven Pratschner as my guide)... It's an interesting journey but, once again, I wonder who makes the important technical decisions at Microsoft and how they sleep at night ;) .…

I don't like Vanilla Scoble

| 0 Comments
Robert Scoble, the "Microsoft Geek blogger", has recently had a complaint that he only writes about Microsoft and he figured that he was in a rut and decided to get out of his rut by deliberately not writing about his usual topics of Microsoft, Google and Yahoo (GYM) for 100 posts... So, for the last 3 days he's been writing about other stuff... There are problems with this idea though...…

Why are the "event" classes in .Net STILL broken?

| 0 Comments
Whilst I'm ranting about the little things... You still can't create named versions of the .Net ManualResetEvent and AutoResetEvent, even in .Net 2.0. Wasn't everything going to be fixed in Whidbey?…
« OLEDB | Rants Archives | Refactoring »

About this Archive

This page is an archive of all entries in the Rants category.

OLEDB is the previous category.

Refactoring is the next category.

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