<?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 : talks</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/talks/default.aspx</link><description>Tags: talks</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 11/09/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-2009.aspx</link><pubDate>Mon, 09 Nov 2009 16:24:59 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19686</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19686.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19686</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19686</wfw:comment><description>&lt;p&gt;As momentum builds for the F# release with Visual Studio 2010, so too does the number of people blogging about the language.&amp;#160; This week we have a spec update, clarified comparisons, decision trees, porting gotchas and in depth explorations of the debug IL generated by F#.&amp;#160; Please do enjoy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="https://www.clicktoattend.com/invitation.aspx?code=142886"&gt;Speaking on F# at the Connecticut .NET Developer’s Group&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Tomorrow (Tuesday November 10th, 2009) I’ll be speaking on F# at the &lt;/em&gt;&lt;a href="http://ctdotnet.org/default.aspx"&gt;&lt;em&gt;Connecticut .NET Developer’s group&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&amp;#160; For more information check out the &lt;/em&gt;&lt;a href="https://www.clicktoattend.com/invitation.aspx?code=142886"&gt;&lt;em&gt;ClickToAttend event&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2009/11/04/f-1-9-7-language-specification-now-available.aspx"&gt;From Don Syme’s Blog - F# Spec Updated for the 1.9.7 Release&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Many thanks to all those who sent so much helpful feedback on the specification during Beta1. And for those using 1.9.7 already, thanks for your patience in the last couple of weeks - it took us a little longer to get this out the door than we had planned, since a development deadline for Visual Studio 2010 intervened.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2009/11/08/equality-and-comparison-constraints-in-f-1-9-7.aspx"&gt;Don Syme’s Equality and Comparison Constraints in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;F# 1.9.7 introduces two new constraints to the F# language to help uncover issues in your code when using equality and comparison operators. In this blog entry we'll take a look at these constraints in a bit more detail. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The F# team has inherited quite a mess in terms of the lack of any kind of concrete definition of equality in the .NET framework.&amp;#160; It seems that they’ve been able to do much with it though.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Chris Smith’s Decision Trees &lt;a href="http://blogs.msdn.com/chrsmith/archive/2009/10/31/awesome-f-decision-trees-part-i.aspx"&gt;Part 1&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/chrsmith/archive/2009/11/02/awesome-f-decision-trees-part-ii.aspx"&gt;Part 2&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Now that we got all that painful math out of the way, let’s write some code! Here is an implementation of the algorithm in F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m just dying to see this extended to Bayesian network.&amp;#160; Perhaps I’ll try and extend it myself.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/2009/11/08/jumping-the-trampoline-in-c-stack-friendly-recursion.aspx"&gt;Bart De Smet’s Stack-Friendly Recursion&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Recursion is a widely known technique to decompose a problem in smaller “instances” of the same problem. For example, performing tree operations (e.g. in the context of data structures, user interfaces, hierarchical stores, XML, etc) can be expressed in terms of a navigation strategy over the tree where one performs the same operation to subtrees.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A detailed look at tail recursion optimization in F# and how to achieve something similar in C#.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stackoverflow.com/questions/142985/is-a-program-f-any-more-efficient-execution-wise-than-c"&gt;On StackOverflow, is a program F# any more efficient (execution-wise) than C#?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I'm guessing that it is not because they both boil down to the same IL.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It turns out that F# is in fact much faster in some cases.&amp;#160; For more on F# performance see &lt;a href="http://stackoverflow.com/questions/144227/c-f-performance-comparison"&gt;this roundup post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Steve Gilham’s F# under the covers parts &lt;a href="http://stevegilham.blogspot.com/2009/09/f-algebraic-types-under-covers.html"&gt;1&lt;/a&gt;, &lt;a href="http://stevegilham.blogspot.com/2009/09/more-f-under-covers.html"&gt;2&lt;/a&gt;, &lt;a href="http://stevegilham.blogspot.com/2009/09/f-under-covers-iii.html"&gt;3&lt;/a&gt;, &lt;a href="http://stevegilham.blogspot.com/2009/09/f-under-covers-iv-fxcop-noise.html"&gt;4&lt;/a&gt;, &lt;a href="http://stevegilham.blogspot.com/2009/09/f-under-covers-v.html"&gt;5&lt;/a&gt;, &lt;a href="http://stevegilham.blogspot.com/2009/10/f-under-covers-vi.html"&gt;6&lt;/a&gt;, and &lt;a href="http://stevegilham.blogspot.com/2009/11/f-under-covers-viii.html"&gt;8&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;I'm in the tidying up stages for the little project I've been working on lately, a set of FxCop rules, mainly aimed at providing some complementary features for nCover-style code coverage, including static analysis for trivial methods -- or compiler generated ones.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In this series Steve takes a very careful approach to exploring the IL generated by the F# compiler in debug mode. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.mattssoftwareblog.com/?p=200"&gt;Matt Moloney’s Lessons Learned in Porting [from] C# to F# (WPF)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I encountered a ton of difficulties while porting code from C# to F#. Fortunately / unfortunately, so have many other people. Thankfully they took the time to write about these problems so my solutions were often only a quick search away. Here is a collection of some of the finds that were able to help me in my endeavors.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;An excellent post well worth reading for anyone getting ready to port to F#.&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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+11%2f09%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+11%2f09%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+11%2f09%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+11%2f09%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-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/11/09/f-discoveries-this-week-11-09-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+11%2f09%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/11/09/f-discoveries-this-week-11-09-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19686" 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/IL/default.aspx">IL</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/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/recursion/default.aspx">recursion</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/efficiency/default.aspx">efficiency</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/decision+trees/default.aspx">decision trees</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/constraints/default.aspx">constraints</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/porting/default.aspx">porting</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/comparison/default.aspx">comparison</category></item><item><title>F# and You! - New Hampshire User’s Group and Beyond</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx</link><pubDate>Mon, 26 Oct 2009 16:24:49 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19518</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19518.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19518</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19518</wfw:comment><description>&lt;p&gt;I’ve been working for a while on a new presentation which I was finally able to give last week at the &lt;a href="http://www.nhdn.com/DNN/"&gt;New Hampshire .NET User Group&lt;/a&gt;.&amp;#160; &lt;em&gt;F# and You!&lt;/em&gt; focuses on painting the big picture about F# instead of the off-putting details like having to learn new syntax.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/functional_5555AB42.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="functional" border="0" alt="functional" src="http://www.atalasoft.com/cs/blogs/rickm/functional_thumb_6BAB5087.png" width="504" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For this new presentation I start by discussing the adoption of functional programming on other platforms by using Scala, Erlang and Haskell as examples.&amp;#160; I then continue on to how the algorithmic programmers are moving to functional languages while UI developers are moving towards declarative. &lt;/p&gt;  &lt;p&gt;This then naturally raises the question of why programmers would choose a specific style of programming for a specific task.&amp;#160; The answer, of course, is that when you work close to a domain you can build things more quickly and with a lower error rate.&lt;/p&gt;  &lt;p&gt;This then transitions easily into the specific beneficial properties of functional programming (and F#).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;General Overview:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Separation of UI and Back End&lt;/li&gt;    &lt;li&gt;What is Functional Programming? (Functional Concepts)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Pure functions&lt;/li&gt;      &lt;li&gt;Immutability&lt;/li&gt;      &lt;li&gt;Lambda Expressions&lt;/li&gt;      &lt;li&gt;Higher Order Functions&lt;/li&gt;      &lt;li&gt;Recursion&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;The Benefits of Functional Programming&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Code Compression&lt;/li&gt;      &lt;li&gt;Parallelism&lt;/li&gt;      &lt;li&gt;Robustness&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Proof is in the Pudding&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;TrueSkill&lt;/li&gt;      &lt;li&gt;Grange Insurance Rating Engine&lt;/li&gt;      &lt;li&gt;MSN adCenter&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Wrap-up&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ve also found that it is useful to show the latest circulating version of the &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/25/10-hours-in-fsharp-exploring-concurrency-through-an-ant-colony-simulation.aspx"&gt;Ant Colony simulation I wrote over a year ago&lt;/a&gt;.&amp;#160; I found a version in &lt;a href="http://blogs.msdn.com/dsyme/archive/2009/10/10/f-tutorial-code-and-slides-jaoo-2009-edition.aspx"&gt;Don Syme’s JAOO Talk code samples&lt;/a&gt; but am not sure who has been keeping it up to date.&amp;#160; A big thanks to whoever that person is.&amp;#160; It provides some sweet eye candy to dull the bitterness of the technical Functional Concepts section.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Planned (and Past) “F# and You!” Locations:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;11/10/2009 – &lt;a href="http://ctdotnet.org/default.aspx"&gt;CT .NET Developers Group&lt;/a&gt; (Farmington, CT)      &lt;br /&gt;10/28/2009 – &lt;a href="http://www.technologyusersgroup.org/"&gt;Technology Users Group&lt;/a&gt; (Charleston, SC)      &lt;br /&gt;10/21/2009 – &lt;a href="http://www.nhdn.com/DNN/"&gt;New Hampshire .NET User Group&lt;/a&gt; (Nashua, NH)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;See the new &lt;a href="http://fsug.org/OtherEvents/tabid/67/Default.aspx"&gt;Other Events&lt;/a&gt; section of our &lt;a href="http://fsug.org/Home/tabid/37/Default.aspx"&gt;F# User Group site&lt;/a&gt; for information on other upcoming F# talks.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Downloads:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/files/folders/19516/download.aspx"&gt;Latest Slides&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.atalasoft.com/cs/files/folders/19517/download.aspx"&gt;VS2008 Code Samples&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/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;subject=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.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/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.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/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.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/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx&amp;amp;;title=F%23+and+You!+-+New+Hampshire+User%e2%80%99s+Group+and+Beyond&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/26/f-and-you-new-hampshire-user-s-group-and-beyond.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19518" 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/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/haskell/default.aspx">haskell</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/functional+programming/default.aspx">functional programming</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/parallelism/default.aspx">parallelism</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/erlang/default.aspx">erlang</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/robustness/default.aspx">robustness</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/code+compression/default.aspx">code compression</category></item><item><title>Code Camp 12: Boston – Why F#?</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx</link><pubDate>Fri, 16 Oct 2009 15:18:54 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19433</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19433.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19433</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19433</wfw:comment><description>&lt;p&gt;A couple of months ago I was talking to &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/default.aspx"&gt;Lou Franco&lt;/a&gt;, the head of our Software Engineering department and fellow functional programming enthusiast, about the possibility of using F# for projects in the future.&amp;#160; Being business minded, he replied that he would need a compelling reason to bring F# on board.&amp;#160; This presentation is dedicated to him and others who have functional programming on their radar but haven’t yet found a compelling reason to bring it in to their company.&lt;/p&gt;  &lt;p&gt;I acknowledge that, as for now, it’s difficult to suggest anyone do more than play with F#.&amp;#160; I have been anxiously awaiting the stabilization of the F# API which will come along with the release of VS2010.&amp;#160; With the recent changes breaking backwards compatibility, maintaining my old F# samples has become quite a nightmare.&amp;#160; Indeed, not a single code sample I have from a year ago works out of the box with the current release.&lt;/p&gt;  &lt;p&gt;However, VS2010 is only a few months away.&amp;#160; Now is the time to start learning about F# and the paradigms which make it so powerful.&amp;#160; Functional programming has amazing benefits in terms of parallelization, code compression and overall code robustness.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;At Code Camp 12 Boston, I will talk about the soon-to-be-realized world where programmers are divided into groups which each use different types of languages to build different kinds of things.&amp;#160; This is easy to predict as it is already occurring.&amp;#160; UI, data processing and data storage programmers are already diversifying both in working knowledge and tools.&lt;/p&gt;  &lt;p&gt;As is evidenced by WPF, HTML and CSS it seems UI design is moving more and more to a declarative style.&amp;#160; Similarly, the rise of F#, Scala, Erlang and Haskell indicates that algorithmic programmers are migrating to the functional programming languages.&amp;#160; SQL has long been the language of those involved in data storage.&amp;#160; It’s no wonder that this has happened.&amp;#160; When your tool is better designed for your job, the work gets done faster and you end up with a better result.&lt;/p&gt;  &lt;p&gt;Where does this leave imperative and object oriented languages?&amp;#160; Languages like Java, VB and C# will be relegated to being used as “glue” for existing systems while abstract languages slowly eat away their market share.&amp;#160; This will happen more and more as the number of cores per processor continues to increase and those with imperative implementations find that they are unable to scale.&lt;/p&gt;  &lt;p&gt;When: Oct 16th, 2009 (11:50am)    &lt;br /&gt;Where: 201 Jones Rd, 6th Floor, Waltham MA USA (Room TBC)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.atalasoft.com/cs/files/folders/19474/download.aspx"&gt;Slides are available here.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Also, be sure to also check out my fellow F# User Group leader Talbott Crowell’s talk.&amp;#160; It’s right before mine (10:30) in the same room (Thanks Chris!).&amp;#160; You can find out more by heading over to Chris Bowen’s blog and reading his &lt;a href="http://blogs.msdn.com/cbowen/archive/2009/10/12/code-camp-12-the-schedule.aspx"&gt;post on Code Camp 12&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/10/16/code-camp-12-boston-why-f.aspx&amp;amp;;subject=Code+Camp+12%3a+Boston+%e2%80%93+Why+F%23%3f" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.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/10/16/code-camp-12-boston-why-f.aspx&amp;amp;;title=Code+Camp+12%3a+Boston+%e2%80%93+Why+F%23%3f" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.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/10/16/code-camp-12-boston-why-f.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx&amp;amp;title=Code+Camp+12%3a+Boston+%e2%80%93+Why+F%23%3f" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx&amp;amp;;title=Code+Camp+12%3a+Boston+%e2%80%93+Why+F%23%3f" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.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/10/16/code-camp-12-boston-why-f.aspx&amp;amp;;title=Code+Camp+12%3a+Boston+%e2%80%93+Why+F%23%3f&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/10/16/code-camp-12-boston-why-f.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19433" 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/C_2300_/default.aspx">C#</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/object+oriented/default.aspx">object oriented</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/technology/default.aspx">technology</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/haskell/default.aspx">haskell</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/scala/default.aspx">scala</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/csharp/default.aspx">csharp</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/programming+languages/default.aspx">programming languages</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/erlang/default.aspx">erlang</category></item><item><title>F# Discoveries This Week 08/23/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-2009.aspx</link><pubDate>Mon, 24 Aug 2009 02:18:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:19187</guid><dc:creator>RickM</dc:creator><slash:comments>3</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/19187.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=19187</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=19187</wfw:comment><description>&lt;p&gt;This week Steve Horsfield continues his adventures with WPF while Matthew Podwysocki posts more on the .NET Event Model.&amp;nbsp; Meanwhile, John Harrop shares a video tutorial on F# interactive and Chris Smith provokes meta discussion on the best way to present F#.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Upcoming Events&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blog.codinglight.com/2009/08/houston-f-users-group-august-27th-700.html"&gt;Houston F# Users Group&lt;/a&gt; – Meeting August 27th 7:00pm. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://fsug.org/"&gt;New England F# User Group&lt;/a&gt; – Meeting September 7th 6:30pm. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you would like your F# event to be listed here, please let me know via the email link at the top of this page.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;Posts of Note&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/15/wpf-resources-and-f/"&gt;Steve Horsfield on WPF, Resources and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;The problem is a simple one: add a toolbar image into an assembly and make it available as a resource in WPF, but use only XAML and F#.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevehorsfield.wordpress.com/2009/08/21/fsharp-chaining-side-effects-and-dependency-properties/"&gt;Steve Horsfield on Chaining Side Effects in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;The first question that any functional programmer should ask is, “why are there side effects?!” Side effects are anathema to functional programming purists because they introduce many kinds of undesirable characteristics into code, limiting optimization and restructuring options.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2009/08/21/f-first-class-events-creating-and-disposing-handlers.aspx"&gt;Matthew Podwysocki on Creating and Disposing .NET Event Handlers&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;So far in this series, I’ve covered a bit about what first class events are in F# and how you might use them. […] This time, let’s look at how we might manage the lifetime of a given event subscription.&lt;/i&gt;&amp;nbsp;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.youtube.com/watch?v=e3ah_JggcVw"&gt;Jon Harrop’s F# Interactive Tutorial Video for Beginners&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;This is a quick teaching on the use of the F# Interactive Mode which&amp;nbsp; lets you, like the OCaml top level, type code in in real time.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://msdnrss.thecoderblogs.com/2009/08/21/f-for-architects-hitting-the-sweet-spot/"&gt;Chris Smith’s F# for Architects: Hitting the Sweet Spot&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;When I was at DevLink last week I gave a talk designed to specifically identify why and when you should use F#. I was going to post the slides, but then I realized that they are in the form of a ‘presentation deck’ rather than a ‘reading deck’. So rather than having a few vague slogans and images in a .pptx file, I’ve transcribed my talking points.&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I would consider Chris Smith’s post a must read for anyone giving talks on, or otherwise promoting, F#.&amp;nbsp; I gave much thought to a number of different aspects of my F# presentations after reading this.&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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-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/08/23/f-discoveries-this-week-08-23-2009.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f23%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/08/23/f-discoveries-this-week-08-23-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=19187" 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/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/roundup/default.aspx">roundup</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/video/default.aspx">video</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/events/default.aspx">events</category></item><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>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>The Future of Programming Languages</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx</link><pubDate>Wed, 15 Oct 2008 14:18:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:16086</guid><dc:creator>RickM</dc:creator><slash:comments>14</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/16086.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=16086</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=16086</wfw:comment><description>&lt;p&gt;Yesterday, my coworker &lt;a href="http://www.atalasoft.com/cs/blogs/loufranco/default.aspx"&gt;Lou Franco&lt;/a&gt; pointed me to a fantastic talk by Anders Hejlsberg &lt;a href="http://blog.jaoo.dk/2008/10/07/the-future-of-programming-languages/"&gt;on the future of programming languages&lt;/a&gt;.&amp;nbsp; In this talk Anders argues that the future of programming language development will be focused on three events: the explosion in the use of Dynamic Languages, the creation of many new Domain Specific Languages and the rising need for Concurrency.&amp;nbsp; &lt;/p&gt;&lt;p&gt;In this article I'm going to focus on Dynamic Typing and Metaprogramming in particular.&amp;nbsp; It's interesting to consider what the impact on the maintainability of our code from their increased prominence might be.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Dynamic vs Static Typing&lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Over the last decade the use of dynamic programming languages has exploded.&amp;nbsp; Working at the higher level of abstraction that dynamic languages provide allows the programmer to spend much more time building things and much less time worrying about the details.&amp;nbsp; For sure, when prototyping or experimenting the speed of dynamic languages is a huge boon.&amp;nbsp; However, without type checking at compile time the potential for really difficult to track down bugs is huge. &lt;br&gt;&lt;/p&gt;&lt;p&gt;Just think about the kinds of strange bugs that can happen when any type can be passed into any argument of any method.&amp;nbsp; It gets even worse when you consider that these types may be silently converting themselves.&amp;nbsp; Without great care, the number of potential execution paths in your program could skyrocket.&amp;nbsp; &lt;/p&gt;&lt;p&gt;This can be offset by really strict unit testing and
extremely high code coverage.&amp;nbsp; However, I have yet to see a large real
world project that had this level of testing.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;For these reasons I find the new C# "dynamic" keyword rather
worrying.&amp;nbsp; It allows the programmer to declare variables which are only
type checked at runtime instead of at compile time. I would hate to have to
maintain a code base where it was liberally used. &lt;br&gt;&lt;/p&gt;&lt;p&gt;Anders also mentions F#'s static but implied typing system.&amp;nbsp; He talks a bit about the two worlds of static and dynamic meeting in the middle in this kind of way.&amp;nbsp; I agree, this is really the best of both worlds.&amp;nbsp; You gain the "dynamic feel" but get almost none of the downsides.&amp;nbsp; The security of static types without all the extra typing. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Metaprogramming&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I agree that Metaprogramming is a powerful tool, especially for testing.&amp;nbsp; In a ecosystem designed around objects having meaning, it only makes sense to be able to ask questions about those objects and be able to dynamically manipulate how they operate.&amp;nbsp; However, I am worried that it may in some cases become a substitute for well designed architecture. &lt;/p&gt;&lt;p&gt;Also, because of it's nature, in many cases Metaprogramming necessitates the use of strings to represent information about the application.&amp;nbsp; Strings whose contents will not be checked at compile time.&amp;nbsp; Because of this it is very easy to make breaking changes to an application which won't be caught when the program is compiled. &lt;/p&gt;&lt;p&gt;Take for example the idea of a class with a single property.&amp;nbsp; In the code for the application in which that class lives, a code branch depends on reflection to check if that property exists.&amp;nbsp; If you were to rename that property that path would no longer be taken and a bug would result.&amp;nbsp; If the creator of that code had used an interface instead of reflection it would have broken at compile time. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Conclusion &lt;/b&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;I'm not saying that these kinds of powerful tools shouldn't exist. They are extremely useful in many cases.&amp;nbsp; We just need to be very careful in their use.&amp;nbsp; As &lt;a href="http://www.atalasoft.com/cs/blogs/stevehawley/default.aspx"&gt;Steve Hawley&lt;/a&gt; likes to say, when you have a shiny new hammer everything starts to look like nails.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Edit&lt;/b&gt;:&amp;nbsp; I want to note that I had intended to include a
subsection on the direct modification of abstract syntax trees but ran
out of time.&amp;nbsp; Also, a good friend of mine also pointed out to me that
Lisp style macros actually do let you work with the underlying code in
a much more meaningful way than C++ style text manipulation.&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;br&gt;&lt;br&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/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;;subject=The+Future+of+Programming+Languages" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;;title=The+Future+of+Programming+Languages" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;title=The+Future+of+Programming+Languages" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;;title=The+Future+of+Programming+Languages" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.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/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx&amp;amp;;title=The+Future+of+Programming+Languages&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/10/15/anders-hejlsberg-on-the-future-of-programming-languages.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=16086" width="1" height="1"&gt;</description><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/programming/default.aspx">programming</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/object+oriented/default.aspx">object oriented</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/talks/default.aspx">talks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/reflection/default.aspx">reflection</category></item><item><title>F# at Code Camp 10 In Waltham, MA</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx</link><pubDate>Fri, 19 Sep 2008 20:02:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:15719</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/15719.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=15719</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=15719</wfw:comment><description>I'll be at &lt;a href="http://blogs.msdn.com/cbowen/archive/2008/09/15/code-camp-10-the-schedule.aspx"&gt;New England Code Camp 10&lt;/a&gt;
tomorrow giving another talk about functional programming and
concurrency in F#.&amp;nbsp; It will be fairly similar to my previous talks in
terms of ideas and content, however, I have put a lot of work into
making the functional programming ideas easier to understand. The code
samples have also been updated and are now 100% compatible with the F#
CTP Release. &lt;br&gt;
&lt;p&gt;&lt;strike&gt;Our internet connection is going down soon for
testing. I'll be updating this post later on tonight with more
information. I'll be posting my slides and updated code examples.&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;I did manage to get my slides and new code samples uploaded on Friday but I didn't have time to change my blog text. You can find them &lt;a href="http://www.atalasoft.com/cs/blogs/rickm/attachment/15719.ashx"&gt;here&lt;/a&gt;. &lt;br&gt;&lt;/p&gt;
&lt;p&gt;The sites of interest for my presentation:&lt;a href="http://msdn.microsoft.com/en-us/fsharp/default.aspx"&gt;&lt;br&gt;Microsoft's F# Developer's Center&lt;/a&gt;&lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt; &lt;/a&gt;( Download F# here. )&lt;br&gt;&lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#'s Microsoft Research Site&lt;/a&gt; &lt;br&gt;&lt;a href="http://cs.hubfs.net/"&gt;hubFS: THE place for F#&lt;/a&gt; ( The forums here are a great resource. )&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Here are some additional links you might find interesting:&lt;a href="http://blogs.msdn.com/dsyme/"&gt;&lt;br&gt;Don Syme's Blog&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.strangelights.com/blog/"&gt;Robert Pickering's Blog&lt;/a&gt;&lt;br&gt; &lt;a href="http://podwysocki.codebetter.com/"&gt;Matthew Podwysocki's Blog&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/25/10-hours-in-fsharp-exploring-concurrency-through-an-ant-colony-simulation.aspx"&gt;My F# Ant Colony Work&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/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;;subject=F%23+at+Code+Camp+10+In+Waltham%2c+MA" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;;title=F%23+at+Code+Camp+10+In+Waltham%2c+MA" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;title=F%23+at+Code+Camp+10+In+Waltham%2c+MA" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;;title=F%23+at+Code+Camp+10+In+Waltham%2c+MA" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.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/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx&amp;amp;;title=F%23+at+Code+Camp+10+In+Waltham%2c+MA&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2008/09/19/f-at-code-camp-10-in-waltham-ma.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=15719" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/rickm/attachment/15719.ashx" length="319226" type="application/zip" /><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/programming/default.aspx">programming</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/functional/default.aspx">functional</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/lamba/default.aspx">lamba</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/code/default.aspx">code</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/microsoft+research/default.aspx">microsoft research</category></item><item><title>More F# At Code Camp Hartford</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2008/08/16/f-at-code-camp-hartford.aspx</link><pubDate>Sat, 16 Aug 2008 18:03:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:15261</guid><dc:creator>RickM</dc:creator><slash:comments>5</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/15261.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=15261</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=15261</wfw:comment><description>I am down in Bloomfield, CT today at Hartford CodeCamp which has been put on by the Connecticut .NET Developer's Group . I just gave a very similar version my talk on the 5th. The room was completely full and I was a bit weak and foggy from my recent...(&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/08/16/f-at-code-camp-hartford.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=15261" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/rickm/attachment/15261.ashx" length="289916" type="application/zip" /><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/programming/default.aspx">programming</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/functional/default.aspx">functional</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/experiences/default.aspx">experiences</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/microsoft+research/default.aspx">microsoft research</category></item><item><title>Talkin Bout' F# - Presenting at the Western Mass .NET Users's Group</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2008/08/05/giving-a-f-presentation-at-the-local-net-users-s-group.aspx</link><pubDate>Tue, 05 Aug 2008 13:36:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:15166</guid><dc:creator>RickM</dc:creator><slash:comments>0</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/15166.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=15166</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=15166</wfw:comment><description>I'm going to be giving a presentation at the my local .NET User's group tonight. The goal of my talk will be to expose the audience to F# as well as some Functional Programming Ideas. Here's a basic rundown of what the talk is about (in order): - What...(&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/08/05/giving-a-f-presentation-at-the-local-net-users-s-group.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=15166" width="1" height="1"&gt;</description><enclosure url="http://www.atalasoft.com/cs/blogs/rickm/attachment/15166.ashx" length="302347" type="application/octet-stream" /><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/programming/default.aspx">programming</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/functional/default.aspx">functional</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/experiences/default.aspx">experiences</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/talks/default.aspx">talks</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/microsoft+research/default.aspx">microsoft research</category></item><item><title>10 Hours in F#: Exploring Concurrency Through An Ant Colony Simulation</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/25/10-hours-in-fsharp-exploring-concurrency-through-an-ant-colony-simulation.aspx</link><pubDate>Fri, 25 Apr 2008 19:33:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:13762</guid><dc:creator>RickM</dc:creator><slash:comments>15</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/13762.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=13762</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=13762</wfw:comment><description>Synopsis I gave an hour long talk today, here at Atalasoft, on Concurrency in F# . It featured some slides and a small ant colony simulation to demonstrate different kinds of threading. Overall, I liked developing in F# quite a bit; however, puzzling...(&lt;a href="http://www.atalasoft.com/cs/blogs/rickm/archive/2008/04/25/10-hours-in-fsharp-exploring-concurrency-through-an-ant-colony-simulation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=13762" 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/programming/default.aspx">programming</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/functional/default.aspx">functional</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/code/default.aspx">code</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/experiences/default.aspx">experiences</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/optimization/default.aspx">optimization</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></item></channel></rss>