<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 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/"><channel><title>Jeffrey Schlimmer's Blog</title><link>http://pluralsight.com/blogs/jeffsch/</link><description /><managingEditor>Jeffrey Schlimmer</managingEditor><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>LINQ Framework Design Guidelines</title><link>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50477.aspx</link><pubDate>Thu, 13 Mar 2008 18:56:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50477.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/50477.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50477.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/50477.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/50477.aspx</trackback:ping><description>&lt;P&gt;You knew it was 'wrong' to define extension methods on object, didn't you...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx"&gt;http://blogs.msdn.com/mirceat/archive/2008/03/13/linq-framework-design-guidelines.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/50477.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Request for Input from WF</title><link>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50474.aspx</link><pubDate>Thu, 13 Mar 2008 15:45:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50474.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/50474.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50474.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/50474.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/50474.aspx</trackback:ping><description>&lt;P&gt;Request for input from the Windows Workflow Foundation Team:&lt;/P&gt;
&lt;P&gt;&amp;#8220;The Windows Workflow Foundation (WF) team is looking for YOUR input to help us prioritize our efforts around designer re-hosting scenarios. If you're interested in helping us shape the future of this feature, tell us what you think by filling in this survey. &lt;/P&gt;
&lt;P&gt;&lt;A href="https://live.datstat.com/MSCSD-Collector/Survey.ashx?Name=WF_Rules_Designer_Rehosting_Blogs"&gt;https://live.datstat.com/MSCSD-Collector/Survey.ashx?Name=WF_Rules_Designer_Rehosting_Blogs&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The survey will close on Wednesday, March 19th 2008.&amp;#8221;&lt;/P&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/50474.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Long Live VSTS</title><link>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50473.aspx</link><pubDate>Thu, 13 Mar 2008 15:29:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50473.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/50473.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2008/03/13/50473.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/50473.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/50473.aspx</trackback:ping><description>&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;I've become a believer in test-driven development, at least the part where you write the tests the code should pass _before_ you write the code itself. NUnit was a great tool for this -- and I loved seeing the green bar when all the tests pass.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;Recently my team switched over to using VisualStudio Team System and converted our NUnit projects to VSTS test projects. As much as I like using NUnit, I like using VSTS even more:&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;LI&gt;It's very easy to debug a test -- just set a breakpoint (no more Debug, Attach to Process&amp;#8230;)&lt;/LI&gt;
&lt;LI&gt;It's easy to re-run only the failing tests&lt;/LI&gt;
&lt;LI&gt;Tests are run on multiple threads -- which sometimes speeds up the process considerably&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;We've also replaced NCover with the integrated code coverage; there's nothing like editing the highlighted code.&lt;/DIV&gt;
&lt;DIV xmlns="http://www.w3.org/1999/xhtml"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/50473.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Blog from the MSFT Rules Team</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/10/17/40739.aspx</link><pubDate>Tue, 17 Oct 2006 18:06:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/10/17/40739.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/40739.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/10/17/40739.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/40739.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/40739.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;From the owners of both the BizTalk and Workflow Foundation rules engines:&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://blogs.msdn.com/rulesteam/"&gt;http://blogs.msdn.com/rulesteam/&lt;/a&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/40739.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>From the Horse's Mouth</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/10/10/40140.aspx</link><pubDate>Tue, 10 Oct 2006 12:32:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/10/10/40140.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/40140.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/10/10/40140.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/40140.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/40140.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://blogs.msdn.com/don_mccrady/default.aspx"&gt;Don McCrady&lt;/a&gt; now has a blog. He's the development lead for Windows Workflow Foundation's rules engine.&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/40140.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Recursive Linq Functions</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/08/18/33631.aspx</link><pubDate>Fri, 18 Aug 2006 21:57:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/08/18/33631.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/33631.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/08/18/33631.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/33631.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/33631.aspx</trackback:ping><description>&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;You might have tried writing a recursive &lt;a href="http://msdn.microsoft.com/data/ref/linq/"&gt;Linq&lt;/a&gt; function and run into problems. For instance, the following doesn’t work because ‘factorial’ isn't defined when the right-hand side of the assignment is being evaluated:&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas" color="#008000"&gt;//Error: Use of unassigned local variable 'factorial'&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt;&lt;font color="#008080"&gt;Func&lt;/font&gt;&amp;lt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;, &lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;gt; factorial =&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt; n =&amp;gt; n &amp;lt; 2 ? 1 : n * factorial(n - 1);&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;However, because you’re writing a lambda expression with Linq, you can use the Y combinator, a function that takes your code and returns a recursive version. It’s a bit odd, requiring no little attention to understand, but it works well. For instance, using the Y combinator, you can write the following code:&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas" color="#008080"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt;&lt;font color="#008080"&gt;Func&lt;/font&gt;&amp;lt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;, &lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;gt; factorial =&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt; &lt;font color="#008080"&gt;Extensions&lt;/font&gt;.YCombinator&amp;lt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;, &lt;font color="#0000ff"&gt;int&lt;/font&gt;&amp;gt;(&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt;  fact =&amp;gt; &lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: normal" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Consolas"&gt;   n =&amp;gt; n &amp;lt; 2 ? 1 : n * fact(n - 1));&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;And then you can call it as you expect, e.g., factorial(5) returns 120. &lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;Intuitively, the Y combinator works by calling your function on itself. Its ideas are closely related to &lt;a href="http://www.norvig.com/self-eval.pdf"&gt;self-reproducing code&lt;/a&gt;. For details, I recommend either “&lt;a href="http://www.dreamsongs.com/Files/WhyOfY.pdf"&gt;The Why of Y&lt;/a&gt;” or “&lt;a href="http://en.wikipedia.org/wiki/Y_combinator"&gt;Fixed Point Combinator&lt;/a&gt;.” Though cool, the Y combinator isn’t a panacea for all recursion – as &lt;a href="http://csg.lcs.mit.edu/pubs/memos/Memo-395/memo-395.pdf"&gt;Arvind et al&lt;/a&gt; note: “&lt;em&gt;While the existence of the Y combinator is mathematically fascinating, fixed points [like the Y combinator] do not provide a simple encapsulation of recursion. For example, we would like to be able to declare mutually recursive functions and data structures in such a way that their definitions are clear and readable; the need to re-shape such definitions as fixed points plays havoc with such an endeavor.&lt;/em&gt;” &lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;Here is an &lt;a href="http://www.pluralsight.com/jeffsch/YCombinator.cs.txt"&gt;implementation&lt;/a&gt; of the Y combinator for Linq that Mads Torgersen and I wrote, for both delegates and expressions. (The expression implementation will be a lot simpler when Linq provides an invocation syntax for expressions.)&lt;/font&gt;&lt;/div&gt;&lt;div style="PADDING-RIGHT: 0in; MARGIN-TOP: 0in; PADDING-LEFT: 0in; FONT-SIZE: 11pt; MARGIN-BOTTOM: 0pt; LINE-HEIGHT: 115%" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;font face="Calibri"&gt;&lt;/font&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/33631.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Updated WS-MetadataExchange</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/08/16/33047.aspx</link><pubDate>Wed, 16 Aug 2006 14:10:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/08/16/33047.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/33047.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/08/16/33047.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/33047.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/33047.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;BEA, CA, IBM, SAP, Sun, webMethods, and Microsoft have updated the WS-MetadataExchange (MEX) spec. It adds the ability to 'push' metadata along with an Endpoint Reference (of &lt;a href="http://www.w3.org/Submission/2004/SUBM-ws-addressing-20040810/"&gt;either&lt;/a&gt;&lt;a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/"&gt;version&lt;/a&gt;), and it replaces its locally-defined "Get" request-reply message pair with the one from &lt;a href="http://www.w3.org/Submission/2006/SUBM-WS-Transfer-20060315/"&gt;WS-Transfer&lt;/a&gt;.&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2004/09/mex/"&gt;http://schemas.xmlsoap.org/ws/2004/09/mex/&lt;/a&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/33047.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Programming Whimsy</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/08/07/32831.aspx</link><pubDate>Mon, 07 Aug 2006 11:49:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/08/07/32831.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/32831.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/08/07/32831.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/32831.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/32831.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;From Why's (Poignant) Guide to Ruby:&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;"Think of it [the argument list] as an inner tube the method is pulling along, containing its extra instructions. The parentheses form the wet, round edges of the inner tube. The commas are the feet of each argument, sticking over the edge. The last argument has its feet tucked under so they don't show."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.poignantguide.net/ruby/chapter-3.html"&gt;http://www.poignantguide.net/ruby/chapter-3.html&lt;/a&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/32831.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>New WF Rules Sample</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/07/25/32537.aspx</link><pubDate>Tue, 25 Jul 2006 12:08:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/07/25/32537.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/32537.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/07/25/32537.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/32537.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/32537.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Demonstration of custom action types c/o my favorite rules PM.&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://wf.netfx3.com/files/folders/rules_samples/default.aspx"&gt;http://wf.netfx3.com/files/folders/rules_samples/default.aspx&lt;/a&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/32537.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeffrey Schlimmer</dc:creator><title>Custom Rule Expressions in WF: Sample</title><link>http://pluralsight.com/blogs/jeffsch/archive/2006/07/13/31876.aspx</link><pubDate>Thu, 13 Jul 2006 13:13:00 GMT</pubDate><guid>http://pluralsight.com/blogs/jeffsch/archive/2006/07/13/31876.aspx</guid><wfw:comment>http://pluralsight.com/blogs/jeffsch/comments/31876.aspx</wfw:comment><comments>http://pluralsight.com/blogs/jeffsch/archive/2006/07/13/31876.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://pluralsight.com/blogs/jeffsch/comments/commentRss/31876.aspx</wfw:commentRss><trackback:ping>http://pluralsight.com/blogs/jeffsch/services/trackbacks/31876.aspx</trackback:ping><description>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Just in from one of the original BRE developers and my favorite rules PM: This sample shows the definition and use of a custom expression in the Windows Workflow Foundation rules engine.  Custom expressions are used to model specific predicate types or functions and can be used directly in the rules object model and editors. &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;a href="http://wf.netfx3.com/files/folders/rules_samples/entry4315.aspx"&gt;http://wf.netfx3.com/files/folders/rules_samples/entry4315.aspx&lt;/a&gt;&lt;/div&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;/div&gt;&lt;img src ="http://pluralsight.com/blogs/jeffsch/aggbug/31876.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>