<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : Mix</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx</link><description>Tags: Mix</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>ReMIX 09 Is Coming To Lisbon, Portugal</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/09/09/remix-09-is-coming-to-lisbon-portugal.aspx</link><pubDate>Wed, 09 Sep 2009 18:50:28 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1722131</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1722131</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1722131</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/09/09/remix-09-is-coming-to-lisbon-portugal.aspx#comments</comments><description>&lt;p&gt;&lt;a title="ReMIX 09 Portugal" href="http://www.microsoft.com/portugal/remix/index.aspx" target="_blank"&gt;&lt;img style="border-right-width:0px;margin:0px 10px 10px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ReMIX 09" border="0" alt="ReMIX 09" align="left" src="https://www.microsoft.com/portugal/remix/res/img/remix_logo.gif" width="134" height="61" /&gt;&lt;/a&gt;For the first time, &lt;a title="MIX Online" href="http://www.visitmix.com/" target="_blank"&gt;ReMIX&lt;/a&gt; is coming to &lt;a title="Portugal" href="http://wikipedia.org/wiki/Portugal" target="_blank"&gt;Portugal&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The event will have a keynote and 3 tracks (Web Developer, UX and Architect) with 4 sessions each by the best speakers in each field.&lt;/p&gt;  &lt;p&gt;Don’t miss it! &lt;a title="ReMIX 09 Portugal" href="http://www.microsoft.com/portugal/remix/index.aspx" target="_blank"&gt;Register&lt;/a&gt; now!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1722131" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Expression+Blend/default.aspx">Expression Blend</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Expression/default.aspx">Expression</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Expression+Studio/default.aspx">Expression Studio</category></item><item><title>MIX09 Session Presentation Slides</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/03/26/mix09-session-presentation-slides.aspx</link><pubDate>Thu, 26 Mar 2009 01:51:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1681475</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1681475</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1681475</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/26/mix09-session-presentation-slides.aspx#comments</comments><description>&lt;p&gt;On a &lt;a title="MIX09 Session Videos" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2009/03/23/v-deos-das-sess-es-do-mix09.aspxhttp://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx" target="_blank"&gt;previous post&lt;/a&gt; I introduced the feeds I created to subscribe to Mix09 session videos.&lt;/p&gt;  &lt;p&gt;I’ve decided to also create a feed for the presentation slides:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;PPTX:&lt;/strong&gt; &lt;a title="MIX Presentations" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionSlides" target="_blank"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionSlides&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1681475" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category></item><item><title>MIX09 Session Videos – How I Did It</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx</link><pubDate>Mon, 23 Mar 2009 01:04:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680499</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680499</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680499</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx#comments</comments><description>&lt;p&gt;On my &lt;a title="MIX09 Session Videos" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2009/03/23/v-deos-das-sess-es-do-mix09.aspxhttp://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx" target="_blank"&gt;last post&lt;/a&gt; I introduced the feeds I created to subscribe to Mix09 session videos.&lt;/p&gt;  &lt;p&gt;In case someone is interested on how I did it, here it is:&lt;/p&gt;  &lt;pre style="overflow:auto;" class="code"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;WebHandler &lt;/span&gt;&lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;mix09&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;

&lt;span style="color:blue;"&gt;using &lt;/span&gt;System;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.IO;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Web;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Net;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml;

