<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/476591_100x75.jpg</url>
		<title>Channel 9 - Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<link></link>
	</image>
	<description>Erik Meijer and team (developer Wes Dyer, in particular)&amp;nbsp;have created a profound and beautiful .NET library that will take managed event based programming to new levels. Of course, many of you wish that you could write LINQ expressions over events. Well,
 now you can thanks to Erik&#39;s and Wes Dyer&#39;s latest creation, Rx -&amp;nbsp;.NET Reactive Framework. Erik, being&amp;nbsp;a fundamentalist functional&amp;nbsp;theoritician,&amp;nbsp;can&#39;t create new programming abstractions without employing some form of monadic magic.&amp;nbsp;Enter astrophysicist and monadic composition&amp;nbsp;wizard Brian Beckman. The 
last time Brian was on C9 he taught us about the State Monad. At the end of that discussion he mentioned he wanted to teach us about the Continuation Monad next. So, who better to conduct this episode of Expert to Expert than Dr. Beckman? Yep. You guessed
 it! Rx employs the Continuation Monad&amp;nbsp;in its composition. Erik is in the hot seat this time and it&#39;s always a real pleasure to converse with Erik and Brian in the same room at&amp;nbsp;the same whiteboard.
Now,&amp;nbsp;what is Rx?The .NET Reactive Framework (Rx) is the 
mathematical dual of 
LINQ to Objects. It consists of a pair of interfaces IObserver/IObservable that represent push-based, or
observable, collections, plus a library of extension methods that implement the

LINQ 
Standard Query Operators and other useful stream transformation functions.interface IObservable&amp;lt;out T&amp;gt;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDisposable Subscribe(IObserver o); } interface IObserver&amp;lt;in T&amp;gt;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void OnCompleted();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void OnNext(T v);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;void OnError(Exception e);&amp;nbsp;}&amp;nbsp; Observable collections capture the essence of the well-known 
subject/observer design pattern, and are tremendously useful for dealing with event-based and asynchronous programming, i.e.

AJAX-style applications. For example, here is the prototypical 
Dictionary Suggest written using LINQ query comprehensions over observable collections:IObservable&amp;lt;Html&amp;gt; q = from fragment in textBox 
&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; from definitions in Dictionary.Lookup(fragment, 10).Until(textBox) 
&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; select definitions.FormatAsHtml(); 
&amp;nbsp; 
q.Subscribe(suggestions =&amp;gt; { div.InnerHtml = suggestions; }) 
Please subscribe to this Channel 9 interview to be notified when we have clearance to distribute Rx over the counter (lame puns intended .
Tune in. This should prove to be an instant classic besides being a very important episode of E2E. Rx is deep, man. Deep.Enjoy! </description>
	<link></link>
	<language>en</language>
	<pubDate>Tue, 21 May 2013 09:06:12 GMT</pubDate>
	<lastBuildDate>Tue, 21 May 2013 09:06:12 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Oh my! Oh my! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> Too cool: Erik,&nbsp;Wes and Brian. More please. I've been wondering what Wes has been up to since his blog went dark.</p>
<p>posted by tomkirbygreen</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827635350000000</link>
		<pubDate>Thu, 09 Jul 2009 19:12:15 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827635350000000</guid>
		<dc:creator>tomkirbygreen</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>whoa eric brian and wes. talk about crssing the streams <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> cant wait to watch this one</p>
<p>(also hoping against hope for some natal somewhere in there <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /> )</p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827641400000000</link>
		<pubDate>Thu, 09 Jul 2009 19:22:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827641400000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Wes actually isn't in this one, but he is there, in spirit! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> You will see Wes soon on another edition of Going Deep. We have some ideas for an E2E with Wes as well. This one, however, is Brian and Erik (which is more than enough brain power, knowledge&nbsp;and
 passion to fill the room). From astrophysical examples to pseudo Haskell, this conversation has it all! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>I do want to point out (again)&nbsp;that Wes is a <strong>key</strong> contributor to Rx (which is why his blog has gone dark).</p>
<p>Make the time to watch this. Yes, I know, it's long. If you have some spare time and really want to geek out for a solid hour, then do watch this and listen carefully. This is deep (in a profound way).</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827646240000000</link>
		<pubDate>Thu, 09 Jul 2009 19:30:24 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827646240000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>watching it now&nbsp;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> i&nbsp;saw erics talk about rx on lang.net (i think it was) and his coin example sounded hilarious <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> to bad they didnt shoot him talking then because it seemd to be alot of visuals besides the slides. did he actually have a bunch of coins
 and threw them at people? <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>totally off topic:</p>
<p>if you hold shift while right clicking on a taskbar button in win7, you get the classic context menu with the move/maximize/minimize options. great if your media player is on your other monitor (the TV in my case) <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827723440000000</link>
		<pubDate>Thu, 09 Jul 2009 21:39:04 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827723440000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Great video! Really fascinating. I can't wait to see the code - just push it to me <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>A question: The scope of the&nbsp; <strong>IDisposable</strong> object returned by <strong>
Subscribe() </strong>was unclear to me. Erik implies you can put it in a <strong>
using</strong> statement, like a normal <strong>IDisposable</strong>. But the lexical scope of the
<strong>IDisposable</strong> returned seems much different than the lifetime (&quot;runtime scope&quot;?) of the
<strong>IObserver</strong> you pass in. For example, the using statemetn with <strong>
IDisposable</strong> for files is pretty obvious:</p>
<pre>  using(fs = new Stream(&quot;somefile.txt&quot;))   
  {     
    // ... do work on fs ...   
  } // fs is closed and disposed. </pre>
