<?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 : fake, refactor</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fake/refactor/default.aspx</link><description>Tags: fake, refactor</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 04/16/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx</link><pubDate>Fri, 16 Apr 2010 18:16:13 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20507</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20507.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20507</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20507</wfw:comment><description>&lt;p&gt;It’s finally here.&amp;#160; After years of work, F# 2.0 is out and ready to change the way you program in .NET.&amp;#160; Come in for launch information, updates to projects written in F# and some great posts on actually using the language.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/04/12/f-2-0-released-as-part-of-visual-studio-2010.aspx"&gt;Don Syme’s F# 2.0 Released!&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;F# is a productive functional and object-oriented programming language for .NET that enables users to write simple code to solve complex problems. Its succinct syntax and powerful type inference lets users stay closer to the domain they are working in, and the integration into .NET and Visual Studio gives rich access to the expansive .NET platform.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Other Posts on the F# Launch&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://research.microsoft.com/en-us/news/features/fsharp-041310.aspx"&gt;Rob Knies’s F#: Putting the ‘Fun’ into ‘Functional’&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://www.itjoblog.co.uk/2010/04/microsoft-f.html"&gt;Tim Anderson’s Why Microsoft F# is worth exploring&lt;/a&gt;      &lt;br /&gt;&lt;a href="http://blog.andresays.org/2010/04/f-microsofts-new-functional-language/"&gt;Andre Burdette’s F#: Microsoft’s new functional language&lt;/a&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/lisa/archive/2010/04/16/vs-2010-keyboard-shortcut-posters-now-available-for-vb-c-f-c.aspx"&gt;Lisa Feigenbaum’s VS 2010 Keyboard Shortcut Posters Now Available for VB, C#, F# &amp;amp; C++&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The Visual Studio keyboard shortcut posters are always very popular and are now available for Visual Studio 2010! Please choose the one that corresponds to your choice of Visual Studio Development Settings. Print out a poster to place on the wall, or a quick reference card to keep on your desk.&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/chrsmith/archive/2010/04/13/good-news-and-sad-news-leaving-microsoft.aspx"&gt;Chris Smith’s Good News and Sad News - Leaving Microsoft&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;For me at least, the excitement and buzz of the Visual Studio 2010 launch will be short lived. Earlier this month I’ve accepted a position at another software company and will be leaving Microsoft. […]&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;However, I will still be part of the F# community and you will definitely see a second edition of Programming F# when the time comes.&amp;#160; &lt;strong&gt;In fact, next Tuesday 4/20 I’ll be giving a talk: &lt;/strong&gt;&lt;/em&gt;&lt;a href="http://www.communityforfsharp.net/april-2010-live-meeting-detail"&gt;&lt;em&gt;&lt;strong&gt;Writing a Java to x86 Compiler in F#&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt; at 11:00AM PST.&lt;/strong&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://www.navision-blog.de/2010/04/13/fake-f-sharp-make-and-naturalspec-released/"&gt;Steffen Forkmann’s “FAKE – F# Make” and NaturalSpec 1.0 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Yesterday Microsoft released the RTM versions of Visual Studio 2010, .NET Framework 4.0 and F# 2.0.0.0 and so it is time to announce the first official releases of “Fake – F# Make” and NaturalSpec. Both projects are now compatible with Visual Studio 2010 RC and RTM and the corresponding F# versions.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharprefactor.codeplex.com/"&gt;F# Refactor (No Release Yet, Check out the Repository)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Deisgned to bring Code Refactoring capabilities to the F# Language in Visual Studio 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Brian McNamara’s &lt;a href="http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!1886.entry"&gt;Using VS2010 to edit F# source code (and a little LOGO EDSL)&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1895.entry"&gt;Fun with turtle-graphics in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The code on the screen during the video is a little &lt;/em&gt;&lt;em&gt;EDSL&lt;/em&gt;&lt;em&gt; (Embedded Domain-Specific Language) for a subset of LOGO.&amp;#160; The full code is below; you can just copy it into an F# application project to run it.&lt;/em&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1882.entry"&gt;Brian McNamara and Chris Smith’s Alt.NET Workshop slides and code&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Chris and I each had our own slide deck, so to go in order you’ll have to switch back and forth between the two decks, like we did during the talk (Chris’s intro, my part on functional programming, Chris’s section on OO programming, my part on Async, Chris’s case study).&amp;#160; At the end of my deck there’s also some bonus slides on units of measure that we didn’t have time for.&lt;/em&gt;&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.sdtimes.com/link/34251"&gt;David Worthington’s ‘Midori’ concepts materialize in .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Midori is an attempt to create a new foundation for the operating system that runs ‘inside the box,’ on the desktop and in the rack. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/sliding-block-puzzle-in-f-and-wpf.html"&gt;Neil Carrier’s Sliding Block Puzzle in F# and WPF&lt;/a&gt; and     &lt;br /&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/simple-wpf-animation.html"&gt;Simple WPF Animation&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I realized that I wanted something more visual with which to test my search algorithms. I have also been wanting to learn how to write WPF applications using F#. To that end, I offer the following F#/WPF application of the famous Fifteen Puzzle, the ancestor of all sliding-block puzzles.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://techneilogy.blogspot.com/2010/04/generic-binary-heap.html"&gt;Neil Carrier’s Generic Binary Heap&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I'm pretty sure I'm going to need a priority queue for my A* search, so I decided to code a generic heap class in F#. The F# code below is largely a translation from Robert Sedgewick's Algorithms in C (Parts 1-4).&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/Whate28099s-happening-Loosely-coupled-events.aspx"&gt;Phillip Trelford’s What’s happening? Loosely coupled events&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;For example if you wanted to publish an event from any window that could be observed by any other window without them all having intimate knowledge of each other.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.trelford.com/blog/post/Implementing-IObservable-and-extending-Observable.aspx"&gt;Phillip Trelford’s Implementing IObservable and extending Observable&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Following on from my post yesterday on implementing loosely coupled events; the following somewhat longer F# sample provides a simple System.IObservable&amp;lt;T&amp;gt; implementation for event consumers.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/04/distributed-hash-table-dht-in-f-using.html"&gt;Daniel Mohl’s A DHT in F#: Using Higher Order Functions for the Service Operation Calls&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In my last post, I provided a start to a distributed hash table in F# using WCF.&amp;#160; One of the major limitations of that example was that only two nodes could ever be on the node network at a given time.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/04/talking-to-couchdb-via-f-and-symbiote.html"&gt;Daniel Mohl’s Talking to CouchDB via F# and Symbiote&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;Alex Robson recently announced a set of libraries that, among other things, makes talking with CouchDB from a .NET language very easy. […] As you can see, interacting with CouchDB via F# and Symbiote is a snap.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://v2matveev.blogspot.com/2010/04/mailboxprocessors-erlang-style.html"&gt;Vladimir Matveev’s MailboxProcessors: Erlang-style concurrency&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;MailboxProcessor is combination of message queue and message handler build atop of Asyncs infrastructure.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://geekswithblogs.net/MarkPearl/archive/2010/04/13/f-and-the-useful-infinite-sequence-i-think.aspx"&gt;Mark Pearl’s F# and the useful infinite Sequence (I think)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So the question is begged - how would you create a sequence that you are sure will be large enough to hold the solution to the problem? Well… You can’t know!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.markhneedham.com/blog/2010/04/12/f-the-defaultarg-function/"&gt;Mark Needham’s F#: The ‘defaultArg’ function&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;While reading through an old blog post by Matthew Podwysocki about writing F# code in a functional rather than imperative way I came across the 'defaultArg' function which I haven't seen previously.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;   &lt;blockquote&gt;     &lt;p&gt;&lt;a href="http://blog.andresays.org/2010/04/f-microsofts-new-functional-language/"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/h3&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/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.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/2010/04/16/f-discoveries-this-week-04-16-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+04%2f16%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/04/16/f-discoveries-this-week-04-16-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20507" 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/roundup/default.aspx">roundup</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/wpf/default.aspx">wpf</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/data+structures/default.aspx">data structures</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Infinite+Sequences/default.aspx">Infinite Sequences</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/IObservable/default.aspx">IObservable</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/fake/default.aspx">fake</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Mailboxes/default.aspx">Mailboxes</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/F_2300_+2.0/default.aspx">F# 2.0</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/keyboard+shortcuts/default.aspx">keyboard shortcuts</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/LOGO/default.aspx">LOGO</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/refactor/default.aspx">refactor</category></item></channel></rss>