<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.atalasoft.com/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rick Minerich's Development Wonderland : testing</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/testing/default.aspx</link><description>Tags: testing</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Code Camp Hartford 2 Presentation – F# for Testing and Analytics (June 13th)</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx</link><pubDate>Fri, 12 Jun 2009 19:22:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:18637</guid><dc:creator>RickM</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/18637.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=18637</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=18637</wfw:comment><description>&lt;p&gt;I will be speaking at tomorrow’s &lt;a href="http://ctdotnet.org/codecamp2.aspx"&gt;Code Camp Hartford 2&lt;/a&gt; on the topic of using F# for the Testing and Analysis of existing code. This talk will be composed of much of the same material I used at &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;Code Camp Waltham 11&lt;/a&gt;, although I will be preparing additional introductory material as many of my Waltham attendees had no prior exposure to F#.&amp;nbsp; &lt;/p&gt;  &lt;p&gt;I hope the audience will find this new introduction short and sweet.&amp;nbsp; In this case my goal will not be to teach F# per se, instead I would like to impress upon the audience the power of using functional programming constructs.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;Presentation Details&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;F# for Testing and Analytics&lt;/b&gt; will be held in &lt;b&gt;Room E-Echo&lt;/b&gt; at &lt;b&gt;10:30am&lt;/b&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strike&gt;As I often like to make changes up to the last minute, this post will be updated with my slides after the presentation.&lt;/strike&gt; Slides are now available &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/attachment/18637.ashx"&gt;here&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;The Plan&lt;/font&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Talk Introduction&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Shameless Plug: &lt;a href="http://fsug.org/"&gt;Upcoming F# User Group Speakers&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;Survey the audience&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;F# Introduction&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Why F#?&lt;/li&gt;      &lt;li&gt;Some Quick and Elegant Examples contrasted with C#&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;F# Testing Toolbox&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.codeplex.com/xunit"&gt;xUnit.NET&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://testdriven.net/"&gt;TestDriven.NET&lt;/a&gt; and &lt;a href="http://www.ncover.com/"&gt;NCover&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://code.google.com/p/natural/"&gt;NaturalSpec&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.codeplex.com/fscheck"&gt;FsCheck&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;For more information, see my post on the &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;Code Camp Waltham 11 Presentation&lt;/a&gt;.&amp;nbsp; I wrote quite extensively in that post on most of the things I will be discussing in this talk.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;;subject=Code+Camp+Hartford+2+Presentation+%e2%80%93+F%23+for+Testing+and+Analytics+(June+13th)" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;;title=Code+Camp+Hartford+2+Presentation+%e2%80%93+F%23+for+Testing+and+Analytics+(June+13th)" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;title=Code+Camp+Hartford+2+Presentation+%e2%80%93+F%23+for+Testing+and+Analytics+(June+13th)" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;;title=Code+Camp+Hartford+2+Presentation+%e2%80%93+F%23+for+Testing+and+Analytics+(June+13th)" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx&amp;amp;;title=Code+Camp+Hartford+2+Presentation+%e2%80%93+F%23+for+Testing+and+Analytics+(June+13th)&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/06/12/code-camp-hartford-2-presentation-f-for-testing-and-analytics.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=18637" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/rickm/attachment/18637.ashx" length="755831" type="application/octet-stream" /><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Code+Camp/default.aspx">Code Camp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/talks/default.aspx">talks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/testing/default.aspx">testing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/NaturalSpec/default.aspx">NaturalSpec</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FsCheck/default.aspx">FsCheck</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/TestDriven.NET/default.aspx">TestDriven.NET</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xunit/default.aspx">xunit</category></item><item><title>F# for Testing and Analysis at Code Camp 11 New England</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx</link><pubDate>Fri, 27 Mar 2009 22:36:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:17818</guid><dc:creator>RickM</dc:creator><slash:comments>3</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/17818.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=17818</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=17818</wfw:comment><description>&lt;p&gt;At this Saturday’s Code Camp I’ll be giving a brand new presentation on using F#.&amp;#160; The goal of this presentation is to have those attending leave with an idea of &lt;strong&gt;what F# can help them achieve today&lt;/strong&gt; as well as instill a desire to know more.&amp;#160; This post contains my presentation materials as well as links to additional information on the topics covered.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;font size="4"&gt;Presentation Details &lt;/font&gt;&lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;F# for Testing and Analytics&lt;/strong&gt; will be held in the &lt;strong&gt;TBC&lt;/strong&gt; (Technical Briefing Center) at &lt;strong&gt;10:30am&lt;/strong&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cbowen/archive/2009/03/23/code-camp-11-the-schedule.aspx"&gt;New England Code Camp 11 Information&lt;/a&gt; &lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:8eb9d37f-1541-4f29-b6f4-1eea890d4876:60cbd848-f0c1-4d46-acd8-db07498ae2eb" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;p&gt;&lt;div&gt;Download Presentation Slides: &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/F_forTestingandAnalysis_004EBB79.pdf" target="_self"&gt;F# for Testing and Analysis.pdf&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;/div&gt;  &lt;p&gt;I’ve been thinking quite a lot lately &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;on the best way to get developers excited about F#&lt;/a&gt;.&amp;#160; By focusing less on the language’s details and more on what the language can help achieve I hope to impress upon those attending why F# is worth the effort.&amp;#160; The preliminary structure of the talk is as follows::&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Introduction&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Announcing the New England F# User Group&amp;#160; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Why F#?&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Time Savings &lt;/li&gt;        &lt;li&gt;Readability &lt;/li&gt;        &lt;li&gt;Code Exploration &lt;/li&gt;        &lt;li&gt;Robust Software &lt;/li&gt;        &lt;li&gt;Power &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;F# Testing Toolbox&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;xUnit.NET &lt;/li&gt;        &lt;li&gt;TestDriven.NET and NCover &lt;/li&gt;        &lt;li&gt;NaturalSpec &lt;/li&gt;        &lt;li&gt;FsCheck &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;A Real World Example&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Exploring the Problem Space &lt;/li&gt;        &lt;li&gt;Collect, Analyze, Report &lt;/li&gt;        &lt;li&gt;Visualizing Data &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Presentation Influences      &lt;br /&gt;&lt;/strong&gt;John Hughes’s Paper: &lt;a href="http://www.math.chalmers.se/~rjmh/Papers/whyfp.html"&gt;Why Functional Programming Matters&lt;/a&gt;     &lt;br /&gt;John Hughes’s Talk: &lt;a href="http://video.google.com/videoplay?docid=4655369445141008672"&gt;FP – A Secret Weapon for Software Testing&lt;/a&gt;     &lt;br /&gt;Matthew Podwysocki’s 7 Part Series: &lt;a href="http://weblogs.asp.net/podwysocki/archive/2009/01/29/functional-programming-unit-testing-part-7.aspx"&gt;Functional Programming Unit Testing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;font size="4"&gt;Announcing the New England F# User Group&lt;/font&gt;&amp;#160; &lt;/h2&gt;  &lt;blockquote&gt;   &lt;p&gt;I’m proud to announce that &lt;strong&gt;we will be holding our first New England F# User Group meeting on Monday April 6th, from 6:30pm to 8:30pm&lt;/strong&gt;.&amp;#160; It will be held at the aptly named &lt;a href="http://research.microsoft.com/en-us/labs/newengland/"&gt;Microsoft NERD center&lt;/a&gt;.&amp;#160; I hope to see you there.&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Visit the &lt;a href="http://fsug.org/"&gt;F# User Group Homepage&lt;/a&gt; for more information.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;xUnit.NET&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“About a year ago it became clear to myself and Brad Wilson that there were some very clear patterns of success (and failure) with the tools we were using for writing tests. Rather than repeating guidance about &amp;quot;do X&amp;quot; or &amp;quot;don't do Y&amp;quot;, it seemed like it was the right time to reconsider the framework itself and see if we could codify some of those rules.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="http://www.codeplex.com/xunit"&gt;xUnit.NET Homepage&lt;/a&gt;   &lt;p&gt;&lt;strong&gt;Learn More about xUnit.NET      &lt;br /&gt;&lt;/strong&gt;Matthew Podwysocki’s &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/05/29/the-unit-testing-story-in-f-revisited.aspx"&gt;The Unit Testing Story in F# Revisited&lt;/a&gt;     &lt;br /&gt;Jim Burger’s &lt;a href="http://nervoustych.com/blog/PermaLink,guid,fc3a3974-2284-43e1-a58e-f8a6af4cca4d.aspx"&gt;Unit testing in F# with xUnit.NET&lt;/a&gt;     &lt;br /&gt;Harry Pierson’s &lt;a href="http://devhawk.net/2007/12/12/Practical+F+Parsing+Unit+Testing.aspx"&gt;Practical F# Parsing: Unit Testing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;TestDriven.NET and NCover&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“TestDriven.NET is a zero friction unit testing add-in for Microsoft Visual Studio .NET. The current release of TestDriven.NET supports multiple unit testing frameworks including NUnit, MbUnit and MS Team System and is fully compatible with all versions of the .NET Framework.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; &lt;/a&gt;&lt;a href="http://testdriven.net/"&gt;TestDriven.NET Homepage&lt;/a&gt; (Includes a free version of NCover)   &lt;br /&gt;&lt;a href="http://www.ncover.com/"&gt;NCover Homepage&lt;/a&gt;   &lt;p&gt;&lt;strong&gt;Learn More about TestDriven.NET and NCover      &lt;br /&gt;&lt;/strong&gt;Matthew Podwysocki’s &lt;a href="http://weblogs.asp.net/podwysocki/archive/2008/12/04/f-testdriven-net-xunit-net-win.aspx"&gt;F# + TestDriven.NET + xUnit = Win&lt;/a&gt;&amp;#160; &lt;br /&gt;Matthew Podwysocki’s &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/12/21/functional-programming-unit-testing-part-4.aspx"&gt;FP Unit Testing Part 4 – Code Coverage&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;NaturalSpec&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“The idea of NaturalSpec is to give domain experts the possibility to express their scenarios directly in compilable Unit Test scenarios by using a Domain-specific language (DSL) for Unit Tests. NaturalSpec is completely written in F# – but you don’t have to learn F# to use it. You don’t even have to learn programming at all.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; &lt;/a&gt;&lt;a href="http://code.google.com/p/natural/"&gt;NaturalSpec Homepage&lt;/a&gt;&lt;/a&gt;   &lt;p&gt;&lt;strong&gt;Learn More about NaturalSpec      &lt;br /&gt;&lt;/strong&gt;Steffen Forkmann’s &lt;a href="http://www.navision-blog.de/2009/02/23/getting-started-with-naturalspec/"&gt;“Getting Started” with NaturalSpec&lt;/a&gt;     &lt;br /&gt;Steffen Forkmann’s &lt;u&gt;&lt;font color="#0101df"&gt;&lt;a href="http://www.navision-blog.de/2009/03/01/testing-quicksort-with-naturalspec/"&gt;Testing QuickSort with NaturalSpec&lt;/a&gt;&lt;/font&gt;&lt;/u&gt;     &lt;br /&gt;Steffen Forkmann’s &lt;a href="http://www.navision-blog.de/2009/02/23/using-naturalspec-to-create-spec-for-c-projects/"&gt;Using NaturalSpec to create a spec for C# projects&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;FsCheck&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“FsCheck is a tool for testing .NET programs automatically. The programmer provides a specification of the program, in the form of properties which functions, methods or objects should satisfy, and FsCheck then tests that the properties hold in a large number of randomly generated cases.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; &lt;/a&gt;&lt;a href="http://www.codeplex.com/fscheck"&gt;FsCheck Homepage&lt;/a&gt;   &lt;p&gt;&lt;strong&gt;Learn More about FsCheck      &lt;br /&gt;&lt;/strong&gt;Claudio Cherubino’s &lt;a href="http://www.fsharp.it/2008/12/28/random-testing-in-f-with-fscheck/"&gt;Random testing in F# with FsCheck&lt;/a&gt;     &lt;br /&gt;Matthew Podwysocki’s &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/12/11/functional-programming-unit-testing-part-2.aspx"&gt;FP Unit Testing Part 2 – QuickCheck and FsCheck&lt;/a&gt;     &lt;br /&gt;Kurt Schelfthout’s FsChecking dnAnalytics &lt;a href="http://fortysix-and-two.blogspot.com/2009/02/fschecking-dnanalytics.html"&gt;Part 1&lt;/a&gt;, &lt;a href="http://fortysix-and-two.blogspot.com/2009/02/fschecking-dnanalytics-part-2.html"&gt;Part 2&lt;/a&gt; and &lt;a href="http://fortysix-and-two.blogspot.com/2009/03/fschecking-dnanalytics-part-3.html"&gt;Part 3&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3"&gt;FsStory&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“FsStory is a library for writing executable user stories in F#. FsStory enables the developer to write user story scenarios (in Given/When/Then form) in F# code.”&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; &lt;/a&gt;&lt;a href="http://www.codeplex.com/fsstory"&gt;FsStory Homepage&lt;/a&gt;   &lt;p&gt;&lt;strong&gt;Learn More about FsStory      &lt;br /&gt;&lt;/strong&gt;Gustaf Nilsson Kotte’s &lt;a href="http://coffeedrivendevelopment.blogspot.com/2009/02/fluent-language-in-fsstory.html"&gt;Fluent language in FsStory&lt;/a&gt;     &lt;br /&gt;Gustaf Nilsson Kotte’s &lt;a href="http://coffeedrivendevelopment.blogspot.com/2009/02/announce-fsstory-executable-stories-in.html"&gt;FsStory, executable stories in F#&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;;subject=F%23+for+Testing+and+Analysis+at+Code+Camp+11+New+England" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;;title=F%23+for+Testing+and+Analysis+at+Code+Camp+11+New+England" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;title=F%23+for+Testing+and+Analysis+at+Code+Camp+11+New+England" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;;title=F%23+for+Testing+and+Analysis+at+Code+Camp+11+New+England" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx&amp;amp;;title=F%23+for+Testing+and+Analysis+at+Code+Camp+11+New+England&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/27/f-for-testing-and-analysis-at-code-camp-11-new-england.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=17818" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/.NET/default.aspx">.NET</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Code+Camp/default.aspx">Code Camp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/conference/default.aspx">conference</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/beautiful+code/default.aspx">beautiful code</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fp/default.aspx">fp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/testing/default.aspx">testing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsug/default.aspx">fsug</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/functional+programming/default.aspx">functional programming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/presentations/default.aspx">presentations</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/code+analysis/default.aspx">code analysis</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/xUnit.NET/default.aspx">xUnit.NET</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/NaturalSpec/default.aspx">NaturalSpec</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FsCheck/default.aspx">FsCheck</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/NCover/default.aspx">NCover</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/FsStory/default.aspx">FsStory</category></item><item><title>As a FP Ambassador - F# for Testing and Analysis at Code Camp 11</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx</link><pubDate>Thu, 19 Mar 2009 16:00:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:17731</guid><dc:creator>RickM</dc:creator><slash:comments>5</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/17731.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=17731</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=17731</wfw:comment><description>&lt;p&gt;Over the last six months I’ve given variations on the same F# presentation on six separate occasions.&amp;nbsp; Each time I’ve gotten a similar response: enthusiasm from a small percentage of the audience and glazed-over stares from the majority.&amp;nbsp; In retrospect it seems obvious that I’ve been missing one of the major tenets of making great presentations, know thy audience.&amp;nbsp; It’s time for a new approach.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Information Overload&lt;/h3&gt;  &lt;p&gt;When thinking about how to get people excited about F# &lt;b&gt;I immediately jumped to the learning format that I found the most exciting&lt;/b&gt;.&amp;nbsp; There was no time in my life when I was as overwhelmed by information like I was working on my Computer Science degree at UMass Amherst and I loved every minute of it.&amp;nbsp; When I started out, it seemed that using a university lecture as a model was the best possible format for sharing this kind of information.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;I’ve since come to realize that this style of soaking the audience with “a fire hose of information” is a poor format for Code Camps.&lt;/b&gt;&amp;nbsp; While using this technique, I could see people turning off one by one as they became overloaded with information.&amp;nbsp; This is not in the spirit of code camp which aims to be a much more laid back kind of experience.&amp;nbsp; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;As a FP Ambassador&lt;/h3&gt;  &lt;p&gt;Let’s invert perspectives and think about what an audience member would want.&amp;nbsp; &lt;b&gt;When a person comes to a Code Camp presentation, it’s likely to be one of their first times being exposed to the topic being presented.&lt;/b&gt;&amp;nbsp; They don’t want to be taught as if they were in a classroom.&amp;nbsp; Instead, they want to be exposed to new and exciting information.&amp;nbsp; &lt;b&gt;If their interest is piqued, they will seek details later.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;So, instead of focusing on the details of F#, this new presentation will be built around the goal of instilling five key ideas to the audience:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://tryingthisagain.com/2008/04/16/c-vs-f-some-parallel-refactoring-and-generalization/"&gt;F# will save you time&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2009/01/02/functional-programming-unit-testing-part-5.aspx"&gt;F# will help you become a better programmer&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://themechanicalbride.blogspot.com/2009/01/f-sharpest-of-sharps.html"&gt;F# is beautiful&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx"&gt;Immutability is next to godliness&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;You can start using F# right now&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It must be understood that almost every Code Camp attendee will have had little or no exposure to functional programming.&amp;nbsp; &lt;b&gt;To many attendees, to be presenting on F# is to be an ambassador from the strange and nebulous functional programming world.&lt;/b&gt;&amp;nbsp; Instead of building walls of information, the goal should be to instead focus on connecting with the audience on the benefits of functional programming.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Planned Talk Structure&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Depending on an Audience Poll, Broad Concepts&lt;/li&gt;    &lt;li&gt;Testing with F#&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;nUnit Examples (as a baseline)&lt;/li&gt;      &lt;li&gt;xUnit Examples&lt;/li&gt;      &lt;li&gt;FsStory Examples&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Analysis with F# (A Real Example From Atalasoft)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Using The F# Interactive Window To Build Tests&lt;/li&gt;      &lt;li&gt;Data Collection&lt;/li&gt;      &lt;li&gt;Visualizing Data&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Conclusion&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Why F#?&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;More details will follow soon.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;;subject=As+a+FP+Ambassador+-+F%23+for+Testing+and+Analysis+at+Code+Camp+11" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;;title=As+a+FP+Ambassador+-+F%23+for+Testing+and+Analysis+at+Code+Camp+11" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;title=As+a+FP+Ambassador+-+F%23+for+Testing+and+Analysis+at+Code+Camp+11" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;;title=As+a+FP+Ambassador+-+F%23+for+Testing+and+Analysis+at+Code+Camp+11" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx&amp;amp;;title=As+a+FP+Ambassador+-+F%23+for+Testing+and+Analysis+at+Code+Camp+11&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/03/19/f-for-testing-and-analysis-at-code-camp-11.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=17731" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/.NET/default.aspx">.NET</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Code+Camp/default.aspx">Code Camp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/talks/default.aspx">talks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/beautiful+code/default.aspx">beautiful code</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fp/default.aspx">fp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/testing/default.aspx">testing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/functional+programming/default.aspx">functional programming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fp+ambassador/default.aspx">fp ambassador</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/presentations/default.aspx">presentations</category></item><item><title>Discoveries This Week 02/13/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx</link><pubDate>Fri, 13 Feb 2009 15:43:25 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:17479</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/17479.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=17479</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=17479</wfw:comment><description>&lt;p&gt;A wide range of subjects this week including testing, concurrent performance, exception handing and data structures.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Software – &lt;a href="http://www.codeplex.com/fsstory"&gt;FsStory, a library for writing executable user stories in F#&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;I feel that F#, with it’s concise syntax, is an ideal framework for writing tests.&amp;#160; Combined with FsStory F# is made much more powerful in this regard as it becomes possible to write user case tests and have them read very much like simple English.&amp;#160;&amp;#160; F# has a huge advantage here over C# as it has much less syntactic cruft and so much less for your brain to process while reading.&amp;#160;&amp;#160; For example:&lt;/p&gt;  &lt;pre style="border-right:#cecece 1px solid;padding-right:5px;border-top:#cecece 1px solid;padding-left:5px;min-height:40px;padding-bottom:5px;overflow:auto;border-left:#cecece 1px solid;width:480px;padding-top:5px;border-bottom:#cecece 1px solid;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#fbfbfb;"&gt;  1: [&amp;lt;Fact&amp;gt;]
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#ffffff;"&gt;  2: let MoveTurtleToPosition() = 
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#fbfbfb;"&gt;  3:        given ATurtle
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#ffffff;"&gt;  4:     |&amp;gt; andGiven IsRotated90DegreesToTheRight
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#fbfbfb;"&gt;  5:     |&amp;gt; whens (TurtleWalksSteps 9)
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#ffffff;"&gt;  6:     |&amp;gt; thens (TurtleIsLocatedAt (0,9))   
&lt;/pre&gt;&lt;pre style="font-size:12px;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;background-color:#fbfbfb;"&gt;  7:     |&amp;gt; endStory&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;It’s obvious exactly what this is testing and how.&amp;#160; Yet, it takes very little time to read.&amp;#160; Very impressive.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Blog –Jan Varwig’s &lt;a href="http://jan.varwig.org/archiv/f-sharp-observations"&gt;F# Observations&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;While this post is rather old, I was very excited by Jan’s analysis of an article on comparing C# and F# using the distributed .NET computing framework &lt;a href="http://sourceforge.net/projects/alchemi"&gt;Alchemi&lt;/a&gt;.&amp;#160; &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Optimizing this application showed that F# would finish in 1.5 seconds while C# would not complete any faster than 2.6 seconds.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s important to note that these results are a year old now and that with newer F# optimization the results might be even better. &lt;/p&gt;