<p>But in the <strong>IObserver</strong> case, I don't think the using statement's scope is appropriate for indicating you don't care about events anymore. Using the autocomplete example above:</p>
<pre>using(q.Subscribe(suggestions =&gt; ... ))<br>{<br>  // ???<br>} <br><br></pre>
<p>What happens in the body of the <strong>using</strong> statement? All the work seems to occur in the lambda passed to
<strong>Subscribe</strong>. If I understood correctly, as soon as we leave the scope of the using statement, my lambda stops receiving events. Hmm, I bet the object implementing
<strong>IDisposable</strong> has the secret sauce for the reactive framework. Maybe it has a method for testing for conditions and will &quot;yield&quot; until the condition is met? For example if I had another observer which looked for ENTER or TAB on the textbox and
 indicated that a selection was made, maybe it would let me write this code:</p>
<pre>class KeyObserver :  IObserver&lt;...&gt;<br> {<br>    publi c bool SelectionMade()<br> }<br><br>KeyObserver key = ...;<br><br>using(cntrl = q.Subscribe(suggestions =&gt; ... ))<br>{<br>   if(! key.SelectionMade())<br>     sleep;<br>} <br>// selection has been made and we stop listening to suggest events<br></pre>
<p>Hopefully that makes some sense. It looks like the beginnings of a way to do reasonable event based programming. Apologies for answering my own question but glad to hear if I'm on track ...</p>
<p>Two other notes:</p>
<ul>
<li>Check out the <strong>AsyncEnumerator</strong> library from Jeffrey Richter. He leveraged enumerators and iterators to do something similar, but I think his solution still has an &quot;inversion of control&quot; problem where you need to write the code to drive the
 enumerator. A recent article can be found at <a href="http://msdn.microsoft.com/en-us/magazine/cc721613.aspx">
http://msdn.microsoft.com/en-us/magazine/cc721613.aspx</a> </li><li>Erik mentioned a paper by Phillip Wadler called &quot;The essence of monads&quot; or similar. I think he meant &quot;The essence of functional programming&quot; (<a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.9516">http&#58;&#47;&#47;citeseerx.ist.psu.edu&#47;viewdoc&#47;summary&#63;doi&#61;10.1.1.38.9516</a>).
</li></ul>
<p>&nbsp;</p>
<p>Great stuff, get me this code! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>Justin</p>
<p>posted by Justin Bailey</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827783070000000</link>
		<pubDate>Thu, 09 Jul 2009 23:18:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827783070000000</guid>
		<dc:creator>Justin Bailey</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Excellent observation. If you ever get a chance to see my &quot;<a href="http://en.oreilly.com/oscon2009/public/schedule/detail/9099">fundamentalist functional programming</a>&quot; talk, you will see that combining side-effect, closures &#43; using- and try-catch-blocks
 is my favorite source of fun &quot;what does this code do?&quot; puzzles.</p>
<p>For instance, your own example of using &quot;using&quot; for files is not really that &quot;obvious&quot;. What if inside the block you capture fs in a closure, or in general stick it in the heap somewhere? I have seen examples like this</p>
<p>&nbsp;&nbsp;IEnumerable&lt;string&gt; lines;<br />&nbsp;&nbsp;using(fs = new Stream(&quot;...&quot;))<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp; &nbsp;lines = from l in <strong>fs</strong>.ReadLines()&nbsp;where l.Length &gt; 256&nbsp;select l;<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;foreach(var l in lines)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp; &nbsp;// oops, fs has been disposed before the query has been executed<br />&nbsp;&nbsp;}</p>
<p>Brian asked the question &quot;can you put it in a using statement&quot;, to which the only correct answer is &quot;yes&quot;. Had he asked &quot;is that a smart thing to do?&quot; I would have said that the using statement can be very powerful, but as always with great power comes potential
 danger.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827813360000000</link>
		<pubDate>Fri, 10 Jul 2009 00:08:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827813360000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Niner head.in.the.box = Erik Meijer. Just so you know. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /></p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827852720000000</link>
		<pubDate>Fri, 10 Jul 2009 01:14:32 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633827852720000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Be sure to check out <a href="http://langnetsymposium.com/2009/talks/23-ErikMeijer-LiveLabsReactiveFramework.html">
Eric's talk at Lang.NET Symposium 2009</a>&nbsp;(which he alluded to in this video) and&nbsp;<a href="http://langnetsymposium.com/2009/talks/11-AndersHejlsberg-LightningCovariantContravariant.html">Anders Hejlberg's covariance/contravariance in C# 4.0 talk</a>.</p>
<p>Using disposable resources like FileStreams in the deferred execution model of LINQ queries (and closures in general) can be frustrating. &nbsp;Beware of leaks as well as premature disposals.</p>
<p><a href="http://langnetsymposium.com/2009/talks/23-ErikMeijer-LiveLabsReactiveFramework.html"></a></p>
<p><a href="http://langnetsymposium.com/2009/talks/23-ErikMeijer-LiveLabsReactiveFramework.html"></a></p>
<p>posted by joechung</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828018400000000</link>
		<pubDate>Fri, 10 Jul 2009 05:50:40 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828018400000000</guid>
		<dc:creator>joechung</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Love it guys.</p>
<p>While watching I was thinking about the analogy between IObservable&lt;T&gt; and the CCR's Port&lt;T&gt; and&nbsp;how it&nbsp;sounds like&nbsp;a port abstraction.&nbsp; Port&lt;T&gt; allows you to monitor a port with various typed-listeners and you can listen for stop, exception, and value results
 (and also return result back to the port) and also do things like Choice over various ports.&nbsp; How does IObservable compare/contrast to the port model?&nbsp;</p>
<p>How does fifoness play into this?&nbsp; I know with Port, sometimes you have to manually assure fifoness because of the inherent concurrency.</p>
<p>btw - &quot;Please subscribe to this Channel 9 interview..&quot;.&nbsp; You guys jest, but that could be a killer feature.&nbsp; Being able to post arbitrary Observer code in a c9 reply that could do work for you (i.e. send a tweet, send a mail, etc) based on some code in your
 observer.&nbsp; Like a little bot script.&nbsp; That could be the next big thing in blogs and forums.&nbsp; High geekness factor.</p>
<p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828029940000000</link>
		<pubDate>Fri, 10 Jul 2009 06:09:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828029940000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>heavy stuff <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>im most likely missing something but isnt this very similar to how events work? the event is sort of like the Ioberservable and the delegate you &quot;pass in&quot; with &#43;= is like the Iobserver? also, in the code example above you call a method called subscribe,
 why is that? is that equivalent to the implicit &quot;subscribe&quot; of th e &#43;= syntax? in the discussion of event its mentioned that you can sort of leak delegates to the event, but isnt that also true for Iobserveble?</p>
<p>Rx seems very cool but i still feel i havent completly wrapped my brain around it <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> cant wait for more info on this <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>--edit--</p>
<p>aah, is the &quot;linq&quot; statement above just in essennce just defining whats beeing oberved? so the Iobserver not only knows its observing &quot;something&quot; it also encapsulates what exactly it observes,&nbsp; in this case the &quot;fragment&quot; in &quot;textbox&quot;</p>
<p>i feel im getting a little closer to understanding this, but i cant wait for some code/examples <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>--edit2 post rewatch--</p>
<p>hm my original questions seems somewhat trivial, of course it similar to events, but Rx is event on sharksteroids <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> this is what i consider trlu beautiful code, its sooo simple but incredibly powerful.. just like ienumerable <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828136110000000</link>
		<pubDate>Fri, 10 Jul 2009 09:06:51 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828136110000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>To see if I have grasped the basic concepts, i summarised them. Are they correct?</p>
<p><strong>IEnumeratable &amp; IEnumerater:</strong> Over there is some stuff, take something from it and put it over there.</p>
<p><strong>IObservable &amp;&nbsp;IObserver:</strong> When you have something don't pass it to me, place over there.</p>
<p>posted by AdamSpeight2008</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828164050000000</link>
		<pubDate>Fri, 10 Jul 2009 09:53:25 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828164050000000</guid>
		<dc:creator>AdamSpeight2008</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Truly fantastic.. Please make it MS-PL so it's available on Mono..</p>
<p>Thanks..</p>
<p>&nbsp;</p>
<p>posted by tarlano</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828173400000000</link>
		<pubDate>Fri, 10 Jul 2009 10:09:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828173400000000</guid>
		<dc:creator>tarlano</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p><a rel="lightbox" href="http://farm3.static.flickr.com/2419/1849109365_569a41f236.jpg?v=0"><img src="http://farm3.static.flickr.com/2419/1849109365_569a41f236.jpg?v=0" alt=""></a></p>
<p>This is flippin' cool!</p>
<p>posted by Chadk</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828235830000000</link>
		<pubDate>Fri, 10 Jul 2009 11:53:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828235830000000</guid>
		<dc:creator>Chadk</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>My brain just got kicked right in the ambient monads.</p>
<p>posted by BrentL</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828297460000000</link>
		<pubDate>Fri, 10 Jul 2009 13:35:46 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828297460000000</guid>
		<dc:creator>BrentL</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Yup, sounds like you got it. Since I love sushi, the analogy I like to use is</p>
<p>IEnumerable/IEnumerator: sit at the sushi bar and ask the chef for each next piece.<br />IObservable/IObserver: sit at the conveyer belt and pick the next piece that is psuhed at you without being asked.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828388040000000</link>
		<pubDate>Fri, 10 Jul 2009 16:06:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828388040000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Excellent analogy. Makes me want sushi in addition to better understanding what you and Wes have come up with. Thanks!<br />C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828396060000000</link>
		<pubDate>Fri, 10 Jul 2009 16:20:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828396060000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Exactly right. It captures the essence of what an &quot;event stream&quot; or &quot;asynchrnous computation&quot; is and makes it into a first class concept.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828402310000000</link>
		<pubDate>Fri, 10 Jul 2009 16:30:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828402310000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Awesome!&nbsp; Of course no where near the &quot;polishness&quot; or completeness&nbsp;of your work but recentley I implemented a class to follow up the progress of worker threads that fits perfectly pattern of the IObserver interface.&nbsp;</p>
<p>It's nice to see how my device is validated by your work or that I can now say I've used things with fancy names: &quot;hey! I've used reacting programing&quot;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-11.gif' alt='Cool' /></p>
<p>posted by raptor3676</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828503160000000</link>
		<pubDate>Fri, 10 Jul 2009 19:18:36 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828503160000000</guid>
		<dc:creator>raptor3676</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>As usual this is looking terrific (and watching the preview at lang.net this is looking promising... back to watching)<br />One more thing: using <strong>Maybe&lt;T&gt;</strong>, you could replace <strong>MoveNext: () -&gt; Bool</strong> with
<strong>MoveNext: () -&gt; ()</strong>; of course the whole thing could be implemented as just
<strong>Next: () -&gt; Maybe&lt;T&gt;</strong> to begin with. That would break command/query separation in a way, so maybe
<strong>Next: () -&gt; ()</strong> and <strong>Item: () -&gt; Maybe&lt;T&gt;</strong> is better.</p>
<p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828549910000000</link>
		<pubDate>Fri, 10 Jul 2009 20:36:31 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828549910000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>[Functional]&nbsp;Reactive Programming (FRP). Now Object-Oriented Reactive Programming (OORP)?</p>
<p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828567120000000</link>
		<pubDate>Fri, 10 Jul 2009 21:05:12 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828567120000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>In the C# world we have exceptions, so in the context of C# it is appropriate to model errors directly in the
<strong>IObserver</strong> interface right, although one could do away with exceptions as side-effects and model them as types - which would probably be a more disruptive programming model. Hmm...</p>
<p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828575270000000</link>
		<pubDate>Fri, 10 Jul 2009 21:18:47 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828575270000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>You can turn an IEumerable into an IObservable by doing something like this:</p>
<p>&nbsp;</p>
<pre>while(it = MoveNext()) callback.call(it)</pre>
<pre><br></pre>
<p>Or you can sample every second, or sample when something else happens, etc.</p>
<p>Can you do the reverse with Rx: turn an IObservable into an IEnumerable? If you have coroutines you can do that by setting up a coroutine that subscribes to the IObservable and every time it gets called it yields the element it receives. I've seen this trick
 used somewhere to turn an collection interface that has only ForEach into a IEnumerable with MoveNext.</p>
<p>Edit: You could also use a thread of course but that would be very expensive.</p>
<p>An intuitive explanation goes like this.</p>
<p>You have a Supply and a Demand. Your job is to get stuff from the Supply to Demand. Now, there are two types of Supplies:</p>
<p>1) PushSupply, they push stuff to you (IObservable)</p>
<p>2) PullSupply, you have to ask them (IEnumerable)</p>
<p>Likewise, there are two types of Demand:</p>
<p>1) PushDemand, you push stuff to the Demand whether they like it or not (user of IObservable)</p>
<p>2) PullDemand, they pull stuff from you (user of IEnumerable, they pull with MoveNext &amp; Current)</p>
<p>If you have a PushSupply and a PushDemand you can just hook them up. They work together naturally. If you have a PullSupply and a PullDemand you can also just hook them up.</p>
<p>A small problem arises if you have a PullSupply and a PushDemand. Now you have to pull stuff from the Supply personally and push it to the Demand. You can do this by pulling and pushing as fast as you can:</p>
<pre>while(MoveNext()) callback.Call(Current)</pre>
<p>Or you can sample every second, for example.</p>
<p>A bigger problem is bridging the gap between a PushSupply and a PullDemand. The PushSupply pushes stuff in your hands but what can you do if the PullDemand doesn't want it yet? And what do you do if the PullDemand wants new stuff but the PushSupply hash't
 pushed anything?</p>
