<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Content tagged with [xml] on 

DuncanMackenzie.net</title><description> notSet</description><link>/blog/tags/xml/default.aspx</link><language>en-us</language><pubDate>Mon, 08 Sep 2008 01:39:29 GMT</pubDate><generator>Oxite</generator><item><title>Search Engine Optimization Tweaks over the long weekend</title><description>&lt;p&gt;My team builds a fair number of community sites including &lt;a href="http://channel8.msdn.com/" target="_blank"&gt;Channel 8 (for Students)&lt;/a&gt;, &lt;a href="http://edge.technet.com/" target="_blank"&gt;TechNet Edge (for IT Pros)&lt;/a&gt;, &lt;a href="http://on10.net/" target="_blank"&gt;Channel 10 (for enthusiasts, power users and gamers)&lt;/a&gt;, &lt;a href="http://visitmix.com/" target="_blank"&gt;Mix Online (for web developers and designers)&lt;/a&gt; and the original site... &lt;a href="http://channel9.msdn.com/" target="_blank"&gt;Channel 9 (aimed mostly at developers)&lt;/a&gt; ... and we've recently starting putting out sites on a new code base. One of the changes in that new code base was a move to an AJAX style interface for viewing lists of posts on the page. We like the way this works for paging through lists of entries, comments, etc... but we have known from the beginning that it was going to cause us some trouble in the world of search engines and other crawlers. Without JavaScript, there was very little being output onto the page, and what was there was mostly navigational chrome. Taking a look at Google's cache of TechNet Edge from a few days ago gives this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://duncanmackenzie.net/images/d105b1c6-c386-44b0-ad06-abb5dfc2d260.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="231" alt="not much to see without script" src="http://duncanmackenzie.net/images/ae9106d8-4911-46fd-a913-cedf241ad069.jpg" width="260" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Checking how your page appears in the cache of Google or Live is one way to check how you appear to crawlers, but it doesn't work great when you are making changes or running in development. One handy way is to &lt;a href="http://visitmix.com/blogs/Joshua/291/" target="_blank"&gt;check your site using Lynx, like Joshua mentions in this post on Mix Online&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The content on the site was ending up in the index of search engines anyway, through the virtue of RSS feeds and incoming links... but the value of your site to crawlers is going to be much lower than it should be if they don't see any content when they visit. As I said earlier... we always knew this would be a problem, but I guess we just didn't get around to fixing it before pushing out a full three sites using AJAX based paging. Last week I had a meeting with a SEO consultant and they pointed out the exact issue I've been describing. Well... given a long weekend... and no interest in working on my actual planned tasks... I decided to implement two features to help how our sites appear to crawlers.&lt;/p&gt; &lt;p&gt;First, I added some code that swaps out our fancy Ajax entry list with a simple ASP.NET repeater if the browser doesn't appear to be one that is &lt;a href="http://asp.net/AJAX/Documentation/Live/BrowserCompatibilityForASPNETAJAX.aspx" target="_blank"&gt;supported by Microsoft Atlas&lt;/a&gt;, making our site usable to other browsers (Atlas supports the bulk of users, but not all) and also making our content visible to a crawler. So far, I only output the first page of any given entry list, but that makes the results go from blank to this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://duncanmackenzie.net/images/15f14fa3-9d40-457d-ae10-b478d6afefc2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="260" alt="current cached version from Live.com" src="http://duncanmackenzie.net/images/f7857152-02e9-44e9-bd1f-bca307f29f1c.png" width="252" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Next, &lt;a href="http://duncanmackenzie.net/blog/picked-up-mass-effect-today-built-xml-site-maps-instead-of-playing-it-/default.aspx" target="_blank"&gt;I added an XML sitemap&lt;/a&gt;, following the specs from &lt;a href="http://sitemaps.org" target="_blank"&gt;sitemaps.org&lt;/a&gt;, by outputting a sitemap index at &lt;a href="http://&amp;lt;site&amp;gt;/sitemapindex.ashx"&gt;http://&amp;lt;site&amp;gt;/sitemapindex.ashx&lt;/a&gt; and then outputting a series of sitemaps (by page #) from http://&amp;lt;site&amp;gt;/sitemap.ashx?page=&amp;lt;number&amp;gt; (see &lt;a href="http://visitmix.com/sitemapindex.ashx" target="_blank"&gt;Mix's sitemap index&lt;/a&gt;, and &lt;a href="http://visitmix.com/sitemap.ashx?page=0" target="_blank"&gt;sitemap&lt;/a&gt; as an example). Finally, I put a link to the sitemap index into the robots.txt file for each site.&lt;/p&gt; &lt;p&gt;Between the two, I'm hoping our content will get indexed better by a variety of search engines, resulting in more people finding us when searching for relevant topics. These changes also help to make us a little bit more usable to some users, but that is another area where we need to do a lot more work. If these changes improve our accessibility that's great, but I'd hate to even suggest that they get us anywhere near our goals in that area.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/search-engine-optimization-tweaks-over-the-long-weekend/default.aspx</comments><link>http://duncanmackenzie.net/blog/search-engine-optimization-tweaks-over-the-long-weekend/default.aspx</link><pubDate>Sun, 25 Nov 2007 07:57:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/search-engine-optimization-tweaks-over-the-long-weekend/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/952/trackback/default.aspx</trackback:ping><category> AJAX</category><category>EvNetDev</category><category>SEO</category><category>Web Development</category><category>XML</category></item><item><title>XSLT and Alternating Rows</title><description>&lt;p&gt;Saw this today (it is over a year old though) on &lt;a href="http://blogs.dev.bayshoresolutions.com/roger/default.aspx" target="_blank"&gt;Roger Hartford's blog&lt;/a&gt;;&lt;/p&gt; &lt;blockquote&gt; &lt;h4&gt;&lt;a href="http://blogs.dev.bayshoresolutions.com/roger/archive/2006/07/31/4008.aspx" target="_blank"&gt;XSLT alternating rows&lt;/a&gt;&lt;/h4&gt; &lt;p&gt;In an XSLT template tag you can simulate the same functionality as in&amp;nbsp; GridView/DataGrid "AlternatingRowClass" property using this syntax:&lt;br&gt;&amp;lt;div class="MyClass"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:if test="position() mod 2 != 1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xsl:attribute&amp;nbsp; name="class"&amp;gt;AnotherClass&amp;lt;/xsl:attribute&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xsl:if&amp;gt;&lt;br&gt;&amp;lt;/div&amp;gt;&lt;br&gt;It's that simple!&lt;br&gt;Roger&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I'm a big fan of XSLT based processing... and it is great to see ways to get exactly the results you want without additional server or client side code...&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/xslt-and-alternating-rows/default.aspx</comments><link>http://duncanmackenzie.net/blog/xslt-and-alternating-rows/default.aspx</link><pubDate>Fri, 17 Aug 2007 16:54:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/xslt-and-alternating-rows/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/933/trackback/default.aspx</trackback:ping><category>Web Development</category><category>XML</category></item><item><title>Put up a REST API for Xbox Gamertag Data</title><description>&lt;p&gt;&lt;a href="http://www.duncanmackenzie.net/blog/connect-your-xbox-360-gamertag-to-twitter/" target="_blank"&gt;My twitter app&lt;/a&gt; uses a web service hosted on my site to get all the necessary Xbox Live info.... way more than the twitter app actually uses. This is a SOAP API, located here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://duncanmackenzie.net/services/XboxInfo.asmx"&gt;http://duncanmackenzie.net/services/XboxInfo.asmx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;I know that some people prefer a more RESTful API though, so I also have another 'page' that you can call with a straight GET request and just pass the gamertag in as a query string parameter: &lt;p&gt;&lt;a href="http://duncanmackenzie.net/services/GetXboxInfo.aspx?GamerTag=Festive+Turkey"&gt;http://duncanmackenzie.net/services/GetXboxInfo.aspx?GamerTag=Festive+Turkey&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Enjoy! </description><comments>http://duncanmackenzie.net/blog/put-up-a-rest-api-for-xbox-gamertag-data/default.aspx</comments><link>http://duncanmackenzie.net/blog/put-up-a-rest-api-for-xbox-gamertag-data/default.aspx</link><pubDate>Sun, 27 May 2007 07:37:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/put-up-a-rest-api-for-xbox-gamertag-data/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>23</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/920/trackback/default.aspx</trackback:ping><category>.NET</category><category>Coding4Fun</category><category>Gaming</category><category>Twitter</category><category>XBox</category><category>Xbox 360</category><category>XML</category></item><item><title>Trackbacks and URL matching</title><description>&lt;p&gt;I recently noticed a bug in the trackback code&amp;nbsp;on Channel 10, some sites were failing to send us trackbacks, even though we were receiving trackbacks from other sources and those sites were happily trackbacking (I'm just annoying the spell checker today) other blogs.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Turns out the problem appears to be in our RDF block on our blog pages. On a page like &lt;a href="http://on10.net/blogs/tina/exclusive-video-first-look-at-the-xbox-elite/" target="_blank"&gt;this&lt;/a&gt;, the RDF block contains the following element:&lt;/p&gt;&lt;code&gt;dc:identifier="http://on10.net/Blogs/tina/exclusive-video-first-look-at-the-xbox-elite/"&lt;/code&gt;  &lt;p&gt;This uses the permalink URL that we provide for this page, but of course there are several other urls that work to get to the same resource including &lt;/p&gt; &lt;ul&gt; &lt;li&gt;http://on10.net/Blogs/tina/exclusive-video-first-look-at-the-xbox-elite/default.aspx,  &lt;li&gt;http://www.on10.net/Blogs/tina/exclusive-video-first-look-at-the-xbox-elite/&amp;nbsp;and  &lt;li&gt;http://www.on10.net/Blogs/tina/exclusive-video-first-look-at-the-xbox-elite/default.aspx &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;When a client, some other blog or blog posting software, goes to auto-discover our trackback URL they try to match the dc:identifier to whatever url they used in their post. So, if they didn't use the one we've chosen for our dc:identifier, then they don't find our trackback info, they don't send the trackback, and we don't get the trackback.&lt;/p&gt; &lt;p&gt;This sucks, but what is the right way to handle it? Add four distinct RDF blocks? Or is there some way to include all four URLs in the one RDF block?&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/trackbacks-and-url-matching/default.aspx</comments><link>http://duncanmackenzie.net/blog/trackbacks-and-url-matching/default.aspx</link><pubDate>Thu, 19 Apr 2007 20:35:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/trackbacks-and-url-matching/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/904/trackback/default.aspx</trackback:ping><category>10</category><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>Categories vs. Tags in Blogs and Blog Editors</title><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;I've been pondering categories vs. tags in blogs, in my sites (such as &lt;a href="http://on10.net)"&gt;http://on10.net)&lt;/a&gt; we've completely done away with the concept of categories as distinct entities from tags, which works fine on the site but is causing me a bit of a headache when I look at blog editing and blog editing APIs.  &lt;p&gt;I've enabled the &lt;a href="http://www.xmlrpc.com/metaWeblogApi" target="_blank"&gt;metaweblogapi&lt;/a&gt; on my sites so that standard blog editing tools like performancing, windows live writer, etc... can be used by our staff to post entries, and I've used the 'categories' area of that API to represent tags.  &lt;p&gt;This has caused me two issues:  &lt;p&gt;First, there are many more tags on most sites than there would be categories, so editing tools don't always provide the most useful UI for selecting tags.  &lt;p&gt;Second, categories are fairly static, but tags are continually being added... and most blogging software doesn't provide a mechanism for adding to your list of categories.  &lt;p&gt;I'm looking for thoughts, ideas, arguments... anything to help me figure out what the best way is to handle this move from categories to tags while still supporting the standard API mechanisms.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/categories-vs-tags-in-blogs-and-blog-editors/default.aspx</comments><link>http://duncanmackenzie.net/blog/categories-vs-tags-in-blogs-and-blog-editors/default.aspx</link><pubDate>Wed, 27 Sep 2006 15:48:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/categories-vs-tags-in-blogs-and-blog-editors/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>6</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/820/trackback/default.aspx</trackback:ping><category>10</category><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>OPML for the on10.net team</title><description>&lt;p&gt;I've created a quick and simple list of the 10 team's various blog feeds... so if you'd like to follow along with their personal musings (including mine) then you can &lt;a href="http://www.duncanmackenzie.net/on10OPML.xml" target="_blank"&gt;grab the OPML file here&lt;/a&gt;.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/OPML-for-on10net-team/default.aspx</comments><link>http://duncanmackenzie.net/blog/OPML-for-on10net-team/default.aspx</link><pubDate>Thu, 14 Sep 2006 20:13:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/OPML-for-on10net-team/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/815/trackback/default.aspx</trackback:ping><category>10</category><category>Blogging</category><category>XML</category></item><item><title>Windows Live Writer is a spammer!!</title><description>&lt;p&gt;I think we have a real design flaw here... one of those 'neat ideas on your dev box' that maybe shouldn't have really been implemented.&lt;/p&gt; &lt;p&gt;Check out this Technorati search for &lt;a href="http://technorati.com/search/Temporary%20Post%20Used%20For%20Style%20Detection%20" target="_blank"&gt;Temporary Post Used For Style Detection&lt;/a&gt;&amp;nbsp;to see what I'm talking about. It isn't even something I get a choice about (every time I go to a different machine and configure&amp;nbsp;my blog, I get a test post...).&lt;/p&gt; &lt;p&gt;For more on the Window Live Writer, check out &lt;a href="http://on10.net/Blogs/TheShow/4891/" target="_blank"&gt;this video&lt;/a&gt; on on10.net :)&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Windows-Live-Writer-is-a-spammer/default.aspx</comments><link>http://duncanmackenzie.net/blog/Windows-Live-Writer-is-a-spammer/default.aspx</link><pubDate>Mon, 11 Sep 2006 17:16:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Windows-Live-Writer-is-a-spammer/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/807/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Web Development</category><category>XML</category></item><item><title>How embarrassing, comments were broken on my new blog for over a day!</title><description>&lt;p&gt; Fixed now though... sorry to anyone who posted a comment (and received a nice "your comment was posted!") ... it was lost into the magical ether.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/How-embarrassing-comments-were-broken-on-my-new-blog-for-over-a-day/default.aspx</comments><link>http://duncanmackenzie.net/blog/How-embarrassing-comments-were-broken-on-my-new-blog-for-over-a-day/default.aspx</link><pubDate>Sun, 10 Sep 2006 08:00:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/How-embarrassing-comments-were-broken-on-my-new-blog-for-over-a-day/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/804/trackback/default.aspx</trackback:ping><category>Blogging</category><category>XML</category></item><item><title>WPF/Avalon seems so easy, it might be time for me to try it out :)</title><description>&lt;p&gt;I was browsing on &lt;a href="http://www.xamlog.com"&gt;www.xamlog.com&lt;/a&gt; and I found this tutorial on "&lt;a href="http://www.xamlog.com/2006/07/30/reflection-using-visual-brush-and-opacity-mask/" target="_blank"&gt;Reflection using Visual Brush and Opacity Mask&lt;/a&gt;", which shows you how to produce this effect:&lt;/p&gt; &lt;p&gt;&lt;img height="208" src="http://www.xamlog.com/wp-content/uploads/2006/07/reflection_08.jpg" width="240" /&gt; &lt;/p&gt; &lt;p&gt;with very little code/markup.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Hmm... now that I finally have Vista up and running, it might be worth giving it a try.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/WPF-Avalon-seems-so-easy-it-might-be-time-for-me-to-try-it-out/default.aspx</comments><link>http://duncanmackenzie.net/blog/WPF-Avalon-seems-so-easy-it-might-be-time-for-me-to-try-it-out/default.aspx</link><pubDate>Wed, 06 Sep 2006 20:13:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/WPF-Avalon-seems-so-easy-it-might-be-time-for-me-to-try-it-out/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>2</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/800/trackback/default.aspx</trackback:ping><category>.NET</category><category>Coding4Fun</category><category>XML</category></item><item><title>Learn a bit about how on10.net was made</title><description>&lt;p&gt;
				&lt;a href="http://channel9.msdn.com/showpost.aspx?postid=171265" target="_blank"&gt;Interview with the dev team&lt;/a&gt; (including me) is up on Channel 9&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Learn-a-bit-about-how-on10net-was-made/default.aspx</comments><link>http://duncanmackenzie.net/blog/Learn-a-bit-about-how-on10net-was-made/default.aspx</link><pubDate>Mon, 13 Mar 2006 17:11:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Learn-a-bit-about-how-on10net-was-made/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/708/trackback/default.aspx</trackback:ping><category>.NET</category><category>10</category><category>Blogging</category><category>Coding4Fun</category><category>Personal Musings</category><category>Syndication</category><category>Web Development</category><category>XML</category></item><item><title>Have you tried my RSS editor? Comments?</title><description>&lt;p&gt;Ok, so I'm fishing for comments... not compliments at least, but I'm still fishing... I've seen a fair bit of traffic to &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2005/12/07/3360.aspx" target="_blank"&gt;the install point &lt;/a&gt;but not a single email or blog comment about this app... go ahead fire away (and yes, I know that it doesn't do Atom feeds... yet).&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Have-you-tried-my-RSS-editor-Comments/default.aspx</comments><link>http://duncanmackenzie.net/blog/Have-you-tried-my-RSS-editor-Comments/default.aspx</link><pubDate>Thu, 05 Jan 2006 05:50:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Have-you-tried-my-RSS-editor-Comments/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/670/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Syndication</category><category>Visual C#</category><category>XML</category></item><item><title>Updated my personal site to use the Firefox/IE7 feed icons...</title><description>&lt;p&gt;As per the blog entry "&lt;a href="http://blogs.msdn.com/justsean/archive/2005/12/30/508181.aspx" title="Microsoft WebBlogs"&gt;Feed icons&lt;/a&gt;" and using icons pulled from the new &lt;a href="http://www.feedicons.com" target="_blank"&gt;feedicons&lt;/a&gt; site. Hopefully &lt;a href="http://msdn.microsoft.com" target="_blank"&gt;MSDN&lt;/a&gt; will follow suit as well, which would probably be pretty easy... it looks like they are mostly linking every instance of the 'old' RSS icon to the same graphic. I'll suggest it and we'll see what happens.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Updated-my-personal-site-to-use-the-Firefox-IE7-feed-icons/default.aspx</comments><link>http://duncanmackenzie.net/blog/Updated-my-personal-site-to-use-the-Firefox-IE7-feed-icons/default.aspx</link><pubDate>Sat, 31 Dec 2005 03:14:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Updated-my-personal-site-to-use-the-Firefox-IE7-feed-icons/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/668/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>Immediate Action Feeds</title><description>&lt;p&gt;
				&lt;a href="http://www.acmebinary.com/blogs/kent" target="_blank"&gt;Kent&lt;/a&gt; pointed me to &lt;a href="http://www.xml.com/pub/a/2005/12/14/putting-rss-to-work-immediate-action-feeds.html" target="_blank"&gt;this article on xml.com&lt;/a&gt;, talking about the benefits of having direct actions available as links in your feeds. This is a good idea, but it is a good idea for any HTML content. If you are going to have a link at the bottom of a MSDN page saying "give us feedback", it would be best to either make sure that link takes the user directly to a form to enter feedback or instead to let them enter their feedback right there on the page. Good stuff all around, but in the context of feeds I have a problem with the way it is implemented.&lt;/p&gt; &lt;p&gt;The suggestion in the article, and it works just fine, is to just add these immediate action links into the body of your feed item. This will seem like a meaningless distinction to some, but to me that is not the best way to go. The links are about the content of the post; they themselves are not the content, so &lt;strong&gt;they don't belong in the content&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Having them in the markup of the post means that every feed producer will put their 'actions' wherever they want them, and you can bet it won't be in any consistent fashion. Instead, what I would like to see is a list of 'actions' as a separate part of the feed item. Then the software that is displaying the feed could implement a common method of displaying the list of actions associated with a specific item. In one application this might be a right-click menu option, while in another it could be a sidebar along side the post.... but because the actions are clearly separated from the content it opens up the possibility of displaying them in whatever fashion the application author believes will be most usable.&lt;/p&gt; &lt;p&gt;So, instead of this&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;lt;item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;New Album out by GreenDay&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;Cool new album hits stores today....&amp;lt;br /&amp;gt;&amp;lt;a href="..."&amp;gt;buy it&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.musicsite.com/newalbumout.aspx&amp;lt;/link&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;guid isPermaLink="true"&amp;gt;http://www.musicsite.com/newalbumout.aspx&amp;lt;/guid&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;Tue, 25 Oct 2005 22:54:16 GMT&amp;lt;/pubDate&amp;gt;&lt;br /&gt;&amp;lt;/item&amp;gt;&lt;/p&gt; &lt;p&gt;We would have this...&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;lt;item&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;New Album out by GreenDay&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;Cool new album hits stores today....&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/description&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link&amp;gt;http://www.musicsite.com/newalbumout.aspx&amp;lt;/link&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;ia:actions&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ia:action name="Buy It"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http://www.musicsite.com/buy.aspx?id=greenday&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ia:action&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ia:actions&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;guid isPermaLink="true"&amp;gt;http://www.musicsite.com/newalbumout.aspx&amp;lt;/guid&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pubDate&amp;gt;Tue, 25 Oct 2005 22:54:16 GMT&amp;lt;/pubDate&amp;gt;&lt;br /&gt;&amp;lt;/item&amp;gt;&lt;/p&gt; &lt;p&gt;Now it is easy to add additional actions without any change to the content&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ia:actions&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ia:action name="Buy It"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http://www.musicsite.com/buy.aspx?id=greenday&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ia:action&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;ia:action name="Email this Post"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; http://www.musicsite.com/email.aspx?id=greenday&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ia:action&amp;gt;&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ia:actions&amp;gt;&lt;br /&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Immediate-Action-Feeds/default.aspx</comments><link>http://duncanmackenzie.net/blog/Immediate-Action-Feeds/default.aspx</link><pubDate>Sat, 17 Dec 2005 08:27:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Immediate-Action-Feeds/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/663/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>application/rss+xml vs. text/xml</title><description>&lt;p&gt;I've been working on some feed support in MSDN's new online platform (a beta of which is running &lt;a href="http://msdn2.microsoft.com" target="_blank"&gt;http://msdn2.microsoft.com&lt;/a&gt;) and I had to decide what content-type to use when outputting a RSS feed. I knew this was a contentious issue in the past, but I thought it might have been resolved so I did some browsing of specs and discussions and ended up with the following links:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.intertwingly.net/blog/1766.html" target="_blank"&gt;A discussion on Sam Ruby's blog around content-type&lt;/a&gt; (the comments are the interesting part)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.law.harvard.edu/crimson1/2004/05/06#a1519" target="_blank"&gt;This post by Dave Winer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;I'm sure I could find more, but it appears this was never really resolved...  using application/xml seems the most 'proper', but the concern is that some browsers don't know how to handle it ... so the other choice is text/xml (specifically text/xml; charset=utf-8 or else the charset will default to US-ASCII). Hmm... which to choose? Even our own sites have multiple implementations:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;The &lt;a href="http://msdn.microsoft.com/rss.xml" target="_blank"&gt;main MSDN feed&lt;/a&gt; is application/xml&lt;/li&gt;
