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.

The Architect’s Journal

Clemens blogged the Microsoft EMEA Architect’s Journal a couple weeks ago. In addition to his article on dasBlog, issue 1 contains articles on SOA, architecture design, business process, meta-data driven design and rule-based application development. You can download the entire issue as a PDF. Major props to Arvindra Sehmi, editor of the Architect’s Journal. When I first took this job, Enrico Sabbadin suggested that MSDN Magazine should have a regular architecture focused article. I think we will all agree that Arvindra’s journal dedicated to the topic is an even better idea.

Going forward, my group will be working Arvindra’s group to help publish the journal. It’s interesting to note that none of the six articles in issue 1 are written by Microsoft architects. While I hope to see some articles written by Microsoft architects, the plan of action is to primarily feature architects from our partners, our customers and from the community. Anyone interested?

Reliable Syndication

After reading Sam’s slides on Atom, Scoble posted three times about how syndication could evolve. Of course, Scoble has his Longhorn-colored glasses on. Dare pointed out that “The major problems with syndication today have little to do with the syndication format and more to do with it’s associated technologies.” I agree with Dare. IMO, the only thing that the ATOM syndication format has over RSS is a namespace declaration. I care about that because one of the “associated technologies” I care about is SOAP and the lack of an RSS namespace makes it hard to embed an RSS item inside a SOAP message.

I think Scoble should be asking how syndication will evolve in the face of Service Oriented Architecture in general, not Longhorn specifically. Granted, Indigo is going to make Longhorn a great platform for SOA. (If you check out the Longhorn Interoperability and Migration Guide, Chapter 2 is mostly dedicated to describing SOA.) But I think the real change to syndication is going to come from WS-ReliableMessaging. In order to truly evolve syndication, I think we need to break free of the synchronous polling model we have today. Polling only works in scenarios with a central syndication source (like a weblog). However, as the sources of syndicated content get to be more distributed (phones, P2P networks, etc) that polling model breaks down. I need to be able to send messages when things change without regard to network availability. With WS-RM, I can send messages and the infrastructure (i.e. Indigo) can take care of the ugly details of making sure the messages get delivered to their final destination.

Caught Up

So I’m finally caught up on my blog reading. After being on vacation for five days, I had over 500 unread entries. Read some, marked most as read even though I hadn’t. This problem is going to only get worse as I find more interesting blogs to read.

What I want is for my news reader to suggest to me which of my unread entries I am most likely to be interested in. The question is, how to rank all the unranked entries?