<p>One way to do that is this: if the PushSupply wants to give you something but the PullDemand doesn't need it yet, you stop the supply and wait until the demand wants it. If the demand wants something but the supply hasn't pushed yet you stop the demand and
 wait until the supply gives you an item.</p>
<p>You could also put stuff in a buffer. It depends on the situation: if you have a collection like thing with only a ForEach method you wouldn't want to put the entire collection in the buffer. Especially not with an infinite collection, because you don't
 have an infinite buffer! You want to execute the producer and consumer in lockstep. Or if they run concurrently with a bounded buffer. Does Rx support these things?</p>
<p>Very interesting video!</p>
<p>posted by Jules.dot</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828609480000000</link>
		<pubDate>Fri, 10 Jul 2009 22:15:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828609480000000</guid>
		<dc:creator>Jules.dot</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>right, and they're also composable, unlike events!</p>
<p>chaining/joining events together is kind of painful but its easy with IObservers. and then there is filtering and all that. Also, it seems like IObservers would be great for Ansyc scenarios. i belive someone mentioned that in the comments too&nbsp;<img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> are you
 doing anything perticular with the TPL team or with the CCR?</p>
<p>you could stretch the sushi analogy even further, events are like the sushi chef making diffrent sushi pieces and handing them to you leaving you to pick out the ones you like. But IObserver is like a waiter&nbsp;into whom&nbsp;you&nbsp;encode what pieces you like and
 he'll only bring you those. the chef doesnt have to keep track of what you want, he only makes random sushi and you dont have to filter the sushi as its coming in, you tell the waitor once and the stream of sushi comming at you is already filterd. it also
 works for joining, you tell the waitor that you only want to have your calefornia roll with a salmon piece, and the waitor can bring you those in pairs even if there are two chefs working asynchronosly and you dont have to do any joining in you handler code.
 (ie, putting the calefornia roll in your mouth and then sitting there, mouth open waiting for the salmon, that'd look silly, and its silly to do it in code too)</p>
<p>is that correct? <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>--edited post, added sushi--</p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828886870000000</link>
		<pubDate>Sat, 11 Jul 2009 05:58:07 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633828886870000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Very beautiful and simple.</p>
<p>I was so impressed by the simplicity of it all that I tried to do a sample implementation in C#.<br />Did I get it right?</p>
<p><a href="http://reactivelinq.codeplex.com">http://reactivelinq.codeplex.com</a></p>
<p>posted by epentangelo</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633831275910000000</link>
		<pubDate>Tue, 14 Jul 2009 00:19:51 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633831275910000000</guid>
		<dc:creator>epentangelo</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>This is really great, especially the tie-in with concrete mathematical concepts.&nbsp; It does, however, make me wonder if this pattern could be expanded upon to handle a &quot;distributed&quot; observer pattern, where remote clients (identified by a URI, not a function
 pointer) can subscribe to events occurring another machine.&nbsp; I've worked on projects doing just this in the past (via SOAP/HTTP), but it's a lot of plumbing.&nbsp; WCF does support the notion of callbacks, but to say their approach is intuitive is a bit of a misnomer
 (quite ugly if you ask me).</p>
<p>&nbsp;</p>
<p>Thoughts?</p>
<p>posted by MikeyBoy</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832678060000000</link>
		<pubDate>Wed, 15 Jul 2009 15:16:46 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832678060000000</guid>
		<dc:creator>MikeyBoy</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Pretty cool work. I think your implementation points out a few issues that this approach has to deal with.</p>
<p>&nbsp;</p>
<p>1) SpotAgent allows many subscribers; RiskAgent only one -- That says the Subscribe method isn't giving enough information (and the IObservable interface isn't rich enough). I wonder how you could indicate that a given Observable allows many observers vs.
 one?</p>