&lt;p&gt;The other interesting thing in this post is the discussion of the cost of heavyweight threads on the CLR.&amp;#160; Which is directly related to our next discovery:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Blog – Daniel Moth’s &lt;a href="http://www.danielmoth.com/Blog/2008/11/new-and-improved-clr-4-thread-pool.html"&gt;New and Improved CLR 4 Thread Pool Engine&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;A first glimpse of that is in store for us in the next iterating of the Thread Pool.&amp;#160; Not surprisingly, the optimizations seem to focus on sharing work across multiple threads.&amp;#160; &lt;/p&gt;

&lt;p&gt;With F#’s thread-friendly nature and new the optimized thread pool, I'm very excited to see how .NET compares to other grid computing platforms after it’s 4.0 release.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Blog – Arthur Herczeg’s &lt;a href="http://techiethings.blogspot.com/2009/02/f-exceptions.html"&gt;F# Exceptions&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;An informational post on managing and throwing both F# native and general .NET exceptions in F#.&amp;#160; Included are examples of imperative style try, catch and try, finally patterns.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h3&gt;Blog – Karl Krukow’s &lt;a href="http://blog.higher-order.net/2009/02/01/understanding-clojures-persistentvector-implementation/"&gt;Understanding Clojure’s PersistentVector&lt;/a&gt; &lt;/h3&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Rich_Hickey"&gt;Rich Hickey&lt;/a&gt;, the father of the &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt; language, has gone out of his way to optimize Clojure’s structures for data sharing with immutability.&amp;#160; I was very impressed with Clojure when, back last march, &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/03/21/clojure-impressions.aspx"&gt;Rich Hickey came to Northampton and presented it in a talk&lt;/a&gt;.&amp;#160; While, Clojure runs on the JVM and so comes along with all of the baggage that it entails, it’s a fantastic language and people in the java community are flocking to it. &lt;/p&gt;

&lt;p&gt;I would love to see some of these data structures ported to the .NET framework so that F# could take advantage of them.&amp;#160; As far as I am currently aware, F# data structures are instead implemented via binary trees and so are much less efficient in terms of the amount of data shared. &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;;subject=Discoveries+This+Week+02%2f13%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;;title=Discoveries+This+Week+02%2f13%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;title=Discoveries+This+Week+02%2f13%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;;title=Discoveries+This+Week+02%2f13%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx&amp;amp;;title=Discoveries+This+Week+02%2f13%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/02/13/discoveries-this-week-02-13-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=17479" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/clojure/default.aspx">clojure</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/concurrency/default.aspx">concurrency</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/.NET/default.aspx">.NET</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fsharp/default.aspx">fsharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/testing/default.aspx">testing</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/grid/default.aspx">grid</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/stories/default.aspx">stories</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/exceptions/default.aspx">exceptions</category></item></channel></rss>