<?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>Channel 9 - Discussions by dcuccia</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 - Discussions by dcuccia</title>
		<link>http://channel9.msdn.com/Niners/dcuccia/Discussions</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Niners/dcuccia/Discussions</link>
	<language>en</language>
	<pubDate>Sat, 25 May 2013 03:01:00 GMT</pubDate>
	<lastBuildDate>Sat, 25 May 2013 03:01:00 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>0</c9:totalResults>
	<c9:pageCount>0</c9:pageCount>
	<c9:pageSize>0</c9:pageSize>
	<item>
		<title>Site Feedback - Chrome and the Silverlight player</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">joechung said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">alwaysmc2 said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>Chrome doesn't support Silverlight's windowless mode correctly so in the near future, the Silverlight creative won't appear in Chrome on the microsoft.com homepage any more either. Ditto Safari for Windows and Opera 9, though it looks like Opera 10 alpha
 supports windowless Silverlight just fine.</p>
<p>Most user agent sniffing code hasn't been updated to account for Chrome, which pretends to be Safari, for whatever reason:</p>
<p>Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.36 Safari/525.19</p>
</div></blockquote>Bummer...I want C9 in SL in Chrome! (waaaa waaaa waaaa...)&nbsp;
<div><br /></div>
<div>I'm not sure I get it...</div>
<div>
<ul id="false">
<li>There are plenty of &quot;working&quot; examples of SL apps working in full-screen (is this different from windowless?)</li><li>Tim Heuer <span><a href="http://timheuer.com/blog/archive/2009/02/11/moonlight-and-silverlight-detection-google-chrome-user-agent.aspx"><span></a><a href="http://timheuer.com/blog/archive/2009/02/11/moonlight-and-silverlight-detection-google-chrome-user-agent.aspx"><span></a><a href="http://timheuer.com/blog/archive/2009/02/11/moonlight-and-silverlight-detection-google-chrome-user-agent.aspx">teases
 us</a></span></span></span>&nbsp;with &quot;it's unsupported but all you gotta do is&quot;:<br /><span class="Apple-style-span">
<p>On line 93 in Silverlight.supportedUserAgent.js, insert this line:</p>
<div>
<div>
<pre><span>   1:</span> <span>else</span> <span>if</span> (ua.indexOf(<span>'Chrome'</span>) &gt;= 0) {</pre>
<pre><span>   2:</span>     slua.Browser = <span>'Chrome'</span>;</pre>
<pre><span>   3:</span> }</pre>
</div>
</div>
</span></li></ul>
</div>
<div>
<div>...but I'm not a web guy, so I'm sure there's a very good reason for not enabling it.</div>
<div><br /></div>
</div></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Feedback/444736-Chrome-and-the-Silverlight-player/a8c636f7330847c18fb09dea00f8c914#a8c636f7330847c18fb09dea00f8c914</link>
		<pubDate>Sat, 14 Feb 2009 09:06:39 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Feedback/444736-Chrome-and-the-Silverlight-player/a8c636f7330847c18fb09dea00f8c914#a8c636f7330847c18fb09dea00f8c914</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>16</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - I was told today to not worry cross-thread execution when...</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">gadget said:</div><div class="quoteText">I check inside the method to see if an invoke is required. If so have the delegate make a recursive call to the method, otherwise perform the action.<br /><br />This is in vb but should be clear.
<p>&nbsp;Public Sub ReadKeyboard()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Me.InvokeRequired Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim x As Action = AddressOf&nbsp;ReadKeyboard<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Me.Invoke(x)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; me.Text = &quot;Keyboard acquired&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />&nbsp;End Sub<br /><br />Check out the&nbsp;invokerequired property of the control class.<br /><a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspx">http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspx</a><br /></p>
</div></blockquote>This is a cross-cutting concern, no? I do this with the following extension methods:<br /><br />public static void InvokeOnUIThread( this Control myControl, Action action );<br />public static void InvokeOnUIThread&lt;T&gt;( this Control myControl, Action&lt;T&gt; action, T parameter );<br /><br />which would be used as follows:<br /><br />this.InvokeOnUIThread( () =&gt; myControl.Text = &quot;Keyboard acquired&quot; );<br /><br /><a href="http://channel9.msdn.com/forums/TechOff/405710-Extension-Method-for-InvokeRequired/">Asked for feeback</a> on this earlier...what do you guys think?<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/445198-I-was-told-today-to-not-worry-cross-thread-execution-when/16791c7b00b84919b3729deb0001d529#16791c7b00b84919b3729deb0001d529</link>
		<pubDate>Tue, 25 Nov 2008 04:32:00 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/445198-I-was-told-today-to-not-worry-cross-thread-execution-when/16791c7b00b84919b3729deb0001d529#16791c7b00b84919b3729deb0001d529</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>14</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Site Feedback - Catch-up button</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">HumanCompiler said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">dcuccia said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