&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;mix09 &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IHttpHandler&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;IHttpAsyncHandler
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IAsyncResult
    &lt;/span&gt;{
        &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback;

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult()
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult(&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback = callback;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public object &lt;/span&gt;AsyncState
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return null&lt;/span&gt;; }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;CompletedSynchronously { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;System.Threading.&lt;span style="color:#2b91af;"&gt;WaitHandle &lt;/span&gt;AsyncWaitHandle
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;ASP.NET should not use this property .&amp;quot;&lt;/span&gt;); }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsCompleted { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;Stream { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Completed(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;OpenReadCompletedEventArgs &lt;/span&gt;e)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Stream = e.Result;
            &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);
            }
        }

    }

    &lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri &lt;/span&gt;mixSessionsUri = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;http://sessions.visitmix.com/RSS&amp;quot;&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context;

    &lt;span style="color:blue;"&gt;private string &lt;/span&gt;type;

    &lt;span style="color:blue;"&gt;#region &lt;/span&gt;IHttpHandler Members

    &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsReusable
    {
        &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return true&lt;/span&gt;; }
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;ProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return&lt;/span&gt;;
        }

        OutputFeed(wc.OpenRead(mixSessionsUri));
    }

    &lt;span style="color:blue;"&gt;#endregion

    #region &lt;/span&gt;IHttpAsyncHandler Members

    &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;BeginProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context, &lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;cb, &lt;span style="color:blue;"&gt;object &lt;/span&gt;extraData)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;();
        }

        &lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;ar = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;(cb);

        wc.OpenReadCompleted += ar.Completed;

        wc.OpenReadAsync(mixSessionsUri, extraData);

        &lt;span style="color:blue;"&gt;return &lt;/span&gt;ar;
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;EndProcessRequest(&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;result)
    {
        &lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;stream = (result &lt;span style="color:blue;"&gt;as &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;).Stream;

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(stream != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            OutputFeed(stream);
        }
    }

    &lt;span style="color:blue;"&gt;#endregion

    private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;InitializeRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context = context;
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type = context.Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;];

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.type))
        {
            &lt;span style="color:blue;"&gt;return null&lt;/span&gt;;
        }

        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient&lt;/span&gt;();
        wc.Headers[&lt;span style="color:#2b91af;"&gt;HttpRequestHeader&lt;/span&gt;.UserAgent] = &lt;span style="color:#a31515;"&gt;&amp;quot;Required User Agent&amp;quot;&lt;/span&gt;;
        &lt;span style="color:blue;"&gt;return &lt;/span&gt;wc;
    }

    &lt;span style="color:blue;"&gt;private void &lt;/span&gt;OutputFeed(&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;source)
    {
        &lt;span style="color:#2b91af;"&gt;XmlReader &lt;/span&gt;feedReader = &lt;span style="color:#2b91af;"&gt;XmlReader&lt;/span&gt;.Create(source);

        &lt;span style="color:#2b91af;"&gt;XDocument &lt;/span&gt;feed = &lt;span style="color:#2b91af;"&gt;XDocument&lt;/span&gt;.Load(feedReader);

        &lt;span style="color:blue;"&gt;var &lt;/span&gt;rss = feed.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;channel = rss.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;channel&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;title = channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;);

        title.Value = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0} ({1})&amp;quot;&lt;/span&gt;, title.Value, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToUpper());
        channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value = &lt;span style="color:#a31515;"&gt;&amp;quot;http://cli.gs/Mix09Sessions&amp;quot;&lt;/span&gt;;

        &lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;item &lt;span style="color:blue;"&gt;in &lt;/span&gt;channel.Elements(&lt;span style="color:#a31515;"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;))
        {
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;link = item.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value;
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;session = link.Substring(link.LastIndexOf(&lt;span style="color:#a31515;"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;) + 1).ToLower();
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;enclosureUrl = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;http://mschannel9.vo.msecnd.net/o9/mix/09/{0}/{1}.wmv&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToLower(), session);

            item.Add(
                &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XElement&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;enclosure&amp;quot;&lt;/span&gt;,
                    &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XAttribute&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;, enclosureUrl)));
        }

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Write(feed.ToString());

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.ContentType = &lt;span style="color:#a31515;"&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt;;

        &lt;span style="color:#2b91af;"&gt;HttpCachePolicy &lt;/span&gt;cache = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Cache;
        cache.SetCacheability(&lt;span style="color:#2b91af;"&gt;HttpCacheability&lt;/span&gt;.ServerAndPrivate);
        cache.SetExpires(&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Now.AddHours(1));
        cache.VaryByParams[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;] = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        cache.SetValidUntilExpires(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680499" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category></item><item><title>MIX09 Session Videos</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx</link><pubDate>Mon, 23 Mar 2009 00:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680495</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680495</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680495</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Updated (2009Mar25):&lt;/strong&gt; Added MP4 feed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mix09 is over and I would like to watch some sessions.&lt;/p&gt;
&lt;p&gt;I like to watch these kind of videos by subscribing them using the &lt;a title="Zune Software" href="http://www.zune.net/software/" target="_blank"&gt;Zune Software&lt;/a&gt; as a podcast. I like the Zune Software because it downloads the “episodes” and I can watch them in any order and it never forgets where I was – even if I was watching it in the &lt;a title="Zune.net | What is Zune?" href="http://www.zune.net/products/whatiszune.htm" target="_blank"&gt;Zune&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, the only feed available (&lt;a title="MIX Videos" href="http://sessions.visitmix.com/RSS" target="_blank"&gt;http://sessions.visitmix.com/RSS&lt;/a&gt;) does not include the videos.&lt;/p&gt;
&lt;p&gt;Fortunately, the address of the videos is very predictable and I was able to build my own feeds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV-HQ: &lt;/span&gt;&lt;a title="MIX Videos (WMV-HQ)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV: &lt;/span&gt;&lt;a title="MIX Videos (WMV)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;ZUNE: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;MP4: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The session videos are not available in all formats for every session (at least, not now) but, if you subscribe to all, you’ll get videos for all the sessions.&lt;/p&gt;
&lt;p&gt;Subscribe and enjoy.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680495" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category></item></channel></rss>