&lt;li&gt;while the &lt;a href="http://msdn.microsoft.com/msdnmag/rss/rss.aspx?Sub=Service Station" target="_blank"&gt;MSDN Magazine's&lt;/a&gt; (which is dynamically generated using ASP.NET) is output as text/xml; charset=utf-8&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Interestingly enough, I found one feed that used application/rss+xml (&lt;a href="http://www.intertwingly.net/blog/index.rss2" target="_blank"&gt;Sam's RSS 2.0 feed&lt;/a&gt;) which I think is probably not the best choice since that content type was never officially registered, and it was the only feed I hit that IE didn't understand (and therefore tried to just download).&lt;/p&gt;

&lt;p&gt;I think I will go with "application/xml" which has the best features in my opinion.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It clearly indicates that this is not just text, so it should avoid issues with proxies messing with the characters,&lt;/li&gt;
&lt;li&gt;it leaves the character set data in the xml declaration, avoiding a possible conflict if I specify one in the http headers that is different than what the feed specifies,&lt;/li&gt;
&lt;li&gt;it displays correctly in IE and Firefox, and&lt;/li&gt;
&lt;li&gt;it is consistent with what we are doing today with the MSDN main feed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, what about those in-page links we have?  &amp;lt;link rel="alternate" type="application/rss+xml" title="blah" href="rss.xml"  /&amp;gt; .... perhaps they should be just "application/xml" as well?&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/application-rss+xml-vs-text-xml/default.aspx</comments><link>http://duncanmackenzie.net/blog/application-rss+xml-vs-text-xml/default.aspx</link><pubDate>Mon, 12 Dec 2005 16:03:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/application-rss+xml-vs-text-xml/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>11</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/659/trackback/default.aspx</trackback:ping><category>Blogging</category><category>MSDN Development</category><category>Syndication</category><category>Web Development</category><category>XML</category></item><item><title>More on that RSS editor...</title><description>&lt;p&gt;In the end, MSDN didn't end up needing &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2005/11/01/3184.aspx" target="_blank"&gt;the RSS editor I wrote&lt;/a&gt;, so I've stripped out the features and content specific to their needs and started turning it into a more generic RSS creation tool. If you'd like to see it, as it is, you can run it from &lt;a href="http://www.duncanmackenzie.net/FeedWriter/default.aspx" target="_blank"&gt;a ClickOnce install point here on my site&lt;/a&gt;. There are more features coming, and I'm revamping the style and behavior of the category system.... but you can try it out against copies of your own feeds or click File | New Feed to make new ones. Check out the Validate option on the menu, it will send whatever feed you have open to a web service enabled version of the &lt;a href="http://www.feedvalidator.org"&gt;feedvalidator.org &lt;/a&gt;system (coded up by &lt;a href="http://www.acmebinary.com/blogs/kent/default.aspx"&gt;Kent Sharkey&lt;/a&gt;), allowing you to check the validatity of your RSS &lt;b&gt;without&lt;/b&gt; having to publish the file anywhere.&lt;/p&gt; &lt;p&gt;Note: If you have Beta 2 of the .NET Framework installed, the Click Once application will not install or run correctly. In this case, you need to run the VS remove tool (available from &lt;a href="http://msdn.microsoft.com/vstudio/support/uninstall/default.aspx" target="_blank"&gt;here&lt;/a&gt;)&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/More-on-that-RSS-editor/default.aspx</comments><link>http://duncanmackenzie.net/blog/More-on-that-RSS-editor/default.aspx</link><pubDate>Thu, 08 Dec 2005 05:28:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/More-on-that-RSS-editor/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>10</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/656/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Coding4Fun</category><category>Syndication</category><category>Visual C#</category><category>XML</category></item><item><title>Trying to improve the standards compliance of my blog, but the asp:Calendar is getting in my way!</title><description>&lt;p&gt;I've been trying to fix some XHTML issues on my blog, but two pieces of technology are thwarting my plans.... first, there is the text editor in .Text (FreeTextBox) which appears to be making the first anchor or image tag in the post uppercase, even though I have its XHTML support enabled... (so my first link is &amp;lt;A href=....&amp;gt;, instead of &amp;lt;a href=...&amp;gt;) and the second is the ASP.NET Calendar (1.1 framework version).&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblogs.duncanmackenzie.net%2Fduncanma%2Fdefault.aspx&amp;amp;charset=%28detect+automatically%29&amp;amp;doctype=Inline" target="_blank"&gt;Page with calendar&lt;/a&gt; produces 71 errors&lt;/li&gt; &lt;li&gt;&lt;a href="http://validator.w3.org/check?uri=http%3A%2F%2Fblogs.duncanmackenzie.net%2Fduncanma%2Fdefault.aspx%3FCalendar%3DNo&amp;amp;charset=%28detect+automatically%29&amp;amp;doctype=Inline" target="_blank"&gt;Page without calendar&lt;/a&gt; produces 13, all due to the first tag as uppercase problem I think&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;There are enough problems for me to solve around producing valid pages with dynamic content, now I have to either find a replacement calendar or move the whole site up to the 2.0 framework :)&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Trying-to-improve-the-standards-compliance-of-my-blog-but-the-aspCalendar-is-getting-in-my-way/default.aspx</comments><link>http://duncanmackenzie.net/blog/Trying-to-improve-the-standards-compliance-of-my-blog-but-the-aspCalendar-is-getting-in-my-way/default.aspx</link><pubDate>Mon, 05 Dec 2005 05:58:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Trying-to-improve-the-standards-compliance-of-my-blog-but-the-aspCalendar-is-getting-in-my-way/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/654/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Web Development</category><category>XML</category></item><item><title>Added category elements to my RSS feed, since I wasn't playing Xbox 360</title><description>&lt;p&gt;About a year or so back I added &amp;lt;category&amp;gt; elements to the MSDN RSS feeds, which seemed like an obvious addition, but it wasn't until recently that I noticed that my own feeds (coming out of my .Text 0.95 based blogging engine) didn't have categories specified in them at all. Not in &lt;a href="http://blogs.duncanmackenzie.net/MainFeed.aspx" target="_blank"&gt;the main feed&lt;/a&gt; or in the &lt;a href="http://blogs.duncanmackenzie.net/duncanma/rss.aspx" target="_blank"&gt;per-blog feeds&lt;/a&gt;... &lt;/p&gt; &lt;p&gt;This seemed really odd to me, since much of the UI of the .Text posting page, editing page, and even the blog skins themselves is dedicated to the listing and selecting of categories. Obviously, categories are seen as important information about blog entries, so why not include them in the RSS feeds? Oh well, there is little point in wondering about these sorts of things, not when you have the source, so I added category elements to my main and individual feeds. I haven't added them to the per-category feeds yet, or to the ATOM feeds, but I'll get to those in the near future.&lt;/p&gt; &lt;p&gt;If you haven't looked at the .Text source yourself, you might be wondering why adding these elements to one feed wouldn't have added them to all of the feeds, because all RSS feeds are probably running through the same code path. While this is mostly true, they are running through the same ASP.NET handler and through the same feed generation code, the category-based feeds use a different stored procedure to retrieve their entries than the feeds that I have updated, and I had to make a change to the database query to return the list of categories along with each item. What I ended up doing, (and I'm not sure about the performance of this code but it is so highly cached that I'm not particularly worried about it for this use), was using a Function to retrieve the list of categories as a semi-colon deliminated string given a PostID (note that if you host multiple blogs on your .Text instance that this function should take both a BlogID &lt;strong&gt;and&lt;/strong&gt; a PostID... I'll have to update this for the multi-blog case).&lt;/p&gt;&lt;pre&gt; &lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;CREATE&lt;/span&gt; &lt;span class="TSql_ReservedKeyword"&gt;FUNCTION&lt;/span&gt; blog_GetCategoryTitles (@PostID &lt;span class="TSql_DataType"&gt;int&lt;/span&gt;) RETURNS &lt;span class="TSql_DataType"&gt;nvarchar&lt;/span&gt;(4000)&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;BEGIN&lt;/span&gt;&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;DECLARE&lt;/span&gt; @CategoryList &lt;span class="TSql_DataType"&gt;nvarchar&lt;/span&gt;(4000)&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;SELECT&lt;/span&gt; @CategoryList = &lt;span class="TSql_Function"&gt;COALESCE&lt;/span&gt;&lt;br /&gt;(@CategoryList + &lt;span class="TSql_String"&gt;';'&lt;/span&gt;, &lt;span class="TSql_String"&gt;''&lt;/span&gt;) +&lt;br /&gt; blog_LinkCategories.Title&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;FROM&lt;/span&gt; blog_Content&lt;br /&gt; &lt;span class="TSql_Function"&gt;LEFT&lt;/span&gt; &lt;span class="TSql_Operator"&gt;OUTER&lt;/span&gt; &lt;span class="TSql_Operator"&gt;JOIN&lt;/span&gt; blog_Links &lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;on&lt;/span&gt; blog_Links.PostID = blog_Content.ID&lt;br /&gt; &lt;span class="TSql_Function"&gt;LEFT&lt;/span&gt; &lt;span class="TSql_Operator"&gt;OUTER&lt;/span&gt; &lt;span class="TSql_Operator"&gt;JOIN&lt;/span&gt; blog_LinkCategories&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;on&lt;/span&gt; blog_Links.CategoryID = blog_LinkCategories.CategoryID&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;WHERE&lt;/span&gt; blog_Content.ID=@PostID &lt;span class="TSql_Operator"&gt;AND&lt;/span&gt;&lt;br /&gt; blog_Content.BlogID = blog_Links.BlogID &lt;span class="TSql_Operator"&gt;AND&lt;/span&gt;&lt;br /&gt; blog_LinkCategories.Title != &lt;span class="TSql_String"&gt;''&lt;/span&gt;&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;RETURN&lt;/span&gt; @CategoryList&lt;br /&gt; &lt;span class="TSql_ReservedKeyword"&gt;END&lt;/span&gt;&lt;br /&gt; &lt;/pre&gt; &lt;p&gt;&lt;i&gt;thanks to &lt;a href="http://www.sqlteam.com/item.asp?ItemID=2368" target="_blank"&gt;Garth's 2001 article from SQLTeam.com for showing me COALESCE being used for this purpose...&lt;/a&gt;&lt;/i&gt;&lt;/p&gt; &lt;p&gt;and then modifying the queries that retrieved entries to also return blog_GetCategoryTitles(&amp;lt;PostID&amp;gt;), and then modify the RSS writer to output the categories if any were returned.&lt;/p&gt; &lt;p&gt;Interesting note, I figured the omission of category data from the feeds in .Text was a simple error and that it would have been added along the way to Community Server, but I noticed that the feeds on &lt;a href="http://blogs.msdn.com/alexbarn/rss.aspx" target="_blank"&gt;blogs.msdn.com&lt;/a&gt; don't appear to have category data either... is category information not considered useful in feeds?&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Added-category-elements-to-my-RSS-feed-since-I-wasnt-playing-Xbox-360/default.aspx</comments><link>http://duncanmackenzie.net/blog/Added-category-elements-to-my-RSS-feed-since-I-wasnt-playing-Xbox-360/default.aspx</link><pubDate>Sat, 26 Nov 2005 09:03:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Added-category-elements-to-my-RSS-feed-since-I-wasnt-playing-Xbox-360/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/652/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>RSS feed authoring for those without blog software or an enjoyment of typing angle brackets</title><description>&lt;p&gt;Blogs and blogging software seem to be everywhere these days, and RSS has been a top buzzword for quite some time, everyone and their dog wants to take advantage of this new trend and technology. The problem is, it isn't a simple process to create and maintain a valid RSS file. If you aren't willing to run a complete blogging system or if you aren't capable of hand-editing XML, then you don't have a lot of options. For most of the folks that will read this blog entry, you probably don't have this problem, producing RSS 2.0 wouldn't be much of an issue for a developer, but there are times when we want less technical folks to be able to author their own feeds without any assistance. At MSDN we started thinking about this very problem ourselves recently when we decided that, in addition to &lt;a href="http://msdn.microsoft.com/aboutmsdn/rss"&gt;all the feeds that come out of our content systems&lt;/a&gt;, there was a need to create some small feeds that didn't necessarily fit into our larger content systems. Handing off the task of feed creation to notepad or Front Page wasn't an appealing thought and that path would probably result in a lot of xml editing errors and invalid feeds.&lt;/p&gt; &lt;p&gt;This problem happened to line up with a sample I had been thinking of though, so I wrote a quick app using VC# Express 2005 to try and help out; a Feed Writer that allows you to create new RSS 2.0 feeds, edit existing ones, and even import entries from one feed to another. I stuck to a tried and true UI structure, tree along the left side then entry fields on the right:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.duncanmackenzie.net/images/FeedWriter.png"&gt;&lt;img src="http://www.duncanmackenzie.net/images/FeedWriter_small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This app has been developed &lt;b&gt;without&lt;/b&gt; the general user in mind, MSDN/TechNet were the targets and because of that there are some fields in this UI that are only relevant to the needs of those groups. For example, the list of attributes you can see on the lower-right is specific to the needs of MSDN and TechNet, who need to markup the feed entries with the appropriate choices. The "Type" and "HeadlineImage" fields are also specific to MSDN feeds, I'm planning to adapt it to work with 'standard' RSS 2.0 items and the category element to make it more general purpose, but for now I thought I'd show you the version I already have running.&lt;/p&gt; &lt;p&gt;In a rather backwards fashion, I'm going to finish up this as a sample and write the article, now that I've finished the actual practical version of the same system... but it will all work out in the end.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/RSS-feed-authoring-for-those-without-blog-software-or-an-enjoyment-of-typing-angle-brackets/default.aspx</comments><link>http://duncanmackenzie.net/blog/RSS-feed-authoring-for-those-without-blog-software-or-an-enjoyment-of-typing-angle-brackets/default.aspx</link><pubDate>Wed, 02 Nov 2005 04:56:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/RSS-feed-authoring-for-those-without-blog-software-or-an-enjoyment-of-typing-angle-brackets/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/642/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>MSDN Development</category><category>Syndication</category><category>Visual C#</category><category>XML</category></item><item><title>Moved my .Text blog from Atom 0.3 to Atom 1.0</title><description>&lt;p&gt;I only recently noticed that my blog software (.Text 0.95) had &lt;a href="http://blogs.duncanmackenzie.net/duncanma/atom.aspx" target="_blank"&gt;atom support&lt;/a&gt; built in, so I added a button to &lt;a href="http://blogs.duncanmackenzie.net/duncanma/" target="_blank"&gt;my main page&lt;/a&gt;, and then I noticed it was Atom 0.3. Since 0.3 was &lt;a href="http://www.feedvalidator.org/news/archives/2005/09/15/atom_03_deprecated.html" target="_blank"&gt;recently deprecated&lt;/a&gt;, I updated the Atom generating code to output 1.0 instead and voila;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.feedvalidator.org/check.cgi?url=http://blogs.duncanmackenzie.net/duncanma/atom.aspx"&gt;&lt;img title="Validate my Atom 1.0 feed" alt="[Valid Atom 1.0]" src="/images/valid-atom.png" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Much thanks to rakaz's &lt;a href="http://www.rakaz.nl/nucleus/item/103" target="_blank"&gt;great guide on moving from 0.3 to 1.0&lt;/a&gt;, which enabled me to update my code with almost no knowledge of Atom 0.3 or 1.0 :)&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Moved-my-Text-blog-from-Atom-03-to-Atom-10/default.aspx</comments><link>http://duncanmackenzie.net/blog/Moved-my-Text-blog-from-Atom-03-to-Atom-10/default.aspx</link><pubDate>Wed, 02 Nov 2005 04:11:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Moved-my-Text-blog-from-Atom-03-to-Atom-10/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/641/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Personal Musings</category><category>Syndication</category><category>Visual C#</category><category>XML</category></item><item><title>Have you heard about SoloSub?</title><description>&lt;p&gt;I was considering adding one (or more) of the many aggregator-buttons (subscribe to this feed in newsgator, add this feed to your MSN start page, etc.) when I found this, one button that handles all of the most popular aggregators through a single link.&lt;/p&gt; &lt;p&gt;&lt;a title="Subscribe to this Feed" href="http://solosub.com/sub/http://blogs.duncanmackenzie.net/duncanma/rss.aspx"&gt;&lt;img alt="subscribe to this feed" src="http://images.solosub.com/feed_button.gif" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Check out &lt;a href="http://solosub.com" target="_blank"&gt;http://solosub.com&lt;/a&gt; for more info...&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Have-you-heard-about-SoloSub/default.aspx</comments><link>http://duncanmackenzie.net/blog/Have-you-heard-about-SoloSub/default.aspx</link><pubDate>Wed, 26 Oct 2005 02:57:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Have-you-heard-about-SoloSub/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/634/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Personal Musings</category><category>Syndication</category><category>XML</category></item><item><title>Added Atom support to the FlairMaker... my version at least</title><description>&lt;p&gt;Nick, from "&lt;a href="http://thecodingmonkey.blogspot.com" target="_blank"&gt;The Coding Monkey&lt;/a&gt;" mentioned that he would like to see Atom support in the &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2005/10/15/3101.aspx" target="_blank"&gt;FlairMaker&lt;/a&gt;, so ... having no real reason not to, and having an extra 15 minutes after the kids went to sleep before I started cleaning up the house, I added it...&lt;/p&gt; &lt;p&gt;&lt;a href="http://thecodingmonkey.blogspot.com"&gt;&lt;img src="http://eris1109.si-xios.info/FlairMaker.ashx?atom=http://thecodingmonkey.blogspot.com/atom.xml" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Of course, I've just added this to my forked version of &lt;a href="http://www.acmebinary.com/blogs/kent/archive/2005/10/07/273.aspx" target="_blank"&gt;Kent's original code&lt;/a&gt;... so any feature I add that he likes will need to manually added into his version... bad software development practice, but hey we're just playing around here so you should be expecting too much.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;I also modified the code to pull the blog's title from the feed (Atom or RSS) and stick it at the bottom. Not that useful of a feature for the Coding 4 Fun version, since it is always pointing at the same feed... but useful for mine if people want to use it for their own feeds&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Added-Atom-support-to-the-FlairMaker-my-version-at-least/default.aspx</comments><link>http://duncanmackenzie.net/blog/Added-Atom-support-to-the-FlairMaker-my-version-at-least/default.aspx</link><pubDate>Sun, 23 Oct 2005 05:19:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Added-Atom-support-to-the-FlairMaker-my-version-at-least/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>1</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/632/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Coding4Fun</category><category>Syndication</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item><item><title>After some discussions with Sam Ruby and others on the FeedValidator mailing list, the MSDN RSS feed validates as is...</title><description>&lt;p&gt;In &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2005/09/26/2940.aspx" target="_blank"&gt;an earlier post&lt;/a&gt;, I discussed the fact that the MSDN feeds were failing to validate due to a MIME type that included parameters (charset in this case, like 'text/html ;charset=utf-8'), but I also posted a query about this issue into &lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_id=8314757&amp;forum_id=37467" target="_blank"&gt;the listserv for FeedValidator.org&lt;/a&gt;. Sam mentioned it &lt;a href="http://www.intertwingly.net/blog/2005/09/27/Enclosure-type-parameters" target="_blank"&gt;on his blog&lt;/a&gt;, and then went ahead and updated the validator to recognize a MIME type with parameter as valid.&lt;/p&gt;

