<?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 staceyw</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Niners/staceyw/Comments/RSS"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>staceyw</title>
		<link></link>
	</image>
	<description></description>
	<link></link>
	<language>en</language>
	<pubDate>Sat, 25 May 2013 17:00:23 GMT</pubDate>
	<lastBuildDate>Sat, 25 May 2013 17:00:23 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Programming the Cloud with Actors: Inside ActorFx</title>
		<description>
			<![CDATA[<p>@Matthew</p><p>1) Strings. Calling by method name (i.e. string) has the high road in terms of loose coupling. To gain the local typing, could always wrap in a typed client proxy class (or the tool could build them like service references).&nbsp;Not sure how enums would be used in terms of calling methods. But auto generated typed proxies from meta-data on the uri seems to work fine in other remoting frameworks.&nbsp;And the lower layer stays loose. I suppose a win-win.&nbsp;I am curious if a meta-data public interface method will be added to return method/property names and return types.</p><p>2) Reflection. I am not clear where you feel reflection would be required in a method body. Maybe a use case&nbsp;example would help.</p><p>3) Message passing.&nbsp; Sync or Async, it is message passing either way.&nbsp; You can layer async on any sync method or visa-versa.&nbsp; AFAICT their Pub/sub is orthogonal to the subject of sync or async method invocation (i.e. message passing).</p><p>4) State Machines.&nbsp;I see nothing stopping one from implementing state machine&nbsp;in the actor and methods do actions based on current state. If, on the other hand,&nbsp; IAsyncState consistency is the concern, then that appears to be handled by&nbsp;correct construction of running&nbsp;delegates syncronously&nbsp;on a single thread. I may have&nbsp;missed your intention.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634971016474189937</link>
		<pubDate>Fri, 22 Feb 2013 03:47:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634971016474189937</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Programming the Cloud with Actors: Inside ActorFx</title>
		<description>
			<![CDATA[<p>Is there a way to solve the late binding method name deal so you can leverage .Net intellisense and compile time checking for method names?</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634970781807349280</link>
		<pubDate>Thu, 21 Feb 2013 21:16:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634970781807349280</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Programming the Cloud with Actors: Inside ActorFx</title>
		<description>
			<![CDATA[<p>Trying to build and run sample. Ran into two issues.</p><p>1) Namespace is &quot;$safeprojectname$&quot;, which fails to compile.&nbsp;Is this a left over from internal build system?</p><p>2) Project references System.Fabric, which is broken link. Where does System.Fabric exist?&nbsp; I did install the msi already.</p><p>TIA</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634970780150405820</link>
		<pubDate>Thu, 21 Feb 2013 21:13:35 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Programming-the-Cloud-with-Actors-Inside-ActorFx#c634970780150405820</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Anders Hejlsberg and Lars Bak: TypeScript, JavaScript, and Dart</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Going&#43;Deep/Anders-Hejlsberg-and-Lars-Bak-TypeScript-JavaScript-and-Dart#c634857594758291840">n4cer</a>:Completely agree.&nbsp;I was thinking same as I was watching. Why on earth not just make a common IL.&nbsp; All languages (including xaml)&nbsp;would only have to compile down to common&nbsp;IL. IL would be much easier for committee to agree on also as naming&nbsp;and such would not be a major issue as it would be abstracted anyway. Already well known in the art so don't have to start from stage 1. &nbsp;Language vendors could then also&nbsp;supply decompiler plug-ins for their language for the developers (users would not care or need a decompiler) to view page code in their language of choice.&nbsp; Because libraries and tooling would use IL also, the language of choice could interact with language constructs on the language of choice (i.e. public&nbsp;interfaces, Casing, etc). Win-win.</p><p>This would completely stop the&nbsp;issue of&nbsp;language discussions and what is best. As Anders has pointed out in past, language design is hard and&nbsp;is almost never right&nbsp;out of the gate and&nbsp;incorrect assumptions are always made and you can't change&nbsp;it after release which means you have to spend 5-10 years on beta before release for something this big.&nbsp; It seems forcing javascript on everyone in&nbsp;the browser goes against the&nbsp;whole open INET mentality from the start.&nbsp;</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-and-Lars-Bak-TypeScript-JavaScript-and-Dart#c634858619007941944</link>
		<pubDate>Mon, 15 Oct 2012 01:38:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Anders-Hejlsberg-and-Lars-Bak-TypeScript-JavaScript-and-Dart#c634858619007941944</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Minute of Mango: Custom Ringtones</title>
		<description>
			<![CDATA[<p>I agree with Walpy if we are&nbsp;talking improvement ideas.&nbsp; Make it easy to cut N seconds from an mp3 or any media track&nbsp;and Send to ringtone. Simple and done.&nbsp; New sales montra for ya.&nbsp; Get To Done.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Minute-of-Mango/Minute-of-Mango-Custom-Ringtones#c634654821327423514</link>
		<pubDate>Wed, 22 Feb 2012 04:35:32 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Minute-of-Mango/Minute-of-Mango-Custom-Ringtones#c634654821327423514</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: YOW! 2011: Bjorn Freeman-Benson - Software Psychology</title>
		<description>
			<![CDATA[<p>Good talk. Charles, agree that way forward for&nbsp;concurrency&nbsp;may be to do it less and copy more at least for shared state. As strange as that sounds. I have thoughts on a new sync primitive called &quot;sync&quot; that combines thoughts from monitor, reader/writer, and actors messages, but keeps things in the&nbsp;imperative&nbsp;world. Thoughts <a href="http://ourbizforward.com/IdeaFactory/post/2012/01/02/Sync-as-a-new-concurrency-primitive-in-Net.aspx">here</a>. Comments welcome.</p><p>&nbsp;</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Bjorn-Freeman-Benson-Software-Psychology#c634612514150103816</link>
		<pubDate>Wed, 04 Jan 2012 05:23:35 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/YOW-2011-Bjorn-Freeman-Benson-Software-Psychology#c634612514150103816</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Expert Panel Q&amp;A featuring Scott Guthrie, Dave Campbell, and Mark Russinovich</title>
		<description>
			<![CDATA[<p>I like the improvements Scott. Good job. Needed your web touch.<br>Still have some issues on the billing side. I have a sub for $10/mth and one month is $34.00. You go to click on that bill and you get &quot;Resource not available.&quot; Funny it happens to the only bill I have questions on?</p><p>Shards and multi-tenant is really welcome feature.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Events/windowsazure/learn/Expert-Panel-Q-A-featuring-Scott-Guthrie-Dave-Campbell-and-Mark-Russinovich#c634598545340242928</link>
		<pubDate>Mon, 19 Dec 2011 01:22:14 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Events/windowsazure/learn/Expert-Panel-Q-A-featuring-Scott-Guthrie-Dave-Campbell-and-Mark-Russinovich#c634598545340242928</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Previewing The Windows Store</title>
		<description>
			<![CDATA[<p>I find the &quot;share&quot; language a bit odd and backwards. &quot;You share 70% with us&quot;?&nbsp; I think that&nbsp;is the other way round. The developers share 30% with you. We are the customers,&nbsp;and we make the apps and share 30% with the retailer (i.e. the store).</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/posts/Previewing-The-Windows-Store#c634593410857038211</link>
		<pubDate>Tue, 13 Dec 2011 02:44:45 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/posts/Previewing-The-Windows-Store#c634593410857038211</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: SPLASH 2011: Dave Thomas - On Modern Application Development</title>
		<description>
			<![CDATA[<p>Dave seem to like Access.&nbsp; Should note that Acces in the cloud and in Azure is now called&nbsp;MS LightSwitch.&nbsp; IMO, even better than access, 3-tier by design, no walls, and native sql backend. to boot. Good stuff.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Dave-Thomas-On-Modern-Application-Development#c634565899358855129</link>
		<pubDate>Fri, 11 Nov 2011 06:32:15 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Dave-Thomas-On-Modern-Application-Development#c634565899358855129</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Drawbridge: A new form of virtualization for application sandboxing</title>
		<description>
			<![CDATA[<p>Nice. So in the future, a user could hit a exception, then &quot;click-dump&quot; the process (as a button in the exception window)&nbsp;and email to me. I could open that in VS debuging and be right in the context of the issue and even see what happened before the exception.&nbsp; Probably could also add a 20 sec reply window replay&nbsp;what user was doing 20 seconds before the issue for even more local context.&nbsp; Now that itself&nbsp;is a game changer. Also a neat way to publish working VS solutions for samples and demos, or office documents. The&nbsp;target user does not even have to have office installed&nbsp;and could even open from&nbsp;over the web. Big game changer. Nice what senerios that could enable.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Drawbridge-An-Experimental-Library-Operating-System#c634545623234807877</link>
		<pubDate>Tue, 18 Oct 2011 19:18:43 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Drawbridge-An-Experimental-Library-Operating-System#c634545623234807877</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Visual Studio Toolbox: Power Commands for Visual Studio 2010</title>
		<description>
			<![CDATA[ <p>Thanks for the vid. &nbsp;Question. Could they add a &quot;Remove unused references&quot; to References node? Remove any ref that is not called in the project from the list.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Power-Commands-for-Visual-Studio-2010#c634470086290000000</link>
		<pubDate>Sat, 23 Jul 2011 09:03:49 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Power-Commands-for-Visual-Studio-2010#c634470086290000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Observables versus Events</title>
		<description>
			<![CDATA[ <p>&quot;As does your TextChanged (and the original).&quot;</p><p>But calling TextChanged is up to publisher. So publisher would not call if not changed. Changing that behavior was not part of the challenge as I read it. &nbsp;Was fun series in any event (pun intended).&nbsp;</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634456065140000000</link>
		<pubDate>Thu, 07 Jul 2011 03:35:14 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634456065140000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Observables versus Events</title>
		<description>
			<![CDATA[ <p>@kurator. My code produced the desired output and the 13. It is not dependant on subscribers of&nbsp;TextChanged event. It is dependant on publisher calling OnTextChanged().</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634454154330000000</link>
		<pubDate>Mon, 04 Jul 2011 22:30:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634454154330000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Observables versus Events</title>
		<description>
			<![CDATA[ <p>@jyates. I think that may not follow the spirt of the challenge.</p><p>1) Your LengthChanged event is always fired after textchanged, even if Length does not change. So it fires too much.</p><p>2) The challenge had a template to follow and not remove getter/setter&nbsp;(i.e. Add, Remove) on the new event afaict.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634453938590000000</link>
		<pubDate>Mon, 04 Jul 2011 16:30:59 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634453938590000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Rx Workshop: Observables versus Events</title>
		<description>
			<![CDATA[<p>Thanks for video.&nbsp;Is this right?</p><p><pre class="brush: text">namespace IntroductionToRx
{
    class Events
    {
        public event Action&lt;string&gt; TextChanged;
        private event Action&lt;int&gt; lenChanged;
        private int lastLen;

        public virtual void OnTextChanged(string text)
        {
            var t = TextChanged;
            if (t != null)
                t(text);
            if (lastLen != text.Length)
            {
                lastLen = text.Length;
                OnLenChanged(text.Length);
            }
        }
        public virtual void OnLenChanged(int len)
        {
            var t = lenChanged;
            if (t != null)
                t(len);
        }
        public event Action&lt;int&gt; LengthChanged
        {
            add
            {
                lenChanged = (Action&lt;int&gt;)Delegate.Combine(lenChanged, value);
            }
            remove
            {
                lenChanged = (Action&lt;int&gt;)Delegate.Remove(lenChanged, value);
            }
        }
    }
}

namespace IntroductionToRx
{
    class Observables
    {
        ISubject&lt;string&gt; textChanged = new Subject&lt;string&gt;();
        int lastLen;

        public virtual void OnTextChanged(string text)
        {
            textChanged.OnNext(text);
        }

        public IObservable&lt;string&gt; TextChanged { get { return textChanged; } }

        public IObservable&lt;int&gt; LengthChanged
        {
            get
            { // Compose new &quot;event&quot; by filtering existing event.
                return textChanged.Where(s =&gt; s.Length != lastLen).Do(s=&gt;lastLen=s.Length).Select(s=&gt;s.Length);
            }
        }
    }
}

Output
======================
*** Events ***
The
Reactive
Extensions
10
are
3
13
*** Observables ***
The
Reactive
Extensions
10
are
3
13</pre></p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634453578740000000</link>
		<pubDate>Mon, 04 Jul 2011 06:31:14 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/Rx-Workshop/Rx-Workshop-Observables-versus-Events#c634453578740000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Stephen Toub: Async Update - Technical Overview and Building Awaitable Types</title>
		<description>
			<![CDATA[ <p>I just realized the trusty&nbsp;DoEvents() was sort of an old school version of async.&nbsp; Schedule rest of me on the queue on current context.&nbsp;</p><p>Good work.&nbsp; Look forward to trying the new bits.&nbsp; Thank you.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-Async-CTP-SP1-Refresh-Technical-Overview-and-Building-Awaitable-Types#c634387758260000000</link>
		<pubDate>Tue, 19 Apr 2011 02:10:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-Async-CTP-SP1-Refresh-Technical-Overview-and-Building-Awaitable-Types#c634387758260000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Stephen Toub: Inside TPL Dataflow</title>
		<description>
			<![CDATA[ <p>Shouldn't DeclinePermanently() instead be something like PostLast(params T[] lastItems) ?&nbsp;At some point, I am going to be the last poster. But doing this is not atomic:</p><p><pre class="brush: text">Post(1);
// Not atomic.
DeclinePermanently();</pre></p><p>Another producer could (and eventually will)&nbsp;sneak in between the calls. The only way to avoid that is&nbsp;code in&nbsp;another sync structure (i.e. lock), which your trying to avoid. Thoughts?</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-TPL-Dataflow#c634323981730000000</link>
		<pubDate>Fri, 04 Feb 2011 06:36:13 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-TPL-Dataflow#c634323981730000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Stephen Toub: Inside TPL Dataflow</title>
		<description>
			<![CDATA[ <p>Much coolness.&nbsp; Could you standardize on Add/Take instead of mixing Post/Receive/Add/Take in all blocks? Everything else is ready to go! JK <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' />&nbsp; Will have to spend some more time with dataflow now.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-TPL-Dataflow#c634323595660000000</link>
		<pubDate>Thu, 03 Feb 2011 19:52:46 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Stephen-Toub-Inside-TPL-Dataflow#c634323595660000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Announcing the Reactive Extensions Developer Center</title>
		<description>
			<![CDATA[ <p>As I remember it, Volta had &lt;=&nbsp;little to do with Rx.&nbsp; Volta was doing some interesting N-tier compile stuff. What ever happened to that?&nbsp; Was that just a cover project for Rx?</p><p>BTW- Great news on the Dev Center.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/posts/Announcing-the-Reactive-Extensions-Developer-Center#c634315346810000000</link>
		<pubDate>Tue, 25 Jan 2011 06:44:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/posts/Announcing-the-Reactive-Extensions-Developer-Center#c634315346810000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: E2E: Herb Sutter and Erik Meijer - Perspectives on C++</title>
		<description>
			<![CDATA[ <p><blockquote><div class="quoteText">@<a href="/Shows/Going&#43;Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308118580000000">staceyw</a>: Yes indeed if you limit usage by proper API design, in any language it's easy to constrain usage to only safe usage <img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9" alt="Tongue Out"> the real trick is allowing both power AND correct usage of the abstraction.</div></blockquote></p><p>Yes. I am not sure this solution gets us 100% there, but is powerful (allows arbitrary lamba code) and is safe (orders access to state in a sane way).&nbsp;It also&nbsp;would seem to&nbsp;lead down a correct-by- construction path I think. Some details to work out, but think it&nbsp;can work in general and smells nice.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308914920000000</link>
		<pubDate>Mon, 17 Jan 2011 20:04:52 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308914920000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: E2E: Herb Sutter and Erik Meijer - Perspectives on C++</title>
		<description>
			<![CDATA[ <p>Just stick to the tech. Nobody cares about other opinions.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308260870000000</link>
		<pubDate>Mon, 17 Jan 2011 01:54:47 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308260870000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: E2E: Herb Sutter and Erik Meijer - Perspectives on C++</title>
		<description>
			<![CDATA[ <p>Had a even better idea. The actor framework exposes Read() and Write() methods to every actor.&nbsp; The actor maintains a RW lock internally via a r/w scheduler.&nbsp; All properties must be accessed via Read or Write methods and not directly.&nbsp; The framework will pass either a read&nbsp;actor reference or a Write reference to the lambda as needed.&nbsp; A read reference can't be cast to a write interface, etc.&nbsp; With a Read reference object, you can only call Read safe methods and properties.</p><p><pre class="brush: csharp">Task&lt;int&gt; t = actor.Read((readRef)=&gt;
{
     return readRef.X &#43; readRef.Y;
     // Writes not allowed:
     // readRef.UpdateSome(true, 5); // Not even exposed.
});

Task&lt;int&gt; t = actor.Write((writeRef)=&gt;
{
    // I have a write lock inside this lamda to the Actor.
    int i = writeRef.X;
    i = i &#43; writeRef.Y;
    return writeRef.UpdateZ(i); // Write methods exposed.
});

</pre></p><p>So class may look like:</p><p><pre class="brush: csharp">public class MyActor : Actor
{
    //public Task Read(Func&lt;ActorReader, Task&gt;); // from base.
    //public Task Write(Func&lt;ActorWriter, Task&gt;);
    public int X {get{return x;} set{x = value;}} // Properties only accessable via Read/Write functions above.
    
    [WriterMethod]
    public int UpdateCount(int i);

    [ReaderMethod]
    public int GetCount();
    
    //...
}</pre></p><p>So in this way, multiple readers can run concurrently&nbsp;and writers are scheduled between read groups.&nbsp; My lambda code never has to deal with any lock logic.&nbsp; The framework can do runtime check and throw&nbsp;if trying to Write inside a Reader lamda.&nbsp;Maybe could even do compile time check.&nbsp; You adorn Methods with &quot;Write&quot; attributes if the method updates internal state.&nbsp; Otherwise, the method is assumed to be read only and must not modify internal invariants.&nbsp; So I think this would solve Erik's issue with Races on properties.&nbsp; I guess you could take it a step farther and say public methods are only Helpers and just codify some operation you could do yourself with a Read()/Write() lamda.&nbsp; Maybe even say all methods must use properties and not be able to change private vars. That way, you have only 1 write channel and leverage that.</p><p>It also means you have 1 spot to handle rollback&nbsp;if runtime made&nbsp;Write() transactional. If a lamda throws,&nbsp;the runtime&nbsp;just does a rollback to the Entry state before the call.&nbsp; That means nested graphs would just work also in a call graph. Exceptions just perk to the top and are exposed in your Task&lt;T&gt; future.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308118580000000</link>
		<pubDate>Sun, 16 Jan 2011 21:57:38 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634308118580000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: E2E: Herb Sutter and Erik Meijer - Perspectives on C++</title>
		<description>
			<![CDATA[ <p>I think Erik talked about remoteable linq and lambda before, but not heard anything.</p><p>Got me thinking, that could possibly solve the getter/setter property thing.&nbsp; Getter/setters could only be accessed via a func call so they would be safe on the single threaded Actor.&nbsp; It would also be a way sync multiple steps (actor method calls, property updates, actor blocking operation,&nbsp;etc) in single&nbsp;atom operation.&nbsp; You can not&nbsp;predict or write every possible api someone would need, so you need something like that anyway.&nbsp;&nbsp;A generic kind of Rest/ADO&nbsp;Data&nbsp;update/query on Actors objects.&nbsp; Actually, Astoria is similar to the model we are talking about.</p><p><pre class="brush: csharp">actor.Run(()=&gt;
{
    // Public X only settable via a lambda.
    actor.X = actor.X &#43; 1;
});

// Run() is a some special function avalable on all Actors.</pre></p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634307692900000000</link>
		<pubDate>Sun, 16 Jan 2011 10:08:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634307692900000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: E2E: Herb Sutter and Erik Meijer - Perspectives on C++</title>
		<description>
			<![CDATA[ <p>Good one. Erik,&nbsp;MrCrash is crazy, your the best.</p><p>I do think there is still more&nbsp;discussion&nbsp;to be had&nbsp;on the x= x &#43; 1 problem Erik mentioned on Actor pattern. Do you solve it via convention, static rules, or some other way? Guess would need to list all the use cases and sticky points and toss spegetti at it.</p><p>On the Future object deal. I think Erik mentioned before, that when it is future or async, you Need to see the difference so your not back in RPC world which leads the programmer down a path where everything looked local, but is not.&nbsp; So I think explict difference can be good here. However, I see where that abstraction could be good also.&nbsp; Maybe there is still a middle ground not seen yet.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634307558130000000</link>
		<pubDate>Sun, 16 Jan 2011 06:23:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/E2E-Herb-Sutter-and-Erik-Meijer-Perspectives-on-C#c634307558130000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: New Home Page, Smooth Streaming added to Channel 9 today</title>
		<description>
			<![CDATA[ <p>@PriMinister. Huh? The point of SS is &quot;highest&quot; quality possible on your connection and client - not lowest. SS is best.&nbsp; Your&nbsp;player is in control of the stream.&nbsp;Way it should have been done from beginning. But have it now. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' />&nbsp; Sure there may be some edges to polish as users hit them.</p><p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/C9Team/New-Home-Page-Smooth-Streaming-added-to-Channel-9-today#c634307476400000000</link>
		<pubDate>Sun, 16 Jan 2011 04:07:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/C9Team/New-Home-Page-Smooth-Streaming-added-to-Channel-9-today#c634307476400000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
</channel>
</rss>