A &quot;My Threads&quot; page is definitely something we've talked about adding and would definitely add value.&nbsp; We just need to find the time to build something like this and we're currently swamped with other time sensitive projects.</div></blockquote>Hey HumanCompiler<br /><blockquote>Google Reader is a bit different in that it's only querying the RSS feeds you've subscribed to which is more than likely a smaller list than all posts on Channel 9.</blockquote>
I subscribe to <a href="http://channel9.msdn.com/forums/RSS/">http&#58;&#47;&#47;channel9.msdn.com&#47;forums&#47;RSS&#47;</a>. Is that not all the threads?<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/cf9284fe516d400492e29dea00f84d97#cf9284fe516d400492e29dea00f84d97</link>
		<pubDate>Tue, 14 Oct 2008 03:17:29 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/cf9284fe516d400492e29dea00f84d97#cf9284fe516d400492e29dea00f84d97</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>15</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Site Feedback - Catch-up button</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">dcuccia said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">HumanCompiler said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
I do this all the time...a &quot;Mark all as read&quot; feature is built in to Google Reader. Of course, this works only for finding new threads if you're subscribed to 'Channel 9' RSS feeds, but it also works if you're subscribed to comments on a particular thread.<br /></div></blockquote>[deleted - duplicate post]</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/787732f5952a41acb5089dea00f84ce2#787732f5952a41acb5089dea00f84ce2</link>
		<pubDate>Sun, 12 Oct 2008 19:38:15 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/787732f5952a41acb5089dea00f84ce2#787732f5952a41acb5089dea00f84ce2</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>15</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Site Feedback - Catch-up button</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">dcuccia said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">HumanCompiler said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