&lt;p&gt;In the meantime, I updated the MSDN generator to strip out the parameters :), but I still think they are technically valid so I'm glad the feed &lt;a href="http://www.feedvalidator.org/check.cgi?url=http%3A%2F%2Fmsdn.microsoft.com%2Frss.xml" target="_blank"&gt;validates&lt;/a&gt; as it is today (with params) and as it will exist in the near future with the MIME types stripped down to just type/subtype.&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/After-some-discussions-with-Sam-Ruby-and-others-on-the-FeedValidator-mailing-list-the-MSDN-RSS-feed-validates-as-is/default.aspx</comments><link>http://duncanmackenzie.net/blog/After-some-discussions-with-Sam-Ruby-and-others-on-the-FeedValidator-mailing-list-the-MSDN-RSS-feed-validates-as-is/default.aspx</link><pubDate>Wed, 28 Sep 2005 02:39:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/After-some-discussions-with-Sam-Ruby-and-others-on-the-FeedValidator-mailing-list-the-MSDN-RSS-feed-validates-as-is/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/619/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>MSDN Development</category><category>Syndication</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item><item><title>A bug in my RSS generator, but is it really invalid?</title><description>&lt;p&gt;The RSS generator for MSDN, creator of &lt;a href="http://msdn.microsoft.com/rss.xml" target="_blank"&gt;this feed&lt;/a&gt;, and many more ... has a small problem. Way upstream, when various people inside the company enter information about an upcoming headline, they have the ability to specify a URL to a download. The intent was for this to be a URL to an actual downloadable file, so when I generate an RSS item from that headline entry, I take that URL and turn it into an enclosure entry in the RSS file.&lt;/p&gt;