<p>&nbsp;</p>
<p>2) One problem that Erik points out with IEnumerable is the &quot;subscriber&quot; which calls GetNext() has no control over how long the &quot;publisher&quot; take to return the next value. I think IObservable reverses this problem. That is, the &quot;publisher&quot; (IObservable object)
 has no control over how long given &quot;subscriber's&quot; (IObserver) OnNext method will take to complete. You can see this issue in the Tick() methods for SpotAgent and RiskAgent.
</p>
<p>&nbsp;</p>
<p>Does the composobility of IObservable/IObserve help solve this problem? </p>
<p>&nbsp;</p>
<p>Looking at your code definitely exposes some issues that I'm sure Erik's team has faced when developing their library.</p>
<p>posted by Justin Bailey</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832826170000000</link>
		<pubDate>Wed, 15 Jul 2009 19:23:37 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832826170000000</guid>
		<dc:creator>Justin Bailey</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Yup it does work. Our primary use-case for Rx is actually distributed programming (when doing tier-splitting).</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832843430000000</link>
		<pubDate>Wed, 15 Jul 2009 19:52:23 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832843430000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>1) Your particular implementation of IObservable could take care of that. However, one vs many subscribers is an excellent example of a property that is not closed under composition. I can always compose your observer with another one that broadcasts its
 single subscription to multiple subsequent subscribers without the underlying source knowing about that.&nbsp;</p>
<p>&nbsp;</p>
<p>2) The publisher could run all subscribers on a different thread, or even each call to the observer methods.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832849040000000</link>
		<pubDate>Wed, 15 Jul 2009 20:01:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633832849040000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I didn't see any announcements about this, so forgive me if this is a repost, but has this accidentally (or perhaps intentionally?) shipped with the Silverlight Toolkit?</p>
<p>posted by jzli</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633834738600000000</link>
		<pubDate>Sat, 18 Jul 2009 00:31:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633834738600000000</guid>
		<dc:creator>jzli</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Nope. This hasn't shipped yet. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>But it will.</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633834776280000000</link>
		<pubDate>Sat, 18 Jul 2009 01:33:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633834776280000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Just for the fun of it,</p>
<p>I've added an F# implementation of SelectMany and Select for IObservable in F#.</p>
<p><a href="http://reactivelinq.codeplex.com/">http&#58;&#47;&#47;reactivelinq.codeplex.com&#47;</a></p>
<p>&nbsp;</p>
<p>holoed</p>
<p><a href="http://fsharpcode.blogspot.com/">http&#58;&#47;&#47;fsharpcode.blogspot.com&#47;</a></p>
<p>posted by epentangelo</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633839013000000000</link>
		<pubDate>Wed, 22 Jul 2009 23:15:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633839013000000000</guid>
		<dc:creator>epentangelo</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>rx has apparently made it into the silverlight toolkit <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p><a href="http://themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html">http://themechanicalbride.blogspot.com/2009/07/introducing-rx-linq-to-events.html</a></p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633839549670000000</link>
		<pubDate>Thu, 23 Jul 2009 14:09:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633839549670000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Is RxLinq part of the Microsoft Tesla long term initiative ?</p>
<p>posted by epentangelo</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844638560000000</link>
		<pubDate>Wed, 29 Jul 2009 11:30:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844638560000000</guid>
		<dc:creator>epentangelo</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Once you tier-split a computation to run across tiers, you *must* solve the asynchronous programming problem. If you remember, our previous release used callbacks for asynchronous calls.
</p>
<p>&nbsp;</p>
<p>Rx is the fruit of our efforts to come up with a general model of asynchronous computations that applies to a wide range of scenarios, including tier-splitting.&nbsp;</p>
<p>&nbsp;</p>
<p>Wow, that sounds like a marketing pitch, but it is actually technically accurate.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844805610000000</link>
		<pubDate>Wed, 29 Jul 2009 16:09:21 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844805610000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Isn't that a nice surprise <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844806010000000</link>
		<pubDate>Wed, 29 Jul 2009 16:10:01 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633844806010000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>it was actually <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> im having som compilation issues when using it with a regular .net project though, most likely because its a silverlight dll. also, i cant wait to hands on some docs, what is the Amb extension method for example? and does Rx use tpl for
 synchronization?&nbsp;</p>
<p>questions, questions.. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by aL_</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633845801990000000</link>
		<pubDate>Thu, 30 Jul 2009 19:49:59 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633845801990000000</guid>
		<dc:creator>aL_</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p><a href="http://community.schemewiki.org/?amb">http://community.schemewiki.org/?amb</a></p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633849158980000000</link>
		<pubDate>Mon, 03 Aug 2009 17:04:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633849158980000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>A little brainstorming after having watched the video:</p>
<p>&nbsp;</p>
<p>S1 ; S2</p>
<p>&nbsp;</p>
<p>In the language of event-driven/reactive paradigms this could be read as: statement 2 is one observer of the state manipulations done by statement 1... now guys hold on to your brains: what happens when there is more than one observer to S1? The whole idea
 of one statement after another &quot;breaks&quot; as S1 is followed by S2a and at the same time by S2b and S2c etc.etc. S2a, S2b S2c etc all get notfied and start executing at the same time... A program transforms from a list of statements into a tree of statements?
 Parallel computing? Speculative computing? Quantum computing?</p>
<p>&nbsp;</p>
<p>It is deeply (almost disturbing and) fascinating to see how IObserver actually covers the continuation monad, which more or less seams to be the essance of &quot;statement after statement with shared state&quot; programming. One statement tells the next to execute
 or communicating an error or the end of the program.</p>
<p>&nbsp;</p>
<p>Another twist: what happens when one statement S2 can get hold of the handle connecting/making it the succesor of S1 (the IDisposable obj) .... statements reconnecting? Programm-parts actively rewireing based on meta-state?&nbsp;</p>
<p>&nbsp;</p>
<p>How about not using IDisposable but instead an extended &quot;handle&quot; allowing not only to stop the subsription but also to interrupt (for certain time?)&nbsp;or control it otherwise? (have to admit i did not check out the code yet, maybe that is already available)</p>
<p>&nbsp;</p>
<p>And the last for today: what other dualities are there waiting to be found? <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /></p>
<p>&nbsp;</p>
<p>posted by pointernil</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633850243580000000</link>
		<pubDate>Tue, 04 Aug 2009 23:12:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633850243580000000</guid>
		<dc:creator>pointernil</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I would just like to ask, since Erik mentioned that this IObservable captures the essence of a Continuation, does that mean something like call-with-current-continuation could be implemented in C# using the IObservable?</p>
<p>&nbsp;</p>
<p>I am not very familliar with C#, and I have never fully grokked call/cc, so bear with me if this question is lacking some basic fundamental understandings of either!</p>
<p>posted by Chris H</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633852579680000000</link>
		<pubDate>Fri, 07 Aug 2009 16:06:08 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633852579680000000</guid>
		<dc:creator>Chris H</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>If you're interested in a nice challenge with Rx, go over to my blog and try solving the tripple-click puzzle:&nbsp;</p>
<p>&nbsp;</p>
<p><font face="Calibri,Times New Roman" size="3"><font face="Calibri,Times New Roman" size="3"><span lang="EN"></p>
<p dir="ltr" align="left">&nbsp;</p>
</span><a href="http://blogs.msdn.com/jeffva/archive/2009/08/11/fun-system-reactive-puzzle.aspx"><font face="Calibri,Times New Roman" size="3"><font face="Calibri,Times New Roman" size="3"><span lang="EN">http://blogs.msdn.com/jeffva/archive/2009/08/11/fun-system-reactive-puzzle.aspx</span></font></font></a></font></font>
<p></p>
<p>&nbsp;</p>
<p>posted by JeffVa_MS</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633856337020000000</link>
		<pubDate>Wed, 12 Aug 2009 00:28:22 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633856337020000000</guid>
		<dc:creator>JeffVa_MS</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Did you forget something? </p>
<p>&nbsp;</p>
<p>The Subsrciber to the Observer assumes that the Observer, and the connection to the Observer, are functional during the life of the subscription. If the Observer, or the connection to the Observer, fail, the Subscriber may never know and assume that all
 is well when it is not. What happens to the Subscriber if the Observer, or the interface to the Observer, fail? How is that handled?</p>
<p>&nbsp;</p>
<p>Are other features required so that the Subscriber can periodically verify the health of the Observer and not blindly assume that everything is OK when no events are received&nbsp;?</p>
<p>posted by dbaechte</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633857146370000000</link>
		<pubDate>Wed, 12 Aug 2009 22:57:17 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633857146370000000</guid>
		<dc:creator>dbaechte</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Awesome!</p>
<p>Can we please have more of Erik with Brian together.</p>
<p>Let them discuss varinats in type system or other academic stuff. Or mroe real life MSR&nbsp;projets, for example spec#, spec explorer, axum etc.</p>
<p>Maybe someday you can get Yury Gurevich and Tony Hoare together <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Thanks Charles, awesome video.</p>
<p>&nbsp;</p>
<p>posted by sla</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862073700000000</link>
		<pubDate>Tue, 18 Aug 2009 15:49:30 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862073700000000</guid>
		<dc:creator>sla</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Absolutely. And I've been meaning to vist Yuri again. Yuri has many great things to say. He's brilliant. Erik, Brian and Yuri. Yes, I LOVE the sound of that.</p>
<p>&nbsp;</p>
<p>We're very lucky that Brian and Erik are both HUGE fans of Channel 9 and the Niner nation! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862421690000000</link>
		<pubDate>Wed, 19 Aug 2009 01:29:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862421690000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Wow. Were they way off on the covariance and contravariance example earlier in the video. Btw, the array covariance in c# is broken, and it was never legal (or wise) to have a Apple[] have a Fruit[] as the backing storage. Erik was plain wrong on that being
 safe. Anyhow, a cool vid otherwise.</p>
<p>posted by coolpun</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862581860000000</link>
		<pubDate>Wed, 19 Aug 2009 05:56:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633862581860000000</guid>
		<dc:creator>coolpun</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I think they were implying the work done around co and contravariance in C# 4.0.&nbsp; Could be wrong though.</p>
<p>&nbsp;</p>
<p>Douglas</p>
<p>posted by DouglasH</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633864371240000000</link>
		<pubDate>Fri, 21 Aug 2009 07:38:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633864371240000000</guid>
		<dc:creator>DouglasH</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Indeed. They were addressing the new additions to C#...</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633865007930000000</link>
		<pubDate>Sat, 22 Aug 2009 01:19:53 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633865007930000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I was also unhappy about the covariance / contravariance discussion, so I'd like to work something up for ch9 for the near future.
</p>
<p>&nbsp;</p>
<p>I did peek at my old physics notes, and here's the gist from physics. Consider a parametric curve, meaning a function p(t) from a real-valued parameter, call it t, to abstract geometric points p in some space M. In calculus on manifolds, we learn that such
 points have various coordinate systems -- functions from abstract points p to n-vectors of real numbers (x1(p), x2(p), ..., xn(p)), such that we have differentiable functions from each coordinate system to all the others around every point. That means we can
 always identify abstract points p with n-vectors of real numbers, (x1(p), x2(p), ..., xn(p)) -- the coordinates of the point, in various ways -- say another set is (y1(p), y2(p), ..., yn(p)), so that the derivatives dxi/dyj and dyj/dxi exist (where i and j
 vary from 1 to n, inclusive).</p>
<p>&nbsp;</p>
<p>Now consider a function f(p) from the points p on the manifold to something else (usually some other real vectors but it doesn't matter). What happens with df(g(t))/dt when we change coordinate systems? By the chain rule, df/dt = sum(i=1..n, (df/dxi)*(dxi/dt)).
 But </p>
<p>&nbsp;</p>
<p>1) df/dxi = sum(k=1..n, (df/dyk)*(dyk/dxi)) -- a.k.a. covariant co-vector</p>
<p>2) dxi/dt = sum(l=1..n, (dxi/dyl)*(dyl/dt)) -- a.k.a. contravariant vector</p>
<p>&nbsp;</p>
<p>Quantities that vary in the same way as df/dxi are called co-vectors and are covariant. Here's a mnemonic. Abbreviate df/dxi as f,xi and automatically sum over repeated indices. Rewrite equation 1 as</p>
<p>&nbsp;</p>
<p>f,xi = f,yk * dyk/dxi.&nbsp; See the y's &quot;upstairs&quot; in the dyk/dxi on the right-hand-side?&nbsp; UPstairs means COvariant. Now look at equation 2 -- abbreviate dxi/dt as x.i :</p>
<p>&nbsp;</p>
<p>x.i = y.l * dxi/dyl. See the y's &quot;downstairs&quot; in the dxi/dyl on the right-hand-side? DOWNstairs means CONTRAvariant. Such things are called vectors.</p>
<p>&nbsp;</p>
<p>Ok, now how we turn these relationships amongst Coordinate Transformations into relationships amongst Types and Subtypes would be the questions I would ask to draw an analogy between co/contra variance in physics and co/contra variance in programming languages.
</p>
<p>&nbsp;</p>
<p>Ideas anyone? Can we relate types and subtypes to differentiable coordinate transformations? Is the &quot;type&quot; of an object similar to the &quot;coordinates of a point?&quot; Can the derivatives of the coordinate transformations (dxi/dyk) somehow be related to type coercions?</p>
<p>posted by brianbec</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633866474160000000</link>
		<pubDate>Sun, 23 Aug 2009 18:03:36 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633866474160000000</guid>
		<dc:creator>brianbec</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>For what it's worth, a solution to the deferred disposal problem can be found here:
<a href="http://solutionizing.net/2009/07/23/using-idisposables-with-linq/">Using IDisposables with&nbsp;LINQ</a>. The filestream example would look like this:</p>
<pre>IEnumerable&lt;string&gt; lines =<br>&nbsp;&nbsp;&nbsp; from fs in new Stream(&quot;...&quot;).Use()<br>&nbsp;&nbsp;&nbsp; from l in fs.ReadLines()<br>&nbsp;&nbsp;&nbsp; where l.Length &gt; 256<br>&nbsp;&nbsp;&nbsp; select l;</pre>
<pre>foreach(var l in lines)<br>{<br>&nbsp;&nbsp;&nbsp; // fs will be disposed with the enumerator<br>}</pre>
<p>The same approach can be used with a delegate to defer creation as well as disposal:&nbsp;() =&gt; new Stream(&quot;...&quot;). A
<strong>use</strong> keyword, a la F#, would be even better.</p>
<p>posted by dahlbyk</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633874594960000000</link>
		<pubDate>Wed, 02 Sep 2009 03:38:16 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633874594960000000</guid>
		<dc:creator>dahlbyk</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I was quite happy with the coverage - it was already unusual to mix physics and programming this way - very stimulating although beyond me. One of the best parts was the formulation of co- and contravariance rules via sequent notation, dualization and showing
 a statement sequence as a series of continuations, if I got that right. Definitely a video that expands horizons. And this stuff about ambient monads. I'm not sure that was really covered anywhere, was it?</p>
<p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633879370610000000</link>
		<pubDate>Mon, 07 Sep 2009 16:17:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633879370610000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I'm wondering if given the excitement about the dual nature, we might be losing part of the intention of IObservable.</p>
<p>&nbsp;</p>
<p>First of all, I'm thinking there might be a bit of a mismatch in the duality anyway.&nbsp; Primarily, IEnumerator and IEnumerable have a many-to-one relationship, whereas IObserver and IObservable havea many-to-many relationship, right?&nbsp; The deal is that IEnumerator
 has to have intimate knowledge about the structure of its IEnumerable that the app doesn't necessarily have; they're tightly bound.&nbsp; Whereas IObserver and IObservable are completely unaware of each others' internals.&nbsp;
</p>
<p>&nbsp;</p>
<p>I think the dual of IEnumerable would be something more like ILoadable, where you call ILoadable.GetLoader(), which then allows you to load values into an &quot;array&quot; or whatever, using Loader.MoveNext(bool) and Loader.SetValue(T).&nbsp; I certainly think the intention
 of IObservable is more valuable than any ILoadable concept (though ILoadable might be an interesting way to explore inserts and updates), so I wonder if the focus on duality is perhaps the wrong way to go about it.</p>
<p>&nbsp;</p>
<p>For example, I'm not sure I get the point of the OnError method.&nbsp; First of all, isn't there a duality mismatch here anyway—given that IObserver.OnNext(T) could also throw an exception, then to preserve absolute duality going the opposite direction, shouldn't
 we require that OnError also be a part of IEnumerator?&nbsp; But beyond that, it just doesn't seem to fit.&nbsp; Why would the Observable need to tell all Observers that there was some exception downstream?&nbsp; Just like an iterator doesn't need to know that there's an
 exception occurring in the app that uses it.&nbsp; So I think the focus on preserving duality really mucks up the
<em>intention</em> of IObservable in this case.</p>
<p>&nbsp;</p>
<p>Also, I think if duality was that important to the concept of IObservable and IEnumerable, then the dual of (for example) IList would be even more powerful.&nbsp; But wouldn't the dual of (for example) IList.Set(int, T) be IListDual.Get(out int, out T)?&nbsp; Is that
 useful in some fashion?&nbsp; I don't see anything, though I'd love to hear from anyone with an idea how it could be powerful.</p>
<p>posted by daxfohl</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633918195950000000</link>
		<pubDate>Thu, 22 Oct 2009 14:46:35 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633918195950000000</guid>
		<dc:creator>daxfohl</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Covariant/contravariant!&nbsp;</p>
<p>&nbsp;</p>
<p>Help! Someone call Eric Lippert <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by Benjol</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633929995330000000</link>
		<pubDate>Thu, 05 Nov 2009 06:32:13 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633929995330000000</guid>
		<dc:creator>Benjol</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Apple[] as<br />Fruit[] fs = as<br />Fruit f = fs[0]<br />fs[1] = new Banana</p>
<p>&nbsp;</p>
<p>In C#, the last line will throw ArrayTypeMismatchException. : <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-13.gif' alt='Angel' /> </p>
<p>posted by nyinyithann</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633942285410000000</link>
		<pubDate>Thu, 19 Nov 2009 11:55:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633942285410000000</guid>
		<dc:creator>nyinyithann</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Hi Guys,</p>
<p>Can someone explain this:</p>
<p>var values = (new[] { &quot;test 1&quot;, &quot;test 2&quot;, &quot;test 3&quot; }).ToObservable();</p>
<p>values.ToEnumerable().AsParallel().ForAll(Console.WriteLine);</p>
<p>ForAll method&nbsp;will never return. Why is this happening (I have November rx release for .net 3.5)?</p>
<p>Thank you.</p>
<p>posted by SergeSh</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633953319520000000</link>
		<pubDate>Wed, 02 Dec 2009 06:25:52 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633953319520000000</guid>
		<dc:creator>SergeSh</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>I'd be curious to know any of your thoughts on <a href="http://blogs.us.sogeti.com/ericswanson/2009/12/22/iobservable-reactive-and-composite-framework-event-management/">
my own implementation of IObservable</a>, which I had to rename to INotify since Microsoft is rolling the Reactive Framework out and including it in .NET version 4. I too was frustrated with managing weak event references as well as the implementation of events
 in WPF and now Silverlight using INotifyPropertyChanged versus DependencyProperty. Let me know if I have a screw loose or if I'm on the right path...</p>
<p>posted by ericis</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633971104320000000</link>
		<pubDate>Tue, 22 Dec 2009 20:27:12 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c633971104320000000</guid>
		<dc:creator>ericis</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>What is the difference between a publish/subscribe and observer/subject architectures?</p>
<p>posted by BMH</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634056550340000000</link>
		<pubDate>Wed, 31 Mar 2010 17:57:14 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634056550340000000</guid>
		<dc:creator>BMH</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>What Rx does is <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-13.gif' alt='Angel' />&nbsp;<span><span>provide&nbsp;</span><span>an interface for the subject/observer pattern in the form of push-based collections, and (b) show that these interfaces form a Monad, and hence you can compose transformations on push-based collections
 using the LINQ standard query operators, and (c) prove that the subject/observer pattern is dual to the iterator pattern.</span></span></p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634057439490000000</link>
		<pubDate>Thu, 01 Apr 2010 18:39:09 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634057439490000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx)</title>
		<description>
			<![CDATA[
<p>Just started watching this. About co/contravariance w.r.t. subtyping: producer types are covariant, and consumer types&nbsp;are contravariant to subtyping. Apple is a subtype of Fruit: wherever Fruit is used, Apple can be used too: A &lt;: F. That is because any
 quality Fruit has, Apple has too.</p>
<p>&nbsp;</p>
<p>Array read is a producer: give it an Int and it gives you an Apple. Now, A &lt;: F =&gt; (Int-&gt;A) &lt;: (Int-&gt;F). Wherever we use (Int-&gt;F), it gives us Fruits, so we must be prepared to handle Fruits there. But&nbsp;it's OK to use&nbsp;(Int-&gt;A) instead 'coz it'll give us Apples,
 which can go instead of Fruits always.</p>
<p>&nbsp;</p>
<p>With consumers it's the other way around. A&lt;:F =&gt; (F-&gt;Int) &lt;: (A-&gt;Int). Wherever we use&nbsp;Apples consumer, (A-&gt;Int), it is prepared to use Apples. So it means we must be supplying it with Apples. So we can use fruits consumer (F-&gt;Int) in its place, because
 this fruits consumer can always use Apples instead of Fruits.</p>
<p>&nbsp;</p>
<p>Graphically, we can envision the producers/consumers as pipes with a certain diameter - small for apples, bigger for fruits. There are many more fruits than there are apples - bananas too etc.&nbsp;Now, for a wide inlet of fruits consumer (us, in the 1st case),
 it can just as well handle all input from a narrower outlet of an apples producer. In the 2nd case, the narrow outlet of apples producer (us) can just as well go into a wider inlet of fruits consumer in general.</p>
<p>&nbsp;</p>
<p>Array read is a producer; array write is a consumer. Does&nbsp;this make sense?</p>
<p>&nbsp;</p>
<p>EDIT: and in general, covariant, when translated from Latin I gess, just means &quot;changing with the direction of change&quot;, and contravariant means &quot;changing in the opposite direction of change&quot;. Say we do something that enlarges one thing, and another one grows
 too, than it is covariant to the first w.r.t. our action. If it consistently shrinks, we say it's contravariant to the first w.r.t. our action.
</p>
<p>&nbsp;</p>
<p>For example, imagine you travel from city A to city B in one straight line. The further you go along the route, the further you are from the city A, so your distance from city A is covariant with the distance you travel in the car. But the distance to city
 B is contravariant&nbsp;to it - it grows smaller as you travel. I guess a &quot;travel operator&quot; in its covariant form will reflect the enlargement of the distance as measured from the origin point. But in its contravariant form it will show the shrinkage of distance
 as measured to the destination.</p>
<p>&nbsp;</p>
<p>Or take rotation: say we have a point on a plane, in some coordinate system. Now let's apply rotation to that plane. Point's coordinates will change WITH the plane's rotation, or covariantly. But what if we apply rotation to the coordinate system instead?
 Now the point's coordinates will change _in the opposite direction_ to the rotation, or contravariantly. That's where these terms come into physics from.
</p>
<p>posted by Will48</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634147059490000000</link>
		<pubDate>Wed, 14 Jul 2010 12:05:49 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx#c634147059490000000</guid>
		<dc:creator>Will48</dc:creator>
	</item>
</channel>
</rss>