May 11, 2004
@ 06:19 PM

Jon Udell recently wrote

In a recent column on how we use and abuse email, I mentioned the idea of passing attachments "by reference" rather than "by value." Unfortunately I overlooked a product recently reviewed by InfoWorld that does exactly that. The Xythos WebFile Server has a companion WebFile Client that hooks File Attach (in Notes and Outlook) and replaces attachments with secure links to an access-controlled and versioned instance of the document. Cool!

The $50K price tag, as our reviewer noted, "may keep smaller companies away." But other implementations of the idea are clearly possible.

SharePoint provides the ability to provide shared workspaces for documents and even integrates nicely with the rest of Microsoft Office such as Word. I know quite a few people who've gone from sending documents back and forth over email to sending links to documents in shared workspaces. Of course, old habits die hard and even at Microsoft lots of people tend to send documents in email as attachments.  


May 11, 2004
@ 03:21 PM

In Steve Burnap's blog post entitled Infamy he writes

I've been opposed to the Iraq war since the beginning, but until this, I didn't feel disgust.
And that makes me sad. There are only villians here. Villians who have made the US no better than Saddam Hussein. We got into this war with lies, but even if there were no WMDs and no Al Qaeda connection, we could say "well, at lest we got rid of a tyrant". Now all we can say is that we've replaced a tyrant.

I share the exact same sentiments. The Iraq War has hit every worst case scenario I could have come up with; no weapons of mass destruction, no concrete ties to Al Qaeda shown, militant resistance from members of the local populace, and US troops actively violating the Geneva Convention. The funny thing is that polls show that 44 per cent of people polled in the US think the war is worthwhile.  Sad.


The folks behind the InfoPath team blog have posted a short series on how to programmatically modify InfoPath form templates. The example in the series shows how to change the URL of a XML Web Service end point used by the InfoPath form using a script instead of having to do it manually by launching InfoPath. The posts in the series are linked below

  1. Modifying InfoPath manifest.xsf file from script (1/5)
  2. Modifying InfoPath manifest.xsf file from script (2/5)
  3. Modifying InfoPath manifest.xsf file from script (3/5)
  4. Modifying InfoPath manifest.xsf file from script (4/5)
  5. Modifying InfoPath manifest.xsf file from script (5/5) 

The posts highlight that the InfoPath XSN format is really a CAB file, and the files that make up the template are XML files which can easily be modified programmatically.


Categories: XML

I recently submitted the Design Guidelines for Exposing XML Data as part of the WinFX design guidelines. You can read the guidelines in Krzysztof Cwalina's weblog. These are also the application guidelines that developers working with XML should follow for working with XML in the Whidbey timeframe. I'll be working with the FxCop team to get some rules written to check for compliance to these guidelines in the Whidbey base class library over the next few weeks.


Categories: Life in the B0rg Cube | XML

I recently stumbled on blog posting by Phil Ringnalda called a little chip in the concept where he notes

Still, I was a bit surprised when Xiven linked to a post to the validator mailing list, pointing out that the utterly wrong HTML <a href=""><b><a href=""></a></b></a>, which is reported as invalid in HTML, is ignored in XHTML. Nesting links is one of those basic, there's absolutely no way you can ever do this, things, but in XHTML if you put a nested link inside an inline element, the validator won't catch it. According to Hixie's answer, it's because the validator uses an XML DTD for XHTML, and an SGML DTD for HTML, and while you can say that a/b/a is wrong in an SGML DTD, you can't in an XML DTD. As he puts it, in XHTML it's XML-valid but non-compliant.

Phil has just stumbled on just one of many limitations of XML schema languages. At first, when people see an XML schema language they expect that they will be able to use it to declaratively describe all the rules of their vocabulary. However this is rarely the case, every XML schema language has limitations in the constraints it can express. For example, W3C XML Schema can't express constraints such as a choice between attributes (either an uptime or downtime attribute appears on an element), DTDs can't express constraints on the range a text value can be (must be an integer between 5 and 10), RELAX NG can't express identity constraints on numeric values (e.g. each book in the inventory must have a unique ISBN) , and so on.