&lt;pre&gt;
&lt;p&gt;    &amp;lt;item&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;title&amp;gt;Read about Atlas - Ajax for ASP.NET&amp;lt;/title&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;description&amp;gt;ASP.NET &amp;quot;Atlas&amp;quot; is a package of 
&lt;br /&gt;new Web development technologies that integrates an extensive set of 
&lt;br /&gt;client script libraries with the rich, server-based development 
&lt;br /&gt;platform of ASP.NET 2.0. &amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;link&amp;gt;http://msdn.microsoft.com/asp.net/future/&amp;lt;/link&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;dc:creator&amp;gt;Microsoft Corporation&amp;lt;/dc:creator&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;category domain=&amp;quot;msdndomain:ContentType&amp;quot;&amp;gt;Link&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;category domain=&amp;quot;msdndomain:Audience&amp;quot;&amp;gt;Developers&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;category domain=&amp;quot;msdndomain:Hardware&amp;quot;&amp;gt;CPU&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;category domain=&amp;quot;msdndomain:Operating Systems&amp;quot;&amp;gt;Windows&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;category domain=&amp;quot;msdndomain:Subject&amp;quot;&amp;gt;Web development&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;msdn:headlineImage /&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;msdn:headlineIcon&amp;gt;http://msdn.microsoft.com/msdn-&lt;br /&gt;online/shared/graphics/icons/offsite.gif&amp;lt;/msdn:headlineIcon&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;msdn:contentType&amp;gt;Link&amp;lt;/msdn:contentType&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;msdn:simpleDate&amp;gt;Sep 19&amp;lt;/msdn:simpleDate&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &lt;span style="background-color: #FFFF00"&gt;&amp;lt;enclosure url=&amp;quot;&lt;br /&gt;
http://go.microsoft.com/fwlink/?LinkId=52384&amp;quot; &lt;br /&gt;length=&amp;quot;17437&amp;quot; &lt;br /&gt;type=&amp;quot;text/html; charset=utf-8&amp;quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;guid isPermaLink=&amp;quot;false&amp;quot;&amp;gt;Titan_2519&amp;lt;/guid&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;pubDate&amp;gt;Mon, 19 Sep 2005 18:20:40 GMT&amp;lt;/pubDate&amp;gt;&lt;br /&gt;
&lt;br /&gt;    &amp;lt;/item&amp;gt;&lt;br /&gt;
&lt;/p&gt;&lt;/pre&gt;


