March 31, 2004
Smoking Hardware

This made me laugh:

Hardware components contain smoke and when they go wrong you can tell by the fact that the smoke has escaped. Some hardware also contains fire, and when you let that out the entire office stops to see what has gone wrong.

[via Jon Shute, "Things that I learnt this week"]

Posted by Simon at 10:13 AM
VS.NET 2003 Templates

How many thousand times have you created a new C# class, then deleted the ?Add constructor logic here? and/or the default, useless XML Documentation comment? Far too many, I'm sure.

Solving this problem is simple: Remove them from the template that's used to generate new classes. The file is found at the following location (VS.NET 2003):

%programfiles%\Microsoft Visual Studio .NET 2003\VC#\VC#Wizards\CSharpAddClassWiz\Templates\1033

Other templates are scattered around below the %programfiles%\Microsoft Visual Studio .NET 2003\VC# directory. Simply do an in-file search for ?///? and you'll find several more.

(I think EricGu or someone else posted something about this a while ago, but I can't find the post.)

[via Jeff Key, "Remove default comments in C# files"]

Posted by Simon at 10:09 AM
March 25, 2004
Why are ATL and WTL Upside Down?

An excellent article from Jim Beveridge:

ATL and Upside-Down Inheritance explains the reasoning behind the slightly eccentric design choices made in the ATL windowing framework.

Posted by Simon at 08:11 PM
Small World!

Hello to Graeme! I know Graeme from the real world (shock, horror!) and it's always a pleasure to discover another real person who blogs.

Interesting stuff on Graeme's blog:

Bluetooth support in XP SP-2, and a bad experience using it for development - think I'll maybe wait a while now (if I can hold the itchy "ooh, new software" fingers at bay).

Cool: replace task manager with Process Explorer from

Posted by Simon at 08:07 PM

This Windows API attempts to guess if a buffer contains unicode text or not:

Very useful!

Posted by Simon at 02:53 PM
March 24, 2004
String Matching Algorithms

An enormous collection of string matching algorithms, all with explanations and java animations:

Posted by Simon at 10:06 AM
March 08, 2004
The Road to Indigo

More on my quest for knowledge about Indigo/WSE/DIME:

Rich Turner has an interesting article talking about how you can develop web services infrastructure now so that it migrates well to Indigo:
On the road to Indigo: Prescriptive Guidance for Today's Technologies

How about some coverage related to Indigo, DIME and the new MTOM/XOP stuff. Specifically, with Indigo will I still be able to send binary attachments without incurring the base64 overhead. If so, then how?

Posted by Simon at 11:17 AM
March 02, 2004
The Road to TCP SOAP...

I'm trying to learn about SOAP and related technologies. I have recently been working on a connected wire protocol which involves sending XML messages to and from client and server. Most of it is a request-response system with the occasional unsolicited server->client message. Each message is wrapped in a pre-defined XML envelope. Sounding a bit like SOAP to anyone? So, I'm interested in how I can replace part of this system with SOAP.

So, here's how it went in tonight's web info-quest:

I'm using microsoft technology to start with: .NET to .NET.

MSDN → Search for SOAP and Web Services and Messaging in various combinations. Find →
XML and Web Services → Web Services Enhancements → Programming with Web Services Enhancements 2.0TCP Messaging

In the future, I will need to send binary files from the client to the server (data for transmission). Therefore I'm also looking for neat ways to send both XML messages and the occasional bit of binary data.

I started out by noticing something about DIME somewhere. Back to MSDN →
Sending Files, Attach,ments, and SOAP Messages Via Direct Internet Message Encapsulation,
Understanding DIME and WS-Attachments - sounds good, but the article is really old (ok, really old in Web Services terms).
Google for DIME and Indigo (Indigo is Microsoft's up and coming web services stack stuff, so it's a good term to see if DIME is no longer loved) → DIME is dead PASWA/MTOM is the way to go (ah-ha!) → Back to MSDN →
Messaging Specifications Index PageXML, SOAP, and Binary Data:

Hmm, no concrete evidence of an implementation. Back to Google →

Google for WSE and MTOMDon Box's Spoutletmnot → XOP and MTOM.

Hmm. This leaves me confused. Dime is dead, MTOM is the way forward. Only it doesn't seem that anybody has bothered to create MTOM yet. What's a developer to do?

Update: It seems that in WSE 2, Microsoft are abstracting attachments from the DIME-specific to more general attachments so that migration to MTOM will be less painful: Philip Rieck.

Posted by Simon at 09:46 PM