<?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 : clojure, VS2008, roundup</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/clojure/VS2008/roundup/default.aspx</link><description>Tags: clojure, VS2008, roundup</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Discoveries This Week 01/23/2009</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-23-2009.aspx</link><pubDate>Fri, 23 Jan 2009 18:17:00 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:17309</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/17309.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=17309</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=17309</wfw:comment><description>&lt;p&gt;Another very exciting week.&amp;#160; I’ve barely had time to catch my breath.&lt;/p&gt;  &lt;p&gt;Meanwhile I’ve decided to take my weekly roundup post consistently in the direction of functional programming in the Microsoft universe for the foreseeable future.&amp;#160; This will be with a heavy slant towards software engineering and, of course, F#.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Post: &lt;a href="http://blogs.tedneward.com/2009/01/18/Building+WCF+Services+With+F+Part+1.aspx"&gt;Ted Neward’s Building WCF Services with F# Part 1&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;It’s always interesting to see F# applied to existing Microsoft .NET infrastructure.&amp;#160; In this case I was particularly impressed with how well the ideologies of the two technologies fit together. &lt;/p&gt;  &lt;p&gt;However, the most important thing about Ted’s post is that it notes a bug in WCF that could cause quite a bit of headache if it caught you unaware.&amp;#160; When using a F# declared interface, if no name is explicitly specified for a function parameter, WCF will throw an ArgumentNullException.&amp;#160; &lt;/p&gt;  &lt;p&gt;This will be manifest in the following situations:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;When svcutil.exe is run on the assembly. &lt;/li&gt;    &lt;li&gt;When you attempt to construct a ServiceHost with the interface. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The issue stems from that fact that traditional .NET languages cannot have nameless parameters.&amp;#160; Thanks for figuring out this problem for us Ted.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&amp;#160;&amp;#160; &lt;h3&gt;Code: &lt;a href="http://code.google.com/p/wcf-examples/source/browse/#svn/trunk/FSharpExamples"&gt;Ray Vernagus’s WCF F# Examples&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;As he &lt;a href="http://vernagus.blogspot.com/2009/01/f-and-wcf-examples.html"&gt;posted in response to Ted’s above&lt;/a&gt;, Ray has been working towards getting his &lt;a href="http://www.microsoft.com/learning/en/us/exams/70-503.mspx"&gt;MCTS 70-503&lt;/a&gt; certification and has decided to do all of his examples in F#.&amp;#160; Making this kind of information available is a fantastic contribution to the F# community.&amp;#160; I hope that in the future ray will both write more in more depth about his experiences and continue to provide samples.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Code: &lt;a href="http://github.com/namin/spots/tree/master/probabilisticModeling"&gt;Nada Amin’s Probabilistic Modeling in Three Languages&lt;/a&gt; &lt;/h3&gt;  &lt;p&gt;In Chapter 9 of &lt;a href="http://www.expert-fsharp.com/default.aspx"&gt;Expert F#&lt;/a&gt; the idea of using a Monad to represent a probability distribution is presented with code examples.&amp;#160; &lt;a href="http://spotless-spots.blogspot.com/2008/12/probabilistic-modeling-in-haskell.html"&gt;Nada&lt;/a&gt; has rewritten this example in both &lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt; and &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt;.&amp;#160; While they may not all be optimal implementations for each language, this provides an interesting opportunity to compare each language syntactically.&amp;#160; I’m somewhat tempted to submit a &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt; implementation to round it off. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Code: &lt;a href="http://code.msdn.microsoft.com/fsharpsamples"&gt;Microsoft’s Official F# Samples Version 0.1&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Yesterday, at the Boston MSDN Conference, &lt;a href="http://talbottc.spaces.live.com/"&gt;Talbott Crowell&lt;/a&gt; showed off some really amazing examples from this package.&amp;#160; This is a must have for any potential F# developer as the samples not only show how off the features of the API, they also demonstrate proper coding practices.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Software: &lt;a href="http://www.codeplex.com/ora"&gt;Ora (Visual Studio Add-in)&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Ora is a add-in which provides a simple yet dynamic overview of the file you are currently editing in Visual Studio.&amp;#160; Although I haven’t had a chance to test it in F# as of yet, Ora is my new favorite tool for every-day use in Visual Studio.&amp;#160; &lt;/p&gt;  &lt;p&gt;I no longer scroll up and down the code or try to sort through Visual Studio’s terrible method dropdown.&amp;#160; Instead, I have access to a custom visualization of the class I am working on all of the time.&amp;#160; The best part is that it fits perfectly over my properties window which I rarely use and have always considered to be a waste of space. &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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;;subject=Discoveries+This+Week+01%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;;title=Discoveries+This+Week+01%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;title=Discoveries+This+Week+01%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;;title=Discoveries+This+Week+01%2f23%2f2009" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-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/01/23/discoveries-this-week-01-23-2009.aspx&amp;amp;;title=Discoveries+This+Week+01%2f23%2f2009&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2009/01/23/discoveries-this-week-01-23-2009.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=17309" 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/.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/VS2008/default.aspx">VS2008</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Visual+Studio/default.aspx">Visual Studio</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/haskell/default.aspx">haskell</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/wcf/default.aspx">wcf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/scala/default.aspx">scala</category></item></channel></rss>