&lt;p&gt;This generally works fine, I make a HEAD request with that URL which gives me back the MIME type and the Content Length, both of which are needed for the enclosure element in the RSS item. Sometimes though, people put in a URL to the download's landing page, not the download itself. There are good reasons for this, as the download page often contains useful information and/or multiple localized versions of the download, but it was not what I expected. In this case, I put the enclosure in with the MIME type I get back from that URL, which ends up being 'text/html' and with a byte size that reflects the size of the landing page.&lt;/p&gt;

&lt;p&gt;This wasn't really what I wanted to happen, so I need to figure out a solution at my end, but what I noticed today and what has me a little puzzled is that at least two different validators (&lt;a href="http://rss.scripting.com/?url=http%3A%2F%2Fmsdn.microsoft.com%2Frss.xml" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fmsdn.microsoft.com%2Frss.xml" target="_blank"&gt;here&lt;/a&gt;) report these types of entries as validation errors. The error they specify is that text/html is not a valid MIME type.... but, according to &lt;a href="http://www.ietf.org/rfc/rfc2854.txt" target="_blank"&gt;the RFC(s)&lt;/a&gt; (see 4.1.2 of &lt;a href="http://www.rfc-editor.org/rfc/rfc2046.txt" target="_blank"&gt;this RFC&lt;/a&gt;) and other sources, it most certainly &lt;b&gt;is&lt;/b&gt; a valid type. So, is there a hidden rule in RSS that enclosures have to fall within some special subset of MIME types, or are both of these validators broken? Sure, in this case it wasn't really what I wanted, but what if I really did have a text/html document for you to download?&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/A-bug-in-my-RSS-generator-but-is-it-really-invalid/default.aspx</comments><link>http://duncanmackenzie.net/blog/A-bug-in-my-RSS-generator-but-is-it-really-invalid/default.aspx</link><pubDate>Tue, 27 Sep 2005 04:36:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/A-bug-in-my-RSS-generator-but-is-it-really-invalid/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>2</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/618/trackback/default.aspx</trackback:ping><category>Blogging</category><category>MSDN Development</category><category>Syndication</category><category>XML</category></item><item><title>Long overdue, but here is the source for the "blog copier"</title><description>&lt;p&gt;In &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2004/08/25/589.aspx" target="_blank"&gt;my first post on this site&lt;/a&gt;, I mentioned an application that I wrote to copy blog posts from one .Text server to another. Overall, I didn't think the application had any real use after the web service I used was removed from the weblogs.asp.net servers, but I'm posting it anyway for anyone who might find it useful.&lt;/p&gt;