This means that developers using an XML schema language should be very careful when designing XML applications or XML vocabularies about what rules they can validate when they receive an input document. In some cases, the checks performed by schema validation may be so limited for a vocabulary that it is better to check the constraints using custom code or at the very least augment schema validation with some custom checks as well.

The fact is that many XML vocabularies are complex enough that their constraints aren't easily be expressible using a conventional XML schema language. XML vocabulary designers and developers of XML applications should always be on the look out for such cases else incorrect decisions be made in choosing a validation framework for incoming XML documents.


Categories: XML

Based on some feedback from yesterday, the RSS Bandit installer has been refreshed and the following fixes made.

  • FEATURE: RSS Bandit now comes with a documentation helpfile so one doesn't need to go online to access the user documentation.
  • FIXED: During synchronization a feedlist may become corrupted and fail to load with the following error 'Keyref fails to refer some key'.
  • FIXED: When launched on a Brazilian Porteguese configured computer some text in dialog boxes is in English.
  • FIXED: If installing over an old version of RSS Bandit, existing search folders are replaced with the 'Unread Items' search folder.

If you downloaded it yesterday you should still get the latest installer because a few of the bugs fixed may affect you.  


Categories: RSS Bandit

Download the installer from here. Differences between v1.2.0.90 and v1.2.0.112 below

  • FEATURE: Support for Atom 0.3 syndication format
  • FEATURE: Instances of RSS Bandit can now be synchronized using WebDAV, FTP or a file share. The data is transfered in a ZIP file containing information about the current state of your search folders, flagged items, replied items, subscribed feeds and read/unread messages. This is extremely useful for people who use RSS Bandit on different computers like from home and work or from school and home.
  • FEATURE: Ability to configure appearance of MSN Messenger style popup windows in the system tray when new items show up on a per feed basis. Also the ability to turn this feature on and off now available from the context menu in the system tray.
  • FEATURE: Browser address bar has autocomplete functionality
  • FEATURE: RSS Bandit now translated to the following languages; English, German, Russian, Simplified Chinese, Brazilian Portuguese and Polish. If the language configured on your machine is one of these then all text should appear in your target language.
  • FEATURE: Online documentation now provided and is available from Help menu. This is a work in progress but all the information for figuring out the basics of using RSS Bandit is available now.
  • FEATURE: Logos and other distinguishing images from websites that provide them in their feed now displayed in the details pane.
  • FEATURE: Feeds imported from an OPML file can now be imported into a specific category.
  • FEATURE: Export to OPML now contains htmlUrl and description attributes in elementsfor each feed.
  • FEATURE: Custom stylesheets for rendering feeds can now reference external .css or image file(s)
  • FEATURE: Added one more commandline option '-c[ulture]:', e.g. '-culture:"ru-RU"' forces to start the russian UI.
  • FIXED: If executing/downloading ActiveX controls is disabled, warning message(s) no longer displayed about sites with ActiveX controls.
  • FIXED: Speed improvements in behavior of [Next Unread Item] button.
  • FIXED: Alert balloon in system tray pops up too frequently.
  • FIXED: UI hangs temporarily if a tree node is clicked for a feed that hasn't been downloaded before.
  • FIXED: Clicking on links with mailto: or news: URL schemes opened a new browser tab.
  • FIXED: Certain feed URLs not being updated if they had mixed case (e.g. or were malformed (e.g. http:/
  • FIXED: Issue with screen font resolutions other than 96dpi.
  • FIXED: Exception on accessing feeds secured with windows authentication. Now the default credentials are correctly used.
  • FIXED: Closing a web browser tab on slow sites could cause hundrets of new browser tabs opened, or exception.
  • FIXED: startup issue on Windows 98/ME systems
  • FIXED: DTDs not used for resolving entities in RSS feeds. This mostly affected RSS 0.91 feeds
  • FIXED: Memory footprint reduced (5 to 15 percent), some speed improvements
  • FIXED: Various issues with deleting search folders.


Categories: RSS Bandit

Every once in a while I see a developer of a news aggregator that decides to add a 'feature' that unnecessarily chomps down the bandwidth of a web server in a manner one could classify as rude. The first I remember was Syndirella which had a feature that allowed you to syndicate an HTML page then specify regular expressions for what parts of the feed you wanted it to treat as titles and content. There are three reasons I consider this rude,

  • If a site hasn't put up an RSS feed it may be because they don't want to deal with the bandwidth costs of clients repeatedly hitting their sites on behalf of a few users
  • An HTML page is often larger than the corresponding RSS feed. The Slashdot RSS feed is about 2K while just the raw HTML of the front page of slashdot is about 40K
  • An HTML page could change a lot more often than the RSS feed [e.g. rotating ads, trackback links in blogs, etc] in situations where an RSS feed would not 

For these reasons I tend to think that the riught thing to do if a site doesn't support RSS is to send them a request that they do highlighting its benefits instead of eating up their bandwidth.

The second instance I've seen of what I'd call rude bandwidth behavior is a feature of NewsMonster that Mark Pilgrim complained about last year where every time it finds a new RSS item in your feed, it will automatically download the linked HTML page (as specified in the RSS item's link element), along with all relevant stylesheets, Javascript files, and images. Considering that the user may never click through to web site from the RSS view this is potentially hundreds of unnecessary files being downloaded by the aggregator a day. This is not an exaggeration, I'm subscribed to a hundred feeds in my aggregator and there are is an average of two posts a day to each feed so downloading the accompanying content and images is literally hundreds of files in addition to the RSS feeds being downloaded.

The newest instance of unnecessary bandwidth hogging behavior I've seen from a news aggregator was pointed out by Phil Ringnalda's comments about excessive hits from NewsCrazwler which I'd also seen in my referrer logs and had been puzzled about. According to the answer on the NewzCrawler support forums when NewzCrawler updates the channel supporting wfw:commentRss it first updates the main feed and then it updates comment feeds. Repeatedly downloading the RSS feed for the comments to each entry in my blog when the user hasn't requested them is unnecessary and quite frankly wasteful.

Someone really needs to set up an aggregator hall of shame.


Categories: Technology

In response to a post Greg Robinson about cancelling his MSDN subscriptions due to excessive focus on unreleased technologies by Robert Scoble writes

 MSDN, by the way, is like a PDC. It focuses on newer stuff and is produced by Microsoft. The other magazines are not tasked with covering the new stuff as much.

This assumption is wrong on so many levels I don't know where to start. It is telling that MSDN has strayed from being where developers get up to speed on existing Microsoft technologies to being a primarily a monger of vaporware. If MSDN is to be likened to a conference it should be TechEd (focus on existing technologies and best practices with a smattering of sneak peaks at the future) not PDC (focus on technology that won't be released for 2 to 4 years or that may not make it past the chopping block).  I've pinged various content strategists at MSDN and Sara Williams about this in the past with the responses being that most of the content is still about existing technologies.

I suspect that what people resent is the fact that the releases are so far off (Whidbey is 1 year away, Longhorn is 2 years away) and there aren't any publiclly generally available releases that are easy to get into which makes the frustration at articles about MSBuild, Avalon, Indigo, etc more difficult to stomach. It's one thing to see articles about beta technology you can download easily off the 'net and another to see articles about technology that is still in alpha which isn't publiclly available.  I don't intend for the MSDN XML Developer Center to go this route and so far have tended to focus the content appearing on the site about working with existing technologies.


Categories: Life in the B0rg Cube

May 2, 2004
@ 10:07 PM

I just finished fixing some bugs in the synchronization code in RSS Bandit and now the feature should work as expected. All I can say is, "Wow". I've just taken it for granted that I can open an instance of my mail client on different machines and get the same state but the same isn't the case for my news aggregator. Being able to click 'Download Feeds' on startup and have everything I read/flagged/replied to at home or at work synced up is totally sweet.

The only thing preventing a release now is that I'd like Torsten and I to come up with a way to improve the responsiveness of the GUI when loading feeds with thousands of items. On my machine where I have 3 months of posts from blogs like Weblogs @ ASP.NET it definitely seems like the user interface is creaking and groaning. This shouldn't take more than a few days so we should be on track for a release this week.


Categories: RSS Bandit