<?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 - Rx Workshop: Programming the Cloud</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud/RSS"></atom:link>
	<image>
		<url>http://ak.channel9.msdn.com/ch9/d50c/7e4e49e9-a6d3-45d4-b77b-9f1a0150d50c/RxWorkshopAdvancedScheduling_100_ch9.jpg</url>
		<title>Channel 9 - Rx Workshop: Programming the Cloud</title>
		<link></link>
	</image>
	<description> Learn about the special challenges of distributed reactive applications and how to use distributed schedulers to write powerful reactive programs. Download the Challenge </description>
	<link></link>
	<language>en</language>
	<pubDate>Thu, 23 May 2013 12:04:42 GMT</pubDate>
	<lastBuildDate>Thu, 23 May 2013 12:04:42 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[<p>I got this to work, although I'm not sure if I could have made the action into an anonymous method?</p><p><pre class="brush: csharp">public IDisposable Subscribe(IObserver&lt;R&gt; observer)
{
    GenerateState state = new GenerateState
    {
        condition = this.condition,
        current = this.initial,
        iterate = this.iterate,
        observer = observer,
        resultSelector = this.resultSelector
    };

    Action&lt;GenerateState, Action&lt;GenerateState&gt;&gt; action = (_state, self) =&gt;
    {
        if (_state.condition(_state.current))
        {
            var result = _state.resultSelector(_state.current);
            _state.observer.OnNext(result);
            _state.current = _state.iterate(_state.current);

            self(_state);
        }
        else
            _state.observer.OnCompleted();
    };

    return scheduler.Schedule(state, action);
}
</pre></p><p>posted by Simply Ged</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634464214410000000</link>
		<pubDate>Sat, 16 Jul 2011 13:57:21 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634464214410000000</guid>
		<dc:creator>Simply Ged</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[Great stuff. Have you guys spoken with the compiler teams about potentially just adding the SerializableAttribute to closure classes and/or anonymous types in their next versions?? Having to manually introduce an MBV wrapper class for scenarios where multiple values need to be passed in seems like a it's going to turn into an exercise in typing.<p>posted by dmarsh</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634464312090000000</link>
		<pubDate>Sat, 16 Jul 2011 16:40:09 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634464312090000000</guid>
		<dc:creator>dmarsh</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[<p><pre class="brush: csharp">
|requires observer != null
|ensures result != null
public IDisposable Subscribe(IObserver&lt;R&gt; observer)
{
    var generateState = new GenerateState()
    {
        condition = condition,
        current = initial,
        iterate = iterate,
        observer = observer,
        resultSelector = resultSelector,
    };
    return scheduler.Schedule(generateState, (state, self) =&gt;
    {
        if (state.condition(state.current))
        {
            var result = state.resultSelector(state.current);
            state.observer.OnNext(result);
            state.current = state.iterate(state.current);
            self(state);
        }
        else
            state.observer.OnCompleted();
    });
}
</pre></p><p>This is what I came up with.&nbsp; It runs in AppDomainScheduler named scheduler.&nbsp; I want to build one of these schedulers to send remote entity framework queries around to different machines using WCF underneath.&nbsp; Is this possible?&nbsp; Any good getting started guides?</p><p>Also I run code contracts static checker and it complains that I might return null.&nbsp; I tried a few things like returning Disposable.Empty if IDisposable returned from Schedule function is null but that failed also.&nbsp; What is the correct behavior here to satisfy the contract.&nbsp; Thanks so much.</p><p>posted by AceHack</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634465484900000000</link>
		<pubDate>Mon, 18 Jul 2011 01:14:50 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634465484900000000</guid>
		<dc:creator>AceHack</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[Thanks for the intro series on Rx they are very helpful&#33;  I was very excited to start using it and the first thing I tried failed miserably&#33;  I just did not have enough examples to show us how to hook up Rx to an svc service.<br><br>I just put an IEnumrable off an svc service and tried to subscribe to it from a client.  I got an error service abnormally disconnected.<br><br>Can you show us an example on how to hookup Rx client to web service&#63;<br>Thanks&#33;<p>posted by Mouhammad Fakhoury</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634465660640000000</link>
		<pubDate>Mon, 18 Jul 2011 06:07:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634465660640000000</guid>
		<dc:creator>Mouhammad Fakhoury</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[ <p>@<a href="/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634464312090000000">dmarsh</a>: good point - compiler could figure out serializable &amp; mbr types</p><p>Wonder why the remote queries weren't using the QObservable &quot;provider&quot; where expressions &amp; values were remoted rather than type references...</p><p>posted by gt</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634495776620000000</link>
		<pubDate>Mon, 22 Aug 2011 02:41:02 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634495776620000000</guid>
		<dc:creator>gt</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[the following challenge solution is<br>using the &#40;T state, Func&#60;IScheduler,T,IDisposable&#62; f&#41; signature<br>it more complext than the Action signature<br>but may be better for real cloud schenarios<br><br>class GenerateObservable&#60;T, R&#62; &#58; IObservable&#60;R&#62;<br>        &#123;<br>            private IScheduler scheduler&#59;<br>            private GenerateState _state&#59;<br><br>            public GenerateObservable&#40;<br>                T initial, Func&#60;T, bool&#62; condition, <br>                Func&#60;T, T&#62; iterate, <br>                Func&#60;T, R&#62; resultSelector, <br>                IScheduler scheduler&#41;<br>            &#123;<br>                _state &#61; new GenerateState<br>                &#123; <br>                    current &#61; initial,<br>                    condition &#61; condition,<br>                    iterate &#61; iterate,<br>                    resultSelector &#61; resultSelector <br>                &#125;&#59;<br>                this.scheduler &#61; scheduler&#59;<br>            &#125;<br><br>            public IDisposable Subscribe&#40;IObserver&#60;R&#62; observer&#41;<br>            &#123;<br>                var state &#61; _state.Clone&#40;observer&#41;&#59;<br><br>                Func&#60;IScheduler, GenerateState, IDisposable&#62; _f &#61; <br>                    &#40;scheduler_, state_&#41; &#61;&#62;<br>                    &#123;<br>                        Func&#60;IScheduler, GenerateState, IDisposable&#62; f_ &#61; null&#59;<br>                        f_ &#61;&#40;scd, st&#41; &#61;&#62;<br>                            &#123;<br>                                string domainName &#61; string.Format&#40;&#34;Domain &#61; &#123;0&#125;&#34;, AppDomain.CurrentDomain.FriendlyName&#41;&#59;<br>                                Trace.WriteLine&#40;domainName&#41;&#59;<br>                                if &#40;st.condition&#40;st.current&#41;&#41;<br>                                &#123;<br>                                    var result &#61; st.resultSelector&#40;st.current&#41;&#59;<br>                                    st.observer.OnNext&#40;result&#41;&#59;<br>                                    st.current &#61; st.iterate&#40;st.current&#41;&#59;<br>                                    scd.Schedule&#40;st, f_&#41;&#59;<br>                                    Scheduler.Immediate.Schedule&#40;st, f_&#41;&#59;<br>                                    &#47;&#47;scd.Schedule&#40;st, f_&#41;&#59;<br>                                &#125;<br>                                else<br>                                    st.observer.OnCompleted&#40;&#41;&#59;<br>                        <br>                                return Disposable.Empty&#59;<br>                            &#125;&#59;<br>                        return f_&#40;scheduler_, state_&#41;&#59;<br>                    &#125;&#59;<br><br>                return scheduler.Schedule&#60;GenerateState&#62;&#40;state, _f&#41;&#59;<br>            &#125;<br><br>            &#91;Serializable&#93;<br>            class GenerateState<br>            &#123;<br>                public T current&#59;<br>                public Func&#60;T, bool&#62; condition&#59;<br>                public Func&#60;T, T&#62; iterate&#59;<br>                public Func&#60;T, R&#62; resultSelector&#59;<br>                public IObserver&#60;R&#62; observer&#59;<br><br>                &#35;region Clone<br><br>                public GenerateState Clone&#40;IObserver&#60;R&#62; observer&#41;<br>                &#123;<br>                    var state &#61; new GenerateState<br>                    &#123;<br>                        current &#61; current,<br>                        condition &#61; condition,<br>                        iterate &#61; iterate,<br>                        resultSelector &#61; resultSelector,<br>                        observer &#61; observer<br>                    &#125;&#59;<br><br>                    return state&#59;<br>                &#125;<br><br>                &#35;endregion &#47;&#47; Clone<br>            &#125;<br>        &#125;<br>    &#125;<br><p>posted by Bnaya</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634552134260893168</link>
		<pubDate>Wed, 26 Oct 2011 08:10:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634552134260893168</guid>
		<dc:creator>Bnaya</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[Could somebody update this series to reflect the changes in the Rx Framework and especially around all the changes around the IScheduler interfaces <p>posted by Madu Alikor</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634565274322653327</link>
		<pubDate>Thu, 10 Nov 2011 13:10:32 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634565274322653327</guid>
		<dc:creator>Madu Alikor</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[<p>I endorse @<a href="Rx-Workshop-8-Programming-the-Cloud#c634464312090000000">dmarsh</a> 's thought!</p><p>posted by AggelosBiboudis</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634580764268762378</link>
		<pubDate>Mon, 28 Nov 2011 11:27:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634580764268762378</guid>
		<dc:creator>AggelosBiboudis</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Programming the Cloud</title>
		<description>
			<![CDATA[<p>I think Erlang is much much simpler... this stuff ... it simply smells from a mile:)</p><p>I know that its&nbsp;possible to do it, but is it easy stuff, can you explain it to a junior quickly?</p><p>what you are trying to do with this azure scheduler is similar to what erlang can do of of a box, you have a problem passing stuff across&nbsp;boundaries, in Erlang you can send new code to execute on remote machine, and do&nbsp;upgrade&nbsp;on a fly, I don't expect that&nbsp;behavior&nbsp;here. Its almost&nbsp;indistinguishable, to pass a message across processes on a single node and across processes on different nodes, I know that only form of cross process communication in Erlang is message passing, and the whole VM and language semantics is built on that notion.</p><p>This code is&nbsp;self-explanatory&nbsp;</p><p>Pid ! {self(), Message}.</p><p>or</p><p>{process_name, Node} ! {self(), Message}.</p><p>you see the code and you say&nbsp;immediately, a got it, the only what you have to know is that &quot;!&quot; sends a message, whereas in your example, aaaa ok I have to remember that we go remote and we have to pass values in a certain way, and we have to remember that this work should be done on remote sheduler, etc, etc, it is not simple...&nbsp;very long way ahead of you... locally RX is great stuff, and I'm fascinated by it, but this azure scheduler stuff is to put it simply is over the top.</p><p>posted by maciejw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634653840965411822</link>
		<pubDate>Tue, 21 Feb 2012 01:21:36 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-8-Programming-the-Cloud#c634653840965411822</guid>
		<dc:creator>maciejw</dc:creator>
	</item>
</channel>
</rss>