&lt;p&gt;Source here: &lt;a href="http://www.duncanmackenzie.net/Samples/#blogcopy" target="_blank"&gt;http://www.duncanmackenzie.net/Samples/#blogcopy&lt;/a&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Long-overdue-but-here-is-the-source-for-the-blog-copier/default.aspx</comments><link>http://duncanmackenzie.net/blog/Long-overdue-but-here-is-the-source-for-the-blog-copier/default.aspx</link><pubDate>Sat, 02 Apr 2005 06:32:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Long-overdue-but-here-is-the-source-for-the-blog-copier/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/574/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>Just pulled down the CS 1.0 source... now to start working on a migration plan</title><description>&lt;p&gt;Currently I'm running .Text .94 + a bunch of private modifications and some version of CS:Forums + a bunch of private modifications... so &lt;a href="http://weblogs.asp.net/rhoward/archive/2005/02/25/380444.aspx" target="_blank"&gt;now that CS 1.0's source is out&lt;/a&gt;, I want to incorporate my mods into the combined package and then migrate my data and get my site up and running on the new stuff. As cool as that is, and while I'm sure it has excellent tools/scripts for upgrading, I'm not looking forward to it. It was hard enough to get my site set up now, with blogs.duncanmackenzie.net running as its own app domain and then trying to make the Forums code work when the application started at the root not at /Forums. Anyway, suffice it to say I don't expect to upgrade right away, but maybe I'll have a copy of the site upgraded and sitting on my dev box within the next week.... &lt;/p&gt;
&lt;p&gt;Anyone else gone through the upgrade/migration and have any thoughts or comments?&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Just-pulled-down-the-CS-10-source-now-to-start-working-on-a-migration-plan/default.aspx</comments><link>http://duncanmackenzie.net/blog/Just-pulled-down-the-CS-10-source-now-to-start-working-on-a-migration-plan/default.aspx</link><pubDate>Sun, 27 Feb 2005 03:38:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Just-pulled-down-the-CS-10-source-now-to-start-working-on-a-migration-plan/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>2</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/557/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Syndication</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item><item><title>Community Server 1.0 Released</title><description>&lt;blockquote&gt;
&lt;p&gt;Telligent Systems, the company founded by former Microsoftie (and ASP.NET whiz kid) Rob Howard, has finally released Community Server 1.0. Community Server combines the functionality of forums (based on the ASP.NET forums engine Rob worked on while at Microsoft), blogs (based on the very popular .Text engine created by Scott Watermasysk, who now works for Telligent), and photo gallery (based on nGallery, created by Jason Alexander, who's also one of the brains at Telligent).&lt;/p&gt;

&lt;p&gt;Congrats to the Telligent team...I'm looking forward to trying out CS 1.0 for my personal blog, which is currently running on an older version of .Text.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://weblogs.asp.net/gduthie/archive/2005/02/19/376610.aspx" target="_blank"&gt;from G. Andrew Duthie's blog....&lt;/a&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Community-Server-10-Released/default.aspx</comments><link>http://duncanmackenzie.net/blog/Community-Server-10-Released/default.aspx</link><pubDate>Sat, 19 Feb 2005 16:10:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Community-Server-10-Released/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/548/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item><item><title>Halo 2 Stats via RSS... an interesting idea that I think could be improved </title><description>&lt;p&gt;I like that Bungie is exposing your stats as RSS (&lt;a href="http://www.duncanmackenzie.net/halo2.aspx" target="_blank"&gt;see mine here&lt;/a&gt;), but it would be cooler if they had added some additional elements and attributes to the feed to describe the games in a more usable format, rather than just in HTML... instead of;&lt;/p&gt;
		&lt;pre&gt;
				&lt;font color="#ffa500"&gt;
						&lt;font color="#000080"&gt;&amp;lt;item&amp;gt;&lt;/font&gt;
						&lt;br /&gt;
				&lt;/font&gt; &lt;font color="#000080"&gt;&amp;lt;title&amp;gt;&lt;/font&gt;Rumble Pit: Oddball on Ascension&lt;font color="#000080"&gt;&amp;lt;/title&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;link&amp;gt;&lt;/font&gt;http://www.bungie.net/stats/gamestats.aspx?gameid=8132172&amp;amp;player=Festive Turkey&lt;font color="#000080"&gt;&amp;lt;/link&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;pubDate&amp;gt;&lt;/font&gt;Fri, 19 Nov 2004 07:45:07 GMT&lt;font color="#000080"&gt;&amp;lt;/pubDate&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;guid&amp;gt;&lt;/font&gt;http://www.bungie.net/stats/gamestats.aspx?gameid=8132172&amp;amp;player=Festive Turkey&lt;font color="#000080"&gt;&amp;lt;/guid&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;description&amp;gt;&lt;/font&gt;&lt;br /&gt; Game played at Fri, 19 Nov 2004 07:45:07 GMT&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Playlist: Rumble Pit&amp;lt;br/&amp;gt;Oddball on Ascension&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt; &amp;lt;b&amp;gt;Gamertag (Team): Score, Kills, Deaths, Assists&amp;lt;/b&amp;gt; &lt;br /&gt; &amp;lt;br/&amp;gt;l obvious l (1): 59, 14, 9, 5&amp;lt;br/&amp;gt;ScottyAK (0): 52, 16, 10, 6&amp;lt;br/&amp;gt;&lt;br /&gt; BK Assassin (2): 29, 6, 9, 1&amp;lt;br/&amp;gt;MAXODeeZ (3): 18, 7, 12, 4&amp;lt;br/&amp;gt;&lt;br /&gt; BattlingWheel (4): 15, 10, 13, 5&amp;lt;br/&amp;gt;Festive Turkey (5): 6, 5, 11, 5&amp;lt;br/&amp;gt;&lt;br /&gt; snackasaurus (6): 0, 6, 7, 6&amp;lt;br/&amp;gt;LionWrath716 (7): 0, 1, 0, 0&amp;lt;br/&amp;gt; &lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#000080"&gt;&amp;lt;/item&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;they could add a namespace reference for Halo or Bungie.... and end up with...&lt;/p&gt;&lt;pre&gt;&lt;font color="#000080"&gt;&amp;lt;item&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;title&amp;gt;&lt;/font&gt;Rumble Pit: Oddball on Ascension&lt;font color="#000080"&gt;&amp;lt;/title&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;link&amp;gt;&lt;/font&gt;http://www.bungie.net/stats/gamestats.aspx?gameid=8132172&amp;amp;player=Festive Turkey&lt;font color="#000080"&gt;&amp;lt;/link&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;pubDate&amp;gt;&lt;/font&gt;Fri, 19 Nov 2004 07:45:07 GMT&lt;font color="#000080"&gt;&amp;lt;/pubDate&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;guid&amp;gt;&lt;/font&gt;http://www.bungie.net/stats/gamestats.aspx?gameid=8132172&amp;amp;player=Festive Turkey&lt;font color="#000080"&gt;&amp;lt;/guid&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;description&amp;gt;&lt;/font&gt;&lt;br /&gt; Game played at Fri, 19 Nov 2004 07:45:07 GMT&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Playlist: Rumble Pit&amp;lt;br/&amp;gt;Oddball on Ascension&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; &lt;br /&gt; &amp;lt;b&amp;gt;Gamertag (Team): Score, Kills, Deaths, Assists&amp;lt;/b&amp;gt; &lt;br /&gt; &amp;lt;br/&amp;gt;l obvious l (1): 59, 14, 9, 5&amp;lt;br/&amp;gt;ScottyAK (0): 52, 16, 10, 6&amp;lt;br/&amp;gt;&lt;br /&gt; BK Assassin (2): 29, 6, 9, 1&amp;lt;br/&amp;gt;MAXODeeZ (3): 18, 7, 12, 4&amp;lt;br/&amp;gt;&lt;br /&gt; BattlingWheel (4): 15, 10, 13, 5&amp;lt;br/&amp;gt;Festive Turkey (5): 6, 5, 11, 5&amp;lt;br/&amp;gt;&lt;br /&gt; snackasaurus (6): 0, 6, 7, 6&amp;lt;br/&amp;gt;LionWrath716 (7): 0, 1, 0, 0&amp;lt;br/&amp;gt; &lt;br /&gt; &lt;font color="#000080"&gt;&amp;lt;/description&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#0000ff"&gt;&amp;lt;bungie:game&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:datePlayed&amp;gt;&lt;/font&gt;Fri, 19 Nov 2004 07:45:07 GMT&lt;font color="#0000ff"&gt;&amp;lt;/bungie:datePlayed&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:playlist&amp;gt;&lt;/font&gt;Playlist: Rumble Pit&lt;font color="#0000ff"&gt;&amp;lt;/bungieplaylist&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:variant&amp;gt;&lt;/font&gt;Oddball&lt;font color="#0000ff"&gt;&amp;lt;/bungie:variant&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:map&amp;gt;&lt;/font&gt;Ascension&lt;font color="#0000ff"&gt;&amp;lt;/bungie:map&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:players&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:player&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:gamertag&amp;gt;&lt;/font&gt;Festive Turkey&lt;font color="#0000ff"&gt;&amp;lt;/bungie:gamertag&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:score&amp;gt;&lt;/font&gt;6&lt;font color="#0000ff"&gt;&amp;lt;/bungie:score&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:kills&amp;gt;&lt;/font&gt;5&lt;font color="#0000ff"&gt;&amp;lt;/bungie:kills&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;font color="#0000ff"&gt;bungie:deaths&amp;gt;&lt;/font&gt;11&lt;font color="#0000ff"&gt;&amp;lt;/bungie:deaths&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;bungie:assists&amp;gt;&lt;/font&gt;5&lt;font color="#0000ff"&gt;&amp;lt;/bungie:assists&amp;gt;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;&amp;lt;/bungie:player&amp;gt;&lt;/font&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;&amp;lt;/bungie:players&amp;gt;&lt;/font&gt;&lt;br /&gt; &lt;font color="#0000ff"&gt;&amp;lt;/bungie:game&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/item&amp;gt;&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt; &lt;p&gt;still valid RSS 2.0, still works in aggregators, but suddenly useful to anyone wanting to consume this information for more than just directly viewing it...&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Halo-2-Stats-via-RSS-an-interesting-idea-that-I-think-could-be-improved/default.aspx</comments><link>http://duncanmackenzie.net/blog/Halo-2-Stats-via-RSS-an-interesting-idea-that-I-think-could-be-improved/default.aspx</link><pubDate>Tue, 23 Nov 2004 04:31:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Halo-2-Stats-via-RSS-an-interesting-idea-that-I-think-could-be-improved/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>7</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/511/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>Syndication</category><category>XBox</category><category>XML</category></item><item><title>Added an RSS feed to the site for my articles...</title><description>&lt;p&gt;I guess I could have just added a category to my blog, but this works... &lt;a href="http://www.duncanmackenzie.net/articles/rss.xml" target="_blank"&gt;http://www.duncanmackenzie.net/articles/rss.xml&lt;/a&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Added-an-RSS-feed-to-the-site-for-my-articles/default.aspx</comments><link>http://duncanmackenzie.net/blog/Added-an-RSS-feed-to-the-site-for-my-articles/default.aspx</link><pubDate>Mon, 18 Oct 2004 21:16:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Added-an-RSS-feed-to-the-site-for-my-articles/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>0</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/496/trackback/default.aspx</trackback:ping><category>Blogging</category><category>Syndication</category><category>XML</category></item><item><title>New MSDN RSS feeds are live...</title><description>&lt;p&gt;In &lt;a href="http://blogs.duncanmackenzie.net/duncanma/archive/2004/09/26/708.aspx" target="_blank"&gt;an earlier post&lt;/a&gt;, I mentioned that I had written a new system for producing &lt;a href="http://msdn.microsoft.com/aboutmsdn/rss" target="_blank"&gt;MSDN's RSS feeds&lt;/a&gt;, and those feeds are now live at the same URLs as the previous versions. You might get some duplicates in your aggregators, (since these are new feeds but with some overlap of items from the old feeds) but that should be temporary. Anyway, check them out (&lt;a href="http://msdn.microsoft.com/vbasic/rss.xml" target="_blank"&gt;here is the one for VB&lt;/a&gt;) and let me know what you think.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Some people have asked why I haven't gone into a lot of detail about &lt;b&gt;how&lt;/b&gt; we generate these feeds. Basically, I haven't talked about it because it isn't all that difficult to write out a RSS file... the trick is usually how you obtain the data that you wish to write out and that part of the system isn't interesting (IMHO) to the general public as it is just SQL queries against our database full of content... the process that generates these feeds runs daily, and then static xml is posted to the site... all in all, not that exciting :)&lt;/i&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/New-MSDN-RSS-feeds-are-live/default.aspx</comments><link>http://duncanmackenzie.net/blog/New-MSDN-RSS-feeds-are-live/default.aspx</link><pubDate>Wed, 06 Oct 2004 04:56:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/New-MSDN-RSS-feeds-are-live/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>2</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/484/trackback/default.aspx</trackback:ping><category>.NET</category><category>MSDN Development</category><category>Syndication</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item><item><title>I've been working on a new RSS generation system for MSDN for the past little while</title><description>&lt;p&gt;... and it is almost ready to ship.... &lt;/p&gt;
&lt;p&gt;The new system will result in a few changes to &lt;a href="http://msdn.microsoft.com/aboutmsdn/rss" target="_blank"&gt;the MSDN feeds&lt;/a&gt;, the most notable of which is that our feeds will no longer reflect a certain time span (they currently contain all of the appropiately attributed items from the past 30 days), but will instead contain a certain # of items. They also have a bit more data in them, including the author of the article (in the dc:creator element) and a collection of category elements containing all of the attribution that we have applied to that article in our back end system.&lt;/p&gt;
&lt;p&gt;If you check out a sample feed, &lt;a href="http://www.duncanmackenzie.net/vbrss.xml" target="_blank"&gt;available here&lt;/a&gt;, you'll see the changes described above along with one other new 'feature'. We will have a stylesheet added to the top of the feeds, which is primarily targetted at folks who do not already use RSS feeds. When people in the past have seen our RSS buttons on the various MSDN sites, clicking on that button showed them the raw XML... with no real context or explanation of what they were being shown. This new format, using the style sheet, should help improve the experience for those customers.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Please let me know what you think about these changes (feel free to post your thoughts in the feedback section of this post), they aren't released yet so this is the time when I need to hear any and all feedback you have!!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="red"&gt;&lt;b&gt;Update:&lt;/b&gt; Luc Cluitmans noticed that the feed was not displaying correctly in Firefox... but I believe I've fixed that problem now, please let me know if you still notice problems with the display. I get only text in Opera, but I think that is due to the fact that XSLT is not supported by Opera... let me know if I'm wrong on that one...&lt;/font&gt;&lt;/p&gt;</description><comments>http://duncanmackenzie.net/blog/Ive-been-working-on-a-new-RSS-generation-system-for-MSDN-for-the-past-little-while/default.aspx</comments><link>http://duncanmackenzie.net/blog/Ive-been-working-on-a-new-RSS-generation-system-for-MSDN-for-the-past-little-while/default.aspx</link><pubDate>Mon, 27 Sep 2004 04:19:00 GMT</pubDate><guid isPermaLink="true">http://duncanmackenzie.net/blog/Ive-been-working-on-a-new-RSS-generation-system-for-MSDN-for-the-past-little-while/default.aspx</guid><dc:creator>Duncan Mackenzie</dc:creator><slash:comments>5</slash:comments><trackback:ping>http://duncanmackenzie.net/blog/477/trackback/default.aspx</trackback:ping><category>.NET</category><category>Blogging</category><category>MSDN Development</category><category>Personal Musings</category><category>Syndication</category><category>Visual Basic</category><category>Visual C#</category><category>XML</category></item></channel></rss>