Clearly some sort of internal milestone has been reached by the C++ product team, because Stan and Herb are blogging again. Stan has quite a long entry on why C++/CLI supports both templates and generics, from an insider/designer point of view. It's not a skim-through-while-you-eat-your-breakfast post, but if you care about C++ you'll be glad you read it.

Admit it, you'd like a Tablet PC, wouldn't you? Then you could know what Julie Lerman and other ink-lovers are talking about all the time. Or if you already have one, with a second one you could give it away and get someone else hooked on tablet development. Well, Carl Franklin of .NET Rocks (and my fellow RD) wants some insight into what developers care about, and he's willing to give away this lovely Toshiba M200 to get it. Fill out a quick and confidential survey and you're all set. Contest ends August 26th, so don't dilly-dally.

I get a lot of fake bounce messages these days, either because mail that was spoofed as being from me has bounced or because viruses are pretending to be bounce messages. I also get a fair number of OOF and vacation messages from strangers, for much the same reasons I suppose. I ignore them, and usually delete them unread. But this one I read, because it had no attachment and I didn't know what the subject (Congés) meant. What I found is worthy of mention:

(I elided the name and email of the standin, Steve, and the phone number.) Just look at the phrasing! He invites me to contact Steve. He's going to put himself at my disposition on his return. He even signs it Cordially! Is it just that the French language lends itself to that kind of phrasing, or is didier a truly gracious person? I'll never know. But if I ever get a vacation, I think I will be wording my message a little differently now...

Almost two months ago now, Joel Semeniuk blogged about responding to RFPs and how awful it is. The thing is, it's really hard to keep a business larger than one person afloat without ever responding to them. And once in a while, you get the contract, which is fantastic but keeps you from blogging .

Gregory Consulting is in the midst of not one but two contracts landed through RFPs right now, and I just can't help myself, I'm responding to another, this to get on a Vendor of Record list for, er, a major provincial government. About two years ago this ministry built a list and the RFP had a due date for responses of December 23rd. The first Q & A session was full of questions about the deadline, would it be postponed, and the answers were oh no, absolutely not, there's plenty of time for you to make a good response in that time. Every Q & A after that, the same question, the same answer. Until two weeks before the deadline when they announced a four week or so extension. So here we go again in 2004 and the due date was July 29th, and the Q & A literally complained “the government is ruining my vacation” and the answer was “we are ruining our own as well but there will be no extension.” Again and again people asked and were told the deadline was immutable.

I've been busy doing the work I landed but I settled down last night to pull the whole RFP package together so it could be printed and bound today and hand delivered tomorrow. And with a horrible sinking feeling I was realizing I had hours of work writing project profiles and filling out checklists. I got to the bit where you have to list all the addenda you have seen, popped up to merx to get the most recent addenda (I've been busy, remember?) and -- hey! This thing closes August 19th now!

The East of Toronto User Group is meeting tomorrow at Durham College / OUIT once again. Please come and see Adam Gallant talk about game and media development:

A lot of software developers have realized the benefits of moving to the managed code environment provided by .NET, and are writing applications using C# and VB.NET. However, one of the most of the most exciting new technologies available to .NET developers is the availability of Managed DirectX, which provides managed access to building rich 3D application and games to .NET developers. Not a poor second cousin, Managed DirectX provides almost identical performance as native DirectX code. In this session, we will introduce DirectX concepts, the Managed DirectX classes, and demonstrate a managed game written in C#.

Here we have Patrick Hynds of New England, Ryan Storgaard who lives in either Calgary or Vancouver (it's complicated,) and Patrick's boss Bruce.

And at this end of the table it's Adam Gallant, my local DE and buddy, Jonathan Zuck of the Association for Competitive Technology, and Patrick again, who managed to have his eyes closed in both pictures.

Here's a strange thing that happened yesterday. An ASP.NET app, written in VB.NET, was only intermittently dealing with its events, such as button clicks. At first it seemed to be that the event was handled if we were debugging, and not handled if we were not. But that turned out not to be the case.

Whenever you're faced with weirdness -- and let's face it, an event that sometimes is handled and sometimes is skipped counts as weirdness -- the knowledge base is your friend. A team member found 314965, which is a C# version of the problem. Although no-one could find a VB KB article, these are our symptoms, and more importantly this fix was a fix.

SYMPTOMS

A control event on a Microsoft Visual C# .NET Web application form may not fire. The event does not fire if you wire the control event imperatively, that is, if you double-click the event from the Events view and then add the code.

RESOLUTION

Add the event to the HTML code behind the form, that is, wire the control event declaratively.

“Wire the control event declaratively” means put an onxxx= attribute in the HTML:

Instead of oninit you might have onclick or whatever event you have an issue with. Also, make your handler function public rather than private.

Moral of the story: there are two. First, it isn't always you. I can't tell you how many emails I've received telling me “there must be a bug in Microsoft's C++ optimizer, because my debug builds work beautifully but my release builds blow up.” Experienced C++ programmers mutter or shout “memory problem” when we get such emails: you're overwriting something or leaking or just generally not handling memory well; debug and release builds have huge differences in allocation, initialization, and other memory work when you're using unmanaged C++. Most of the time, it's you. But every once in a while, it's not you. And a quick search through the knowledge base is one way to see if it's you or not. Second, just because you're writing in VB doesn't mean that C# KB articles don't apply to you. Never be a language snob.

Kate

ps: of course I program in VB sometimes. What else would I use to create ASP.NET apps?