I do this all the time...a &quot;Mark all as read&quot; feature is built in to Google Reader. Of course, this works only for finding new threads if you're subscribed to 'Channel 9' RSS feeds, but it also works if you're subscribed to comments on a particular thread.<br /></div></blockquote>...so I suppose the feature would be helpful if you wanted a way of seeing all comments to all threads w/o having to subscribe to each feed.
<br /><br />Another way to achieve the same thing would be create an RSS/Atom feed for 'All Comments'.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/fb1c6f3d815a4b72a8959dea00f84cb7#fb1c6f3d815a4b72a8959dea00f84cb7</link>
		<pubDate>Sun, 12 Oct 2008 19:38:00 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/fb1c6f3d815a4b72a8959dea00f84cb7#fb1c6f3d815a4b72a8959dea00f84cb7</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>15</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Site Feedback - Catch-up button</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">HumanCompiler said:</div><div class="quoteText">blowdart has&nbsp;<a href="http://channel9.msdn.com/forums/Feedback/424302-Keyword-filtering/?CommentID=424820">asked for&nbsp;mark all as read</a>&nbsp;too.&nbsp; So my explaination of why it's not an easy change is over there too.&nbsp; We figured
 more people would read less than half of the threads that exist so we built the data to be scalable that way.&nbsp; If we hear enough people say they read more than half of the threads that go through the coffeehouse, I'm sure we'd be motivated to make the change.&nbsp;
 So far there have been 2 of you.&nbsp; <img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif" alt="Smiley"></div></blockquote>I do this all the time...a &quot;Mark all as read&quot; feature is built in to Google Reader. Of course, this works only for finding
 new threads if you're subscribed to 'Channel 9' RSS feeds, but it also works if you're subscribed to comments on a particular thread.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/ca83276cea53470488c29dea00f84c8a#ca83276cea53470488c29dea00f84c8a</link>
		<pubDate>Sun, 12 Oct 2008 19:33:42 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Feedback/432620-Catch-up-button/ca83276cea53470488c29dea00f84c8a#ca83276cea53470488c29dea00f84c8a</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>15</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Thank god it&#39;s Monday!</title>
		<description><![CDATA[<p>Can't wait to work on the crap I couldn't finish all weekend...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/431315-Thank-god-its-Monday/431315#431315</link>
		<pubDate>Mon, 06 Oct 2008 06:28:55 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/431315-Thank-god-its-Monday/431315#431315</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>18</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Unconventional use of indexers</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">stevo_ said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">Ion Todirel said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
I'd be honest and say I don't think it adds anything or makes it really different, to me it just serves as a barrier for people to realize whats actually going on here..</div></blockquote>Thanks for the thoughts Ion and stevo_.
<br>
<br>
Is the &quot;Get&quot; class a barrier too? If you had factory methods, which would you prefer (assuming &quot;Get&quot; is used for many purposes in the DSL)?<br>
<br>
<pre class="brush: csharp">A[Get.Range(0,5,255)]</pre>
<br>
<br>
or a classic <br>
<br>
<pre class="brush: csharp"> A[Range.GetRange(0,5,255)]</pre>
<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/426985-Unconventional-use-of-indexers/29ae48ed6a314313a2669dea00fd6dad#29ae48ed6a314313a2669dea00fd6dad</link>
		<pubDate>Fri, 12 Sep 2008 20:13:26 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/426985-Unconventional-use-of-indexers/29ae48ed6a314313a2669dea00fd6dad#29ae48ed6a314313a2669dea00fd6dad</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Unconventional use of indexers</title>
		<description><![CDATA[<p>I'm playing around with trying to make array math in C# as easy and concise as in Matlab, and (besides array operators) the biggest language &quot;mismatch&quot; is in indexers, ranges, etc. In Matlab, I can easily get a subarray of A, such as A[0:5:255]<br>
<br>
As a user of a fluent interface DSL in C#, would you ever put up with unconventional use of indexers? Like:<br>
<br>
<pre class="brush: csharp">A[Get.Range[0,5,255]]</pre>
<br>
<br>
...where Range is actually a static readonly field holding an instance of class Range<br>
<br>
<pre class="brush: csharp">    public class Get
    {
        public static readonly Range Range = new Range();
        public static readonly Size Size = new Size();
    }

    public class Range
    {
        public Range this[int from, int to] { get { return new Range(from, 1, to); } }
        public Range this[int from, int every, int to] { get { return new Range(from, every, to); } }

        private Range(int start, int every, int stop) { Start = start; Every = every;  Stop = stop; }
        private Range(int start, int stop) : this(start, 1, stop) { }
        internal Range() { } // for indexer use

        public int Start { get; private set; }
        public int Stop { get; private set; }
        public int Every { get; private set; }
        public int Count() { return (Stop - Start) / Every &#43; 1; }
    }

    public class Size
    {
        public Size this[int d0] { get { return new Size(new int[] { d0 }); } }
        public Size this[int d0, int d1] { get { return new Size(new int[] { d0, d1 }); } }
        public Size this[int d0, int d1, int d2] { get { return new Size(new int[] { d0, d1, d2 }); } }
        public Size this[int d0, int d1, int d2, int d3] { get { return new Size(new int[] { d0, d1, d2, d3 }); } }

        private Size(int[] dimensions) { Dimensions = dimensions.ToArray(); }
        internal Size() { } // for indexer use

        public int[] Dimensions { get; private set; }
    }
</pre>
<br>
<br>
Obviously the following would be more C-sharpy:<br>
<br>
<pre class="brush: csharp">A[new Range(0,5,255)]</pre>
<br>
<br>
But, isn't it OK to stray a bit as long as there's a consistent convention in the DSL?<br>
<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/426985-Unconventional-use-of-indexers/426985#426985</link>
		<pubDate>Thu, 11 Sep 2008 06:53:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/426985-Unconventional-use-of-indexers/426985#426985</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Zeep Mobile APIs - Free SMS!</title>
		<description><![CDATA[<p><a href="http://channel9.msdn.com/shows/This&#43;Week&#43;On&#43;Channel&#43;9/This-Week-on-C9-IE8-and-Popfly-Betas-WPF-tools-and-apps-SP1-improvements-and-more/">This week</a> on, um &quot;This Week on C9&quot; the guys pointed out Zeep Mobile, a free service for sending and receiving
 SMS messages (last 40 characters are reserved for targeted advertising). <br>
<br>
They have both Ruby and Python APIs <a href="http://code.google.com/p/zeep-messaging/wiki/Source?tm=4">
available</a> on Google code. <br>
<br>
Usage from &quot;Getting Started&quot; (Python example):<br>
<br>
&nbsp;&nbsp;&nbsp; import zeep.sms<br>
&nbsp;&nbsp;&nbsp; connection = zeep.sms.connect(&quot;&lt;your api key&gt;&quot;, &quot;&lt;your secret key&gt;&quot;)<br>
&nbsp;&nbsp;&nbsp; connection.send_message(&quot;&lt;user_id&gt;&quot;, &quot;Surfs up!&quot;)<br>
<br>
Based on the source code, it looks like someone with even basic web authentication skills could whip up a .NET/Silverlight version...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/424515-Zeep-Mobile-APIs-Free-SMS/424515#424515</link>
		<pubDate>Mon, 01 Sep 2008 00:29:45 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/424515-Zeep-Mobile-APIs-Free-SMS/424515#424515</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>1</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - &quot;Near C Performance&quot; w/ TraceMonkey JavaScript Engine</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">JChung2006 said:</div><div class="quoteText">
<p>I'm surprised that you didn't mention GWT or Script#.&nbsp; GWT is more popular than Volta, Script#, and JSC combined.</p>
<p>It isn't too hard to envision an optimizing JavaScript JIT compiler being able to optimize computationally intensive code with no I/O or DOM manipulation to C-level performance figures. These optimizations are largely (but not completely) irrelevant to Web
 programming. I don't really see people flocking to reimplement their performance-critical code in JavaScript. They should be focusing on speeding up the DOM and browser rendering stacks instead.</p>
</div></blockquote>
<blockquote>I'm surprised that you didn't mention GWT or Script#<br>
</blockquote>
I completely forgot about Script#, thanks! <br>
<br>
I'm personally coming from the perspective of bringing traditional .NET desktop development to the web browser, so Volta and JSC seemed the relevant compilers/engines (I could remember) that would generate JavaScript from C# or VB. But I see your point that
 TraceMonkey isn't the first to JIT/cache to accelerate web apps (Bass mentioned this earlier, too).<br>
<blockquote>These optimizations are largely (but not completely) irrelevant to Web programming<br>
</blockquote>
That's basically what I was wondering (I don't have any experience with JavaScript).<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/e3c6eb04c6d74286a6e19deb01388b16#e3c6eb04c6d74286a6e19deb01388b16</link>
		<pubDate>Sun, 31 Aug 2008 11:18:34 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/e3c6eb04c6d74286a6e19deb01388b16#e3c6eb04c6d74286a6e19deb01388b16</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>24</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - &quot;Near C Performance&quot; w/ TraceMonkey JavaScript Engine</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">littleguru said:</div><div class="quoteText">
<blockquote>
<div class="quoteUser">evildictaitor said:</div>
<div class="quoteText">*snip*</div>
</blockquote>
<p>The Firefox addition here compiles the JavaScript and stores it for later use. That's why they get the speed improvements. It's like ASP.NET's compiliation and storing for future requests - but on the client side.<br>
<br>
I'm also rather suspicious when I get these kind of bold statements. Even a lot of the scientific papers say something that is tailored to their set of test data and doesn't expand to the real world... and if I read something like this on a website my suspicious
 alarm bell rings like crazy.</p>
</div></blockquote>
<blockquote>&gt;&gt; I'm also rather suspicious when I get these kind of bold statements.<br>
</blockquote>
That's why I threw it out there. Would be nice to see a comparison w/ the CoreCLR/Silverlight for various rendering and computational benchmarks.<br>
<br>
On a separate note - will we get NGen for Silverlight? Looks like they've made <a href="http://blogs.msdn.com/clrcodegeneration/archive/2008/08/15/what-s-in-netfx-3-5-sp1.aspx">
some nice optimizations</a> for value types in .NET 3.5 SP1.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/dd4681aa95b6407bbebf9deb01388aba#dd4681aa95b6407bbebf9deb01388aba</link>
		<pubDate>Sun, 31 Aug 2008 05:16:59 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/dd4681aa95b6407bbebf9deb01388aba#dd4681aa95b6407bbebf9deb01388aba</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>24</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - &quot;Near C Performance&quot; w/ TraceMonkey JavaScript Engine</title>
		<description><![CDATA[<p>Just saw <a href="http://www.infoq.com/news/2008/08/tracemonkey">this article</a> on the TraceMonkey complier for FF 3.1, which allows Javascript language features to &quot;achieve a speedup of 22x.&quot;<br>
<br>
Knee-jerk reactions: <br>
<ol>
<li>&quot;Hey, no fair!&quot;<br>
</li><li><a href="http://jsc.sourceforge.net/">JSC</a> and <a href="http://livelabs.com/volta/">
Volta</a> just got more relevant for cross-platform RIAs</li></ol>
Any thoughts?<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/424380#424380</link>
		<pubDate>Sun, 31 Aug 2008 00:56:08 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/424380-Near-C-Performance-w-TraceMonkey-JavaScript-Engine/424380#424380</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>24</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - ScottGu MIA</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">wisemx said:</div><div class="quoteText">He's got one of these:<br>
</div></blockquote>Yep...here's what his email client sent me:<br>
<blockquote>&quot;My wife and I recently had a baby, and I will be on parental leave until the end of August helping to take care of him. During this time I will not be responding to email.<br>
<br>
Unfortunately because of the volume of email I receive on a weekly basis, I won't be able to respond to the email you just sent (my mailbox will be full and auto-deleting before I return).
<br>
<br>
Please re-send your email at the end on September 1st if you need to reach me with it.&quot;<br>
</blockquote>
So, maybe we'll see something from him in a few weeks. ASP.NET MVC Preview 4 Release (Part 2-N), hopefully...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/422528-ScottGu-MIA/849135c7cb774769beda9deb01367a73#849135c7cb774769beda9deb01367a73</link>
		<pubDate>Thu, 21 Aug 2008 01:39:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/422528-ScottGu-MIA/849135c7cb774769beda9deb01367a73#849135c7cb774769beda9deb01367a73</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - InvokeRequired, InvokeRequired, InvokeRequired...</title>
		<description><![CDATA[<p>After only finding&nbsp;AOP approaches to this on the google,&nbsp;I&nbsp;<a href="http://channel9.msdn.com/forums/TechOff/405710-Extension-Method-for-InvokeRequired/">suggested an extension method&nbsp;solution</a> recently on C9. What do you think of that approach?&nbsp;</p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/408397-InvokeRequired-InvokeRequired-InvokeRequired/c9922b687ffb48dfae6a9dfa00918386#c9922b687ffb48dfae6a9dfa00918386</link>
		<pubDate>Sun, 08 Jun 2008 21:28:31 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/408397-InvokeRequired-InvokeRequired-InvokeRequired/c9922b687ffb48dfae6a9dfa00918386#c9922b687ffb48dfae6a9dfa00918386</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>7</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - How do I apply generic constraints to: void MyFunction&amp;lt;T1, T2&amp;gt;() {}?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">stevo_ wrote:</div>
<div class="quoteBody">&#65279;void MyFunction() where T1 : struct where T2 : struct {} Commence self kick
<img src="/emoticons/emotion-5.gif" border="0"></div>
</blockquote>
<br /><br />Ouch! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-8.gif' alt='Expressionless' /><br /><br />(Thanks.)&nbsp;&nbsp;&nbsp;<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261547-How-do-I-apply-generic-constraints-to-void-MyFunctionltT1-T2gt-/dfa455c95dd74e78a1c99dfa00c12e9e#dfa455c95dd74e78a1c99dfa00c12e9e</link>
		<pubDate>Sun, 09 Mar 2008 01:10:57 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261547-How-do-I-apply-generic-constraints-to-void-MyFunctionltT1-T2gt-/dfa455c95dd74e78a1c99dfa00c12e9e#dfa455c95dd74e78a1c99dfa00c12e9e</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - How do I apply generic constraints to: void MyFunction&amp;lt;T1, T2&amp;gt;() {}?</title>
		<description><![CDATA[<p>I've tried the following...<br /><br /><blockquote>void MyFunction&lt;T1, T2&gt;() where T1, T2 : struct {}<br /><br />void MyFunction&lt;T1, T2&gt;() where T1: struct , T2 : struct {}<br /><br />void MyFunction&lt;T1, T2&gt;() where T1: struct ,&nbsp; where T2 : struct {}<br /><br /></blockquote>
...but alas, I'm stumped. Please help!<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261547-How-do-I-apply-generic-constraints-to-void-MyFunctionltT1-T2gt-/261547#261547</link>
		<pubDate>Sat, 08 Mar 2008 23:25:18 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261547-How-do-I-apply-generic-constraints-to-void-MyFunctionltT1-T2gt-/261547#261547</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Microsoft Ramp Up</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">andy_hanger18 wrote:</div>
<div class="quoteBody">&#65279;Does this sound familiar to anyone?</div>
</blockquote>
<br /><br />Yep, just duplicated your problem...that's annoying. Of course, as .NET developers it's important be multi-lingual; but still.<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261410-Microsoft-Ramp-Up/fa77ee7260034f95ab779dfa00c09fc9#fa77ee7260034f95ab779dfa00c09fc9</link>
		<pubDate>Mon, 03 Mar 2008 22:39:17 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261410-Microsoft-Ramp-Up/fa77ee7260034f95ab779dfa00c09fc9#fa77ee7260034f95ab779dfa00c09fc9</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>4</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Dynamic Linq Expressions and GADTs...new approach to the expression problem in C#?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">littleguru wrote:</div>
<div class="quoteBody">I'm looking forward to the next iteration <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></div>
</blockquote>
<br /><br />Here's the next iteration. I've got a lot more I want to do with Array&lt;T&gt;, including 1) implementing IList&lt;T&gt; and matching System.Array functions in general 2) introducing Math library capabilities, 3) improving performance by adding concrete for-loops to the
 GADT Helper (to avoid lambda evaluation at the innermost loop).<br /><br />Hanging out on C9, I've heard talk about C#4.0 containing revamped Math libraries...anyone care to comment on which elements of this design might overlap with upcoming BCL features?<br /><br />using System;<br />using System.Linq.Expressions;<br /><br />namespace TPLTest<br />{<br />&nbsp;&nbsp;&nbsp; public class TestGADT<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void Main()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&lt;float&gt; n1 = 5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&lt;float&gt; n2 = 4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(n1 &#43; n2);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array&lt;double&gt; array1 = new Array&lt;double&gt;(1000).InitializeTo(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array&lt;double&gt; array2 = new Array&lt;double&gt;(1000).InitializeTo(20);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array&lt;double&gt; array3 = array1 &#43; array2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(array3[0]);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Read();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public struct Number&lt;T&gt; where T : struct<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private T numValue;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; operator &#43;(Number&lt;T&gt; a, Number&lt;T&gt; b) { return GADT&lt;T&gt;.AddFunc(a.numValue, b.numValue); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; operator -(Number&lt;T&gt; a, Number&lt;T&gt; b) { return GADT&lt;T&gt;.SubtractFunc(a.numValue, b.numValue); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; operator *(Number&lt;T&gt; a, Number&lt;T&gt; b) { return GADT&lt;T&gt;.MultiplyFunc(a.numValue, b.numValue); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; operator /(Number&lt;T&gt; a, Number&lt;T&gt; b) { return GADT&lt;T&gt;.DivideFunc(a.numValue, b.numValue); }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static implicit operator Number&lt;T&gt;(T myValue) { return new Number&lt;T&gt;() { numValue = myValue }; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static implicit operator T(Number&lt;T&gt; myNumber) { return myNumber.numValue; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override string ToString() { return numValue.ToString(); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public T ToValue() { return numValue; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public class Array&lt;T&gt; where T : struct<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal T[] arrayInstance;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Array() { }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Array(int size) { arrayInstance = new T[size]; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Array(T[] existingArrayInstance) { arrayInstance = existingArrayInstance; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public T this[int index] { get { return arrayInstance[index]; }&nbsp; set { arrayInstance[index] = value; } }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Length { get { return arrayInstance.Length; } }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static implicit operator T[](Array&lt;T&gt; myArray) { return myArray.arrayInstance; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static implicit operator Array&lt;T&gt;(T[] myArrayInstance) { return new Array&lt;T&gt;() { arrayInstance = myArrayInstance }; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; operator &#43;(Array&lt;T&gt; a, Array&lt;T&gt; b) { return GADT&lt;T&gt;.AddFunc.EvalStream(a, b); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; operator -(Array&lt;T&gt; a, Array&lt;T&gt; b) { return GADT&lt;T&gt;.SubtractFunc.EvalStream(a, b); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; operator *(Array&lt;T&gt; a, Array&lt;T&gt; b) { return GADT&lt;T&gt;.MultiplyFunc.EvalStream(a, b); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; operator /(Array&lt;T&gt; a, Array&lt;T&gt; b) { return GADT&lt;T&gt;.DivideFunc.EvalStream(a, b); }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public T[] ToArray() { return arrayInstance; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public static class ArrayExtensions<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; EvalStream&lt;T&gt;(this Func&lt;T, T, T&gt; myFunc, Array&lt;T&gt; a, Array&lt;T&gt; b) where T : struct<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Array&lt;T&gt; output = new Array&lt;T&gt; { arrayInstance = new T[a.arrayInstance.Length] };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; output.arrayInstance.Length; i&#43;&#43;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output.arrayInstance[i] = myFunc(a.arrayInstance[i], b.arrayInstance[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return output;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Array&lt;T&gt; InitializeTo&lt;T&gt;(this Array&lt;T&gt; myArray, T value) where T : struct<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; myArray.Length; i&#43;&#43;)&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myArray[i] = value;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return myArray;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public static class GADT&lt;T&gt;<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T, T, T&gt; AddFunc = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Add&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T, T, T&gt; SubtractFunc = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Subtract&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T, T, T&gt; MultiplyFunc = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Multiply&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T, T, T&gt; DivideFunc = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Divide&quot;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internal static class GADTHelper<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static double Add(double a, double b) { return a &#43; b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static float Add(float a, float b) { return a &#43; b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Add(int a, int b) { return a &#43; b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static long Add(long a, long b) { return a &#43; b; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static double Subtract(double a, double b) { return a - b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static float Subtract(float a, float b) { return a - b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Subtract(int a, int b) { return a - b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static long Subtract(long a, long b) { return a - b; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static double Multiply(double a, double b) { return a * b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static float Multiply(float a, float b) { return a * b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Multiply(int a, int b) { return a * b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static long Multiply(long a, long b) { return a * b; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static double Divide(double a, double b) { return a / b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static float Divide(float a, float b) { return a / b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Divide(int a, int b) { return a / b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static long Divide(long a, long b) { return a / b; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public static class DynamicExtensions<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;TResult&gt; GetFunc&lt;TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;TResult&gt;&gt;(body);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T, TResult&gt; GetFunc&lt;T, TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type[] { typeof(T) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pArray = types.GetParameterExpressionArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method, types), pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;T, TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;T, TResult&gt;&gt;(body, pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T1, T2, TResult&gt; GetFunc&lt;T1, T2, TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type[] { typeof(T1), typeof(T2) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pArray = types.GetParameterExpressionArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method, types), pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;T1, T2, TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;T1, T2, TResult&gt;&gt;(body, pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T1, T2, T3, TResult&gt; GetFunc&lt;T1, T2, T3, TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type[] { typeof(T1), typeof(T2), typeof(T3) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pArray = types.GetParameterExpressionArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method, types), pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;T1, T2, T3, TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;T1, T2, T3, TResult&gt;&gt;(body, pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T1, T2, T3, T4, TResult&gt; GetFunc&lt;T1, T2, T3, T4, TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type[] { typeof(T1), typeof(T2), typeof(T3), typeof(T4) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var pArray = types.GetParameterExpressionArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method, types), pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;T1, T2, T3, T4, TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;T1, T2, T3, T4, TResult&gt;&gt;(body, pArray);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static ParameterExpression[] GetParameterExpressionArray(this Type[] types)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterExpression[] pArray = new ParameterExpression[types.Length];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; pArray.Length; i&#43;&#43;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pArray[i] = Expression.Parameter(types[i], &quot;p&quot; &#43; i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return pArray;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261312-Dynamic-Linq-Expressions-and-GADTsnew-approach-to-the-expression-problem-in-C/25c2e9123ec046859df59dfa00c02da6#25c2e9123ec046859df59dfa00c02da6</link>
		<pubDate>Sat, 01 Mar 2008 20:22:03 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261312-Dynamic-Linq-Expressions-and-GADTsnew-approach-to-the-expression-problem-in-C/25c2e9123ec046859df59dfa00c02da6#25c2e9123ec046859df59dfa00c02da6</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - Dynamic Linq Expressions and GADTs...new approach to the expression problem in C#?</title>
		<description><![CDATA[<p>Hi all,<br /><br />I was watching the video of Anders Hejlsberg's talk at Lang.Net 2008. About 3/4 of the way through, he mentioned that you can actually compile Linq expressions at runtime, and this is part of the basis for dynamic C# features going forward. I had no idea that
 this sort of thing was enabled in 3.5...thought the only way to dynamic was through reflection or IL.
<br /><br />So, I've been playing around to understand the functionality, trying to address the
<a href="http://lambda-the-ultimate.org/node/2232">expression problem</a> for generalized algebraic data types (GADTs).<br /><br />Let me know what you guys think of this kernel of an implementation:<br /><br />namespace C9Question<br />{<br />&nbsp;&nbsp;&nbsp; public class TestGADT<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void Main()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&lt;float&gt; n1 = 5;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number&lt;float&gt; n2 = 4;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(n1&#43;n2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Console.Read();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public struct Number&lt;T&gt; where T : struct<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public T myNumber;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public T Add(T a, T b)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Func&lt;T, T, T&gt; f = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Add&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return f(a, b);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; Add(Number&lt;T&gt; a, Number&lt;T&gt; b)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Func&lt;T, T, T&gt; f = typeof(GADTHelper).GetFunc&lt;T, T, T&gt;(&quot;Add&quot;);</b><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new Number&lt;T&gt;() { myNumber = f(a.myNumber, b.myNumber) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Number&lt;T&gt; operator &#43;(Number&lt;T&gt; a, Number&lt;T&gt; b){ return Add(a, b); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static implicit operator Number&lt;T&gt;(T value) { return new Number&lt;T&gt;() { myNumber = value }; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public override string ToString() { return myNumber.ToString(); }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private static class GADTHelper<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static double Add(double myDouble, double addend) { return myDouble &#43; addend; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static float Add(float myFloat, float addend) { return myFloat&#43; addend; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static int Add(int myInt, int addend) { return myInt&#43; addend; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static long Add(long myLong, long addend) { return myLong&#43; addend; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public static class DynamicLinqExtensions<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static Func&lt;T1, T2, TResult&gt; GetFunc&lt;T1, T2, TResult&gt;(this Type t, string method)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type[] types = new Type[] { typeof(T1), typeof(T2) };<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterExpression p1 = Expression.Parameter(types[0], &quot;p1&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterExpression p2 = Expression.Parameter(types[1], &quot;p2&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression body = Expression.Call(t.GetMethod(method, types), p1, p2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expression&lt;Func&lt;T1, T2, TResult&gt;&gt; e = Expression.Lambda&lt;Func&lt;T1, T2, TResult&gt;&gt;(body, p1, p2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return e.Compile();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /><br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/261312-Dynamic-Linq-Expressions-and-GADTsnew-approach-to-the-expression-problem-in-C/261312#261312</link>
		<pubDate>Thu, 28 Feb 2008 17:50:08 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/261312-Dynamic-Linq-Expressions-and-GADTsnew-approach-to-the-expression-problem-in-C/261312#261312</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - is there any issues with WPF and DirectShow?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">Rossj wrote:</div>
<div class="quoteBody">&#65279;
<ul>
<li>You can't easily pass a filtergraph to a MediaElement (although there are workarounds).<br /><br /></li><li>You can't get at the filtergraph (via WPF) that a MediaElement is using.<br /><br /></li><li>If you want to have a source filter that loads a graph (so you can register a URL or file extension to have MediaElement load it) then you need to make sure it uses the EVR to render and not VMR*.<br /><br /></li><li>Using DirectShow via DirectX requires a HwndHost and will then not take part in the compositing and as a result will always be on top of everything else.</li></ul>
<br />Whether these are issues or not depends entirely on what you are intending to do.<br /><br /></div>
</blockquote>
<br /><br />I was also wondering about this.<br /><br />So, say I have 1080p video, and I want to write a GPU filter to do some heavy pixel processing. The results will be streamed to a MediaElement in WPF. Using HwndHost and dropping compositing is not an option.<br /><br />Previously, with DirectShow you could write a DirectX filter, like <a href="http://download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/OpenGL/src/gpu_videoeffects/docs/UserGuide.pdf">
this example</a> from nVidia. Looks like the <a href="http://msdn2.microsoft.com/en-us/library/aa468614.aspx">
new story</a> (in Vista, at least) is to use <a href="http://msdn2.microsoft.com/en-us/library/aa468614.aspx">
MediaFoundation</a>. <br /><br />In WPF, can I share the D3D device using the <a href="http://msdn2.microsoft.com/en-us/library/aa965267.aspx">
Direct3D Device Manager</a>? Looks like you'd then perform a <a href="http://en.wikipedia.org/wiki/Media_Foundation#Media_Foundation_Transform">
DXVA 2.0 Media Foundation Transform</a> and access the pixels via the <a href="http://msdn2.microsoft.com/en-us/library/ms699894.aspx">
IMF2DBuffer</a> Interface (but the interface of what object?)...<br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/259519-is-there-any-issues-with-WPF-and-DirectShow/bab2b6d2aa69490785a69dfa0086dfcf#bab2b6d2aa69490785a69dfa0086dfcf</link>
		<pubDate>Mon, 10 Dec 2007 23:33:26 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/259519-is-there-any-issues-with-WPF-and-DirectShow/bab2b6d2aa69490785a69dfa0086dfcf#bab2b6d2aa69490785a69dfa0086dfcf</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>5</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Good video camera?</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">W3bbo wrote:</div>
<div class="quoteBody">&#65279;Somewhat related <a href="/ShowPost.aspx?PostID=353563">to this</a>, can anyone recommend a
<i>good</i> (but not terribly expensive) video camera? Something in the $800-$1000 range?<br>
<br>
On the C9 videos whilst the colour's fine, the picture isn't exactly sharp. I don't know if this is an artifact of compression or just the lens work, but I'm after great pixel quality and moderately long battery life.<br>
</div>
</blockquote>
<br>
<br>
Our company is very pleased with the Canon HV20. It's HD, compact, and it has excellent low-light sensitivity, especially in 24p mode.<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/258791-Good-video-camera/6c1b1ea4042f4d72af439deb0025efda#6c1b1ea4042f4d72af439deb0025efda</link>
		<pubDate>Sat, 10 Nov 2007 21:54:37 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/258791-Good-video-camera/6c1b1ea4042f4d72af439deb0025efda#6c1b1ea4042f4d72af439deb0025efda</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>2</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Any Good Free ORM&#39;s?</title>
		<description><![CDATA[<p>Oh, I forgot <a href="http://www.db4o.com/default.aspx">db4o</a>.<br>
<br>
SubSonic's quite the looker. If it's good enough for ScottGu...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/258568-Any-Good-Free-ORMs/f66e9ab4777e4ab693d89deb002282ff#f66e9ab4777e4ab693d89deb002282ff</link>
		<pubDate>Tue, 30 Oct 2007 07:28:21 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/258568-Any-Good-Free-ORMs/f66e9ab4777e4ab693d89deb002282ff#f66e9ab4777e4ab693d89deb002282ff</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>7</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Any Good Free ORM&#39;s?</title>
		<description><![CDATA[<p>ORM discussions have <a href="/ShowPost.aspx?PostID=222371#222371">come</a> <a href="/ShowPost.aspx?PostID=349112#349112">
up</a> <a href="/ShowPost.aspx?PostID=212127#212127">before</a>. I haven't used any of them but here's the list I have compiled on my tumblr site:<br>
<br>
<a href="http://www.opf3.com/Opf3/Buy/ExpressEdition.aspx">OPF3 Express Edition</a><br>
<a href="http://ibatis.apache.org/"><br>
IBatis</a><br>
<br>
<a href="http://www.mertner.com/confluence/display/Gentle/Home">Gentle.NET</a><br>
<br>
<a href="http://www.mygenerationsoftware.com/portal/dOOdads/Overview/tabid/63/Default.aspx">dOOdads</a><br>
<br>
<a href="http://www.ideablade.com/index.html">IdeaBlade DevForce Express</a><br>
<br>
<a href="http://www.nolics.com/community.aspx">Nolics</a> (academic license is free)<br>
<br>
<a href="http://www.netdataobjects.com/portal/?TabId=36">NDO</a> (free community version)<br>
<br>
I know <a href="/ShowPost.aspx?PostID=31188">which one</a> littleguru would recommend...<br></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/258568-Any-Good-Free-ORMs/951f50f972fa43d3bc619deb0022821c#951f50f972fa43d3bc619deb0022821c</link>
		<pubDate>Mon, 29 Oct 2007 05:18:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/258568-Any-Good-Free-ORMs/951f50f972fa43d3bc619deb0022821c#951f50f972fa43d3bc619deb0022821c</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>7</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Tech Off - USB over IP</title>
		<description><![CDATA[<p><blockquote>
<div class="quoteAuthor">PerfectPhase wrote:</div>
<div class="quoteBody">&#65279;Ended up using <a href="http://www.usb-over-network.com/usb-over-network.html">
http://www.usb-over-network.com/usb-over-network.html</a>.<br /><br /></div>
</blockquote>
<br /><br />Very handy!!<br /><br />FYI, <a href="http://www.belkin.com/uk/networkusbhub/">here's</a> a hardware version w/ no host necessary.<br /><br /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/TechOff/258321-USB-over-IP/bc7824404cd240dea0889df90102e053#bc7824404cd240dea0889df90102e053</link>
		<pubDate>Tue, 23 Oct 2007 05:32:38 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/TechOff/258321-USB-over-IP/bc7824404cd240dea0889df90102e053#bc7824404cd240dea0889df90102e053</guid>
		<dc:creator>dcuccia</dc:creator>
		<slash:comments>6</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/dcuccia/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>