Messenger.NET Currently Hosed

I haven’t checked it personally, but I hear that Messenger.NET is no longer working. Apparently, MSN shut off access to all versions of their protocol prior to MSNP8 (Messenger.NET uses imcli which implements MSNP7) back in October.

There’s a good description of the MSNP8 protocol up on hypothetic.org as well as some info on the changes in MSNP9 and MSNP10. I don’t have time to upgrade imcli and/or Messenger.NET. Any volunteers?

BTW, as an alternative, I found the dotMSN library on hypothetic’s project page. Version 1.1 of dotMSN implements MSNP8. It’s free, though the source is not provided. I have no idea if it’s any good, but it’s the only .NET library for MSN messenger that implements MSNP8 that I could find.

Whitespace

While checking out the list of projects hosted at the Rotor Community site, I stumbled across an implementation for Rotor of  Whitespace “a programming language whose syntax is entirely based on space (0×20) tab (0×09) and (0x0A) linefeed”. Seriously.

BTW, the other projects on the Rotor community are much more useful. Check them out.

P2P Revisited

So I want to start kicking the P2P SDK around again. However, most of my work to date is on my busted laptop that I am still waiting to get fixed. Rather than reinvent the wheel, I started looking at wrapping two other relevant SDKs: IP Helper and Internet Connection Sharing & Firewall. IP Helper allows access to the network configuration of the local computer (including IPv6 settings). ICS/F allows you to programmatically manage XP’s NAT and firewall functionallity (including the IPv6 firewall). Both are relevant to P2P due to the management of IPv6.

I’m not sure why these systems have a custom API instead of just using WMI, but they do. So I’m looking to wrap them either in managed code or WMI (which is then available to managed code via System.Management).

UPDATE: MSFT just published a document about the new Windows Firewall in XP SP2. One of the big new features is the ability to configure the firewall at the global scope., though you can still specify connection settings which override the global settings. SP2 also includes the IPv6 firewall that is a part of the Advanced Networking Pack (which may mean that the P2P infrastructure is baked into SP2). I’m sure this will imply changes to the ICF API.

UPDATE 2: I finally got my laptop back today, and I found my previous P2P work. I hope to kick some code around over the holidays.

WTL 7.1

I cut my teeth developing for the windows platform with Windows++ by Paul Dilacia. It was about building a framework to wrap the Win32 api. Because of the elegance of Windows++, I never ever liked MFC. I disliked it so much that when I joined Microsoft, one of my ex-coworkers remarked “But you hate Microsoft” to which I replied “No, I hate MFC.”

Anyway, even though most people have moved on to managed code now, Microsoft continues to ship updates to the Windows Template Library. WTL is an extension to the Active Template Library that supports typical Windows applications (controls, dialogs, frame windows, GDI objects, etc). The new 7.1 version support VS.NET 2003, Windows XP and Windows CE.

I wish I had had access to WTL back in the day. I liked it so much better than MFC.

C++ CLI Binding Candidate Spec

I blogged on the new ECMA working group for standardizing the C++ binding for CLI last month. Last week, Herb Sutter blogged the candidate specification. And to answer the question I posed, it does appear that the double underscore syntax has been removed. Instead of “__gc class {…}”, it’s just “ref class”. For __value and __property, you just lose the double underscore. Cool, though it does mean any MC++ code will eventually need to be migrated to the new syntax. Also. the specification is forward looking, including support for CLI generics.

Herb also blogged in depth on the new keywords as well as the gcnew operator.