<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>planet wmassdevs articles</title>
    <link>http://wmassdevs.com/planet/articles</link>
    <description>RSS feed for planet wmassdevs</description>
    <item>
      <title>F# Discoveries This Week 02/25/2010</title>
      <link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx</link>
      <description>&lt;p&gt;Between Atalasoft, Professional F# 2.0 and the MVP Summit I&#8217;ve been completely swamped and ended up with quite a backlog of posts.&amp;#160; Between the Brian-Chris F# Code Battle, Luca&#8217;s LChart, Ashley&#8217;s continuing FScheme series and Matthew&#8217;s MongoDB stuff I&#8217;m not sure I can pick a favorite.&amp;#160; That&#8217;s not true, I&#8217;d go right for the DAWG-fight series.&amp;#160; The arcane secrets of F# optimization await inside.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-3-of-3/"&gt;C9 Lectures: Dr. Don Syme - Introduction to F#, 3 of 3&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In Part 3 of this 3-part lecture series, Dr. Don Syme elaborates further on: Patterns, Object Basics, [and] Imperative Programming.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx"&gt;Dr. Don Syme&#8217;s Async and Parallel Design Patterns in F#: Agents&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In part 3 of this series, we explore lightweight, reactive agents in F# and look at some typical design patterns associated with these agents, including isolated internal state.&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/02/17/dawg-fight-optimizing-text-search-in-f-ii.aspx"&gt;Chris Smith&#8217;s DAWG-fight, Optimizing text search in F# II&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1803.entry"&gt;Dr. Brian McNamara&#8217;s DAWG-Gone&lt;/a&gt; (F# Language Team Code Battle Summary) &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So today I&#8217;ll walk you through what Chris did right (shortest&#8230; subsection&#8230; ever!), as well as what he did wrong (get comfy in your chair), and then show my own implementation.&lt;/em&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Luca Bolognese&#8217;s LChart: Displaying Charts in F# Parts &lt;a href="http://blogs.msdn.com/lucabol/archive/2010/02/17/lchart-displaying-charts-in-f-part-i.aspx"&gt;One&lt;/a&gt;, &lt;a href="http://lucabolognese.wordpress.com/2010/02/17/lchart-displaying-charts-in-f-part-ii/"&gt;Two&lt;/a&gt; and &lt;a href="http://lucabolognese.wordpress.com/2010/02/19/lchart-displaying-charts-in-f-part-iii/"&gt;Three&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I want to use F# as a exploratory data analysis language (like R). But I don&#8217;t know how to get the same nice graphic capabilities. So I decided to create them. Here is a library to draw charts in F#.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Dr. Brian McNamara&#8217;s An RSS Dashboard in F# Parts &lt;a href="http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!1780.entry"&gt;Four&lt;/a&gt;, &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1790.entry"&gt;Five&lt;/a&gt; and &lt;a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!1802.entry"&gt;Six&lt;/a&gt;.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;You can see from the colors in the screenshot from part one what I desired, but this requires knowing which links are &#8216;visited&#8217; and which are not, so I can color each link appropriately.&amp;#160; It turns out, this information can be had via unusual means&#8230;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Ashley Feniello&#8217;s FScheme Parts &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/02/11/turning-your-brain-inside-out-with-continuations.aspx"&gt;Ten&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/02/21/playing-dice-with-the-universe.aspx"&gt;Eleven&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;We&#8217;re now taking the first small step into the world of nondeterministic logic programming (chapter 16 of Bill Hails&#8217; book). Hopefully you enjoyed the last post about continuation passing and found the idea to be ripe with potential power; indeed so powerful that we&#8217;re going to use it now to bifurcate the universe! No really, we are&#8230;&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/lucabol/archive/2010/02/12/a-simpler-f-mailboxprocessor.aspx"&gt;Luca Bolognese&#8217;s A simpler F# MailboxProcessor&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I always forget the pattern to use to create a functioning MailboxProcessor in F#. I mean, which piece has to be async and how to structure the recursive loop. When I find myself in that kind of a situation situation, my instincts scream at me: &#8220;Wrap it and make it work how your mind expects it to work&#8221;. So here is a simplification of the paradigm.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx"&gt;Matthew Podwysocki&#8217;s The F# PowerPack Released on CodePlex&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As announced yesterday, the new February 2010 release of F# is out. This release is much more of a stabilization release instead of adding a lot of features including improvements in tooling, the project system and so on.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/09/exploring-mongodb-with-f.aspx"&gt;Matthew Podwysocki&#8217;s Exploring MongoDB with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I just want a quick answer with the data I have.&amp;#160; There was one issue of course that nagged me which was the ubiquitous use of strings for everything from databases, collections, and keys.&amp;#160; With a language such as F#, could we do any better than this approach?&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/10/f-and-the-dynamic-lookup-operator-ala-c.aspx"&gt;Matthew Podwysocki&#8217;s F# and the Dynamic Lookup Operator ala C#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In the F# language, we have the ability to define two &#8220;dynamic&#8221; operators, a get member operator denoted by the ( ? ), and the set member operator denoted by the ( ?&amp;lt;- ).&amp;#160; The F# language and its associated libraries do not have an actual implementation of these operators, but instead allow you to implement them as you see fit. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Steve Gilham&#8217;s Updating F# posts to 1.9.9.9 Parts &lt;a href="http://stevegilham.blogspot.com/2010/02/updating-f-posts-to-1999-part-1-before.html"&gt;One&lt;/a&gt; and &lt;a href="http://stevegilham.blogspot.com/2010/02/updating-f-posts-to-1999-part-2-october.html"&gt;Two&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Possibly a few more issues will come out as I reconstitute my analysis tool, which is currently undergoing a retooling of its build system to automate some of the manual checks for whether the operational tests succeeded or not.&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/02/14/fake-f-make-0-29-released-ready-for-f-february-2010-ctp-and-net-4-0-rc/"&gt;Steffen Forkmann&#8217;s FAKE &#8211; F# Make 0.29 Released&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last week I released version 0.29 of my build automation tool &#8220;FAKE &#8211; F# Make&#8221;. The new version comes along with a couple of changes which I will now describe.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://langexplr.blogspot.com/2010/02/using-webcam-with-directshownet-and-f.html"&gt;Luis Diego Fallas&#8217;s Using a Webcam with DirectShowNET and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I'm going to show a small F# example of using DirectShowNET to access a webcam and manipulate the image data.&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/02/15/f-passing-an-argument-to-a-member-constraint/"&gt;Mark Needham&#8217;s F#: Passing an argument to a member constraint&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I've written previously about function overloading in F# and my struggles working out how to do it and last week I came across the concept of inline functions and statically resolved parameters as a potential way to solve that problem.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin&#8217;s &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/10/bittorrent-bencoded-values-in-f"&gt;BitTorrent Bencoded values&lt;/a&gt; and &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/13/bittorrent-metainfo-file-handling-in-f"&gt;BitTorrent Metainfo file handling&lt;/a&gt; in F#&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Byte strings can be strings represented as byte strings (such as the description of the exchanged data), as well as an array of bytes (such as a hash). Representing them with the .Net strings can thus lead to errors. Hence we shall keep the byte array representation.&lt;/em&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/skew-binomial-heap"&gt;Skew binomal heap&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/bankers-double-ended-queue"&gt;Banker&#8217;s double-ended queue&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/11/alternative-binary-random-access-list"&gt;Alternative binary random access list&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/18/bootstrapped-queue"&gt;Bootstrapped queue&lt;/a&gt;, and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/18/implicit-queue"&gt;Implicit queue&lt;/a&gt;.&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki&#8217;s &#8220;Purely functional data structures&#8221;.&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.scottseely.com/Blog/10-01-13/F_is_Changing_My_Style.aspx"&gt;Scott Seely&#8217;s F# is Changing My Style&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The types I&#8217;m interested are concrete (no abstract methods) and have a zero-argument constructor. A few years ago, I would have done a bunch of looping constructs to look at each element. However, I&#8217;ve been doing a lot more work with F#. While doing this experiment in C# for a project, I wound up writing the following instead:&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stevegilham.blogspot.com/2010/02/it-almost-feels-like-cheating.html"&gt;Steve Gilham&#8217;s It almost feels like cheating&#8230;&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Having renamed all the .c files as .cpp, getting a first building assembly was simple, and then making it refer to an initially empty F# library, no problem; and then setting up an (again, initially empty) unit test assembly depending on both (where vice-tests to match up new and old implementations, and their eventual unit test replacements can accumulate), just as normal.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bradclow.blogspot.com/2010/02/f-examples-talk-at-bfg.html"&gt;Brad Clow&#8217;s F# Examples talk at BFG&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Earlier this week I gave a short talk at the Brisbane Functional Group on F#. The idea was to give an introductory feel for the language by way of some simple examples.&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/F-Talk-at-Edge-UG-Slides-and-Demos.aspx"&gt;Phillip Trelford&#8217;s F# Talk at Edge UG: Slides and Demos&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;I presented a 1 hour talk introducing F# with 4 demos (attached to this post):&amp;#160; Full-screen WPF POS Checkout sample with Barcode scanner integration (in 100 lines).&amp;#160; Twitter WPF client script (200 lines).&amp;#160; Matermind board game in WPF (300 lines).&amp;#160; Lunar Lander XNA game (&amp;gt;400 lines). &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.mwjackson.net/?p=40"&gt;Matt Jackson&#8217;s AssertWasCalled in F# (or how I learned to stop worrying and hate extension methods)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Unfortunately, this upcasting led me on a short goose chase to find out which interface in the Rhino Mocks codebase was responsible for AssertWasCalled only to realise that it was an extension method sitting hiding away somewhere else.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-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/02/25/f-discoveries-this-week-02-25-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f25%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/25/f-discoveries-this-week-02-25-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20254" width="1" height="1"&gt;</description>
      <guid>933</guid>
    </item>
    <item>
      <title>Get Started with F# via Higher order IEnumerable&lt;T&gt; extension methods in C#</title>
      <link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx</link>
      <description>&lt;p&gt;The more I use F# the more I want to write my every day production C# code in a functional way.&amp;#160; To this end, I&#8217;ve written a few higher order extension methods as the need arose.&amp;#160; I wanted to take a moment and share them with you.&amp;#160; I think that in seeing an implementation of these functions in C#, what they do becomes easy to understand.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370294%28VS.100%29.aspx"&gt;Filter&lt;/a&gt; provides a new collection with unwanted items removed.&amp;#160; &lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fda0f143-014b-482e-9712-1d89c0238d93" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; Filter&amp;lt;T&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Predicate&lt;/span&gt;&amp;lt;T&amp;gt; predicate)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt; newList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt;();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; list)&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (predicate(item))&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;newList.Add(item);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; newList;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370239%28VS.100%29.aspx"&gt;Reduce&lt;/a&gt; boils down a collection into exactly one item of the collection&#8217;s containing type.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b57aa49a-a379-4360-8658-8d7cb0aeb38c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; T Reduce&amp;lt;T&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, T, T&amp;gt; function)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; enumerator = list.GetEnumerator();&lt;br&gt; &#160;&#160;&#160;&#160;enumerator.MoveNext();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; last = enumerator.Current;&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt; (enumerator.MoveNext())&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;last = function(enumerator.Current, last);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; last;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee353894%28VS.100%29.aspx"&gt;Fold&lt;/a&gt; is much like reduce except that it boils the collection down into an instance of any type.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:b5245d74-9afc-4355-ad80-ec0f1e7b24b2" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; U Fold&amp;lt;T, U&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, U, U&amp;gt; function, U initial)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; enumerator = list.GetEnumerator();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; last = initial;&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt; (enumerator.MoveNext())&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;last = function(enumerator.Current, last);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; last;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370378%28VS.100%29.aspx"&gt;Map&lt;/a&gt; takes one collection and returns another of the same length by applying a function to each element.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:6713886b-7118-4043-8a97-617e603885a5" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;U&amp;gt; Map&amp;lt;T, U&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, U&amp;gt; mapFunction)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;U&amp;gt; newList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;U&amp;gt;();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; element &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; list)&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;newList.Add(mapFunction(element));&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; newList;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;While these four are a good subset to begin with, &lt;a href="http://msdn.microsoft.com/en-us/library/ee353635%28VS.100%29.aspx"&gt;F# provides a much broader range of IEnumerable functionality&lt;/a&gt;.&amp;#160; Also, while examples here build new lists, their F# counterparts often evaluate lazily and so are usable with very large, parallelized or even infinite sequences.&amp;#160; &lt;/p&gt;  &lt;p&gt;For a more detailed view with some F# and Linq code check out &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2008/06/16/functional-c-learn-from-f-and-linq.aspx"&gt;Matthew Podwysocki&#8217;s post on learning Functional C# from F# and LINQ&lt;/a&gt;.&amp;#160; His example are actually lazy when appropriate and have precondition checks.&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/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;subject=Get+Started+with+F%23+via+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+via+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;title=Get+Started+with+F%23+via+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+via+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+via+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-via-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20203" width="1" height="1"&gt;</description>
      <guid>932</guid>
    </item>
    <item>
      <title>Get Started with F# with Higher order IEnumerable&lt;T&gt; extension methods in C#</title>
      <link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx</link>
      <description>&lt;p&gt;The more I use F# the more I want to write my every day production C# code in a functional way.&amp;#160; To this end, I&#8217;ve written a few higher order extension methods as the need arose.&amp;#160; I wanted to take a moment and share them with you.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370294%28VS.100%29.aspx"&gt;Filter&lt;/a&gt; provides a new collection with unwanted items removed.&amp;#160; &lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fda0f143-014b-482e-9712-1d89c0238d93" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; Filter&amp;lt;T&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Predicate&lt;/span&gt;&amp;lt;T&amp;gt; predicate)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt; newList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;T&amp;gt;();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; list)&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (predicate(item))&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;newList.Add(item);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; newList;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370239%28VS.100%29.aspx"&gt;Reduce&lt;/a&gt; boils down a collection into exactly one item of the collection&#8217;s containing type.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9a1603b1-8b53-4805-aebf-68c7f2aafc60" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; T Reduce&amp;lt;T&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, T, T&amp;gt; function)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; enumerator = list.GetEnumerator();&lt;br&gt; &#160;&#160;&#160;&#160;enumerator.MoveNext();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; last = enumerator.Current;&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt; (enumerator.MoveNext())&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;last = function(enumerator.Current, last);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; last;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee353894%28VS.100%29.aspx"&gt;Fold&lt;/a&gt; is much like reduce except that it boils the collection down into an instance of any type.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f2749291-d38f-43c4-8a5f-4397ca3b523d" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; U Fold&amp;lt;T, U&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, U, U&amp;gt; function, U initial)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; enumerator = list.GetEnumerator();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; last = initial;&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;while&lt;/span&gt;(enumerator.MoveNext())&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;last = function(enumerator.Current, last);&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; last;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee370378%28VS.100%29.aspx"&gt;Map&lt;/a&gt; takes one collection and returns another of the same length by applying a function to each element.&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:85ba5c57-9860-478f-bd5b-8f1f0a8ca546" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;white-space:nowrap;"&gt;&lt;span style="color:#0000ff;"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;U&amp;gt; Map&amp;lt;T, U&amp;gt;(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;T&amp;gt; list, &lt;span style="color:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, U&amp;gt; mapFunction)&lt;br&gt; {&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;U&amp;gt; newList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;U&amp;gt;();&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; element &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; list)&lt;br&gt; &#160;&#160;&#160;&#160;{&lt;br&gt; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;newList.Add(mapFunction(element));&lt;br&gt; &#160;&#160;&#160;&#160;}&lt;br&gt; &#160;&#160;&#160;&#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; newList;&lt;br&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;While these four are a good subset to begin with, &lt;a href="http://msdn.microsoft.com/en-us/library/ee353635%28VS.100%29.aspx"&gt;F# provides a much broader range of IEnumerable functionality&lt;/a&gt;.&amp;#160; Also, while examples here build new lists, their F# counterparts often evaluate lazily and so are usable with very large, parallelized or even infinite sequences.&amp;#160; &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/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;subject=Get+Started+with+F%23+with+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+with+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;title=Get+Started+with+F%23+with+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+with+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.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/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx&amp;amp;;title=Get+Started+with+F%23+with+Higher+order+IEnumerable%26lt%3bT%26gt%3b+extension+methods+in+C%23&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/12/get-started-with-f-with-higher-order-ienumerable-t-extension-methods-in-c.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20202" width="1" height="1"&gt;</description>
      <guid>931</guid>
    </item>
    <item>
      <title>Amazon KDK Beta Program is Open for Applications</title>
      <link>http://www.loufranco.com/blog/files/amazon-kdk-beta.html#unique-entry-id-90</link>
      <description>&lt;span style="font-size:15px; "&gt;Amazon has opened their &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://amazon.com/kdk" rel="self"&gt;KDK Beta program&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;. Amazon also published a &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="https://kindlepublishing.amazon.com/gp/vendor/kindlepubs/kdk/get-content?id=200436000" rel="self"&gt;KDK FAQ&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;. As suspected, it&amp;rsquo;s Java ME based with a custom API for the Kindle:&lt;/span&gt;&lt;blockquote&gt;&lt;p&gt;[It will] provide UI components, JSON and XML parsers, HTTP and HTTPS networking, secure storage, and other features. Other APIs like audio and dictionary access will be available in a future release of the KDK.&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-size:15px; "&gt;Development will be possible in an Java environment, but it appears that Eclipse will be supported more directly.&lt;/span&gt;</description>
      <guid>930</guid>
    </item>
    <item>
      <title>F# Discoveries This Week 02/08/2010</title>
      <link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-2010.aspx</link>
      <description>&lt;p&gt;Back again with another F# community roundup.&amp;#160;&amp;#160; There&#8217;s been a ton of great content this week, almost too much.&amp;#160; To try to combat this I&#8217;ve attempted to sort posts roughly in terms of how interesting I found them.&amp;#160; All were worth the read though.&lt;/p&gt;  &lt;p&gt;Also, I&#8217;ll be speaking this Wednesday on F# at the &lt;a href="http://www.bostondotnet.org/"&gt;Boston .NET User Group&lt;/a&gt;.&amp;#160; If you find yourself there, be sure to say hello!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://channel9.msdn.com/shows/Going%20Deep/C9-Lectures-Dr-Don-Syme-Introduction-to-F-1-of-3/"&gt;Don Syme&#8217;s Introduction to F# (Video 1 of 3)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Dr. Don Syme is a principal researcher in MSR Cambridge. He has a rich history in programming language research, design, and implementation (C# generics being one of his most recognized implementations), and is the principle creator of F#.&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/ashleyf/archive/2010/01/30/language-vs-library.aspx"&gt;Ashley Feniello&#8217;s FScheme Part 8: Language vs. Library&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Perhaps this post should have gone along with the one about macros and how Lisp is a &#8220;programmable programming language.&#8221; The common tension in any language or runtime design is how much to build in as primitives and how much to implement as libraries within the language or atop the runtime.&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/lukeh/archive/2010/02/01/f-for-parallel-and-asynchronous-programming-pdc-2009.aspx"&gt;Luke Hoban&#8217;s F# for Parallel and Asynchronous Programming&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last November at PDC 2009 in Los Angeles I gave a talk on F# for Parallel and Asynchronous Programming.&amp;#160; The talk begins by covering basic F# concepts, and then focuses on four challenging issues related to concurrency and the tools F# brings for addressing these - immutability, async workflows, and agents.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://brehaut.net/blog/2010/on_iteration"&gt;Andrew Brehaut&#8217;s On Iteration (Could just as well be entitled &#8220;Why Programmers Leave Python/C#/Java&amp;quot;)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;There is an observable trend in Python programmers that results in a reasonable section of them moving to functional programming languages. This trend is encouraged by the Python language, and has a couple of temporal considerations.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/02/05/using-and-abusing-the-f-dynamic-lookup-operator.aspx"&gt;Matthew Podwysocki&#8217;s Using and Abusing the F# Dynamic Lookup Operator&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Much like C# 4.0 has the ability to do dynamic lookup, F# also has the same capability, although in a different capacity.&amp;#160; The language has support for a dynamic lookup get operator ( ? ) and set operator ( ?&amp;lt;- ), but note that I said support and not actual implementation.&amp;#160; The actual implementation is up to you and how you want to use 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://weblogs.asp.net/podwysocki/archive/2010/02/01/a-kick-in-the-monads-writer-edition.aspx"&gt;Matthew Podwysocki&#8217;s A Kick in the Monads &#8211; Writer Edition&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In the past couple of Monads posts, we&#8217;ve talked briefly about the State and Reader Monads and their potential uses and misuses.&amp;#160; Before this series completes, I have a few more to cover including the Writer, Continuation and eventually Observable monad.&amp;#160; Today, we&#8217;ll get started looking at the Writer Monad and what it can do for us.&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/ashleyf/archive/2010/02/06/recursion-is-the-new-iteration.aspx"&gt;Ashley Feniello&#8217;s Recursion Is the New Iteration&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Not all recursive expressions represent recursive behavior. In fact, iteration can be expressed recursively. One trick when considering the process that an expression represents is to think of functions as reducing to values rather than returning them. In a pure functional style (precisely because of referential transparency) you can do analysis by successive substitution.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/real-time-double-ended-queue"&gt;Real-time double-ended queue&lt;/a&gt;, a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/skew-binary-random-access-list"&gt;Skew binary random access list&lt;/a&gt; and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/02/05/binary-random-access-list"&gt;Binary random access list&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki&#8217;s &#8220;Purely functional data structures&#8221;.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/02/john-conways-game-of-life-in-32-lines.html"&gt;Flying Frog Consultancy Presents - John Conway&#8217;s Game of Life in 32 lines of F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;John Conway's Game of Life is a famous example of a simple cellular automaton that produces remarkably diverse results. The game can be implemented in only 32 lines of F# including real-time visualization using Windows Presentation Foundation as follows:&lt;/em&gt;&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!1778.entry"&gt;Brian McNamara&#8217;s An RSS Dashboard in F# (Part 3)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last time I covered IObservables and we created a useful ObservableSource class.&amp;#160; Today I&#8217;ll cover the next technology piece of the app: reading RSS feeds.&amp;#160; I&#8217;ll discuss the design considerations regarding how to poll feed for updates and publish feed items as IObservables, and walk through one implementation.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://nickgravelyn.com/2010/02/pong-in-fsharp-with-xna-game-studio/"&gt;Nick Gravelyn&#8217;s Pong in F# with XNA Game Studio&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;A few of my colleagues were discussing F# today and when/where/how it is/isn&#8217;t better than C#. I haven&#8217;t ever really used F# beyond a very, very brief look at the syntax, so tonight I decided to see what it was all about. As a little project, I decided to make Pong with XNA Game Studio using F# with Visual Studio 2010.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://cultivatingcode.com/2010/02/03/maybe-f-isnt-for-you/"&gt;Jim Burger&#8217;s Maybe F# isn&#8217;t for you&#8230;&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;If you aren&#8217;t excited about new ways to tackle the concurrency problem, or new approaches to handling generic and mathematical problems, and if the thought of breaking out the shiny new lexer and parser don&#8217;t give you a tingle, then maybe F# isn&#8217;t actually marketed at you at all.&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.codeproject.com/KB/net-languages/COBOL-FSharp1.aspx"&gt;Alex Turner&#8217;s Calling F# from COBOL and Back Again (CodeProject)&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Running languages on .NET is ultra-powerful. Using managed COBOL (from Micro Focus), it is possible to use F# code to work with COBOL code. Imagine a Cloud based F# map reduce system consuming legacy COBOL - yes, that really is on the horizon.&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/02/08/new-syntactic-sugar-for-fake-f-make-getting-rid-of-magic-strings/"&gt;Steffen Forkmann&#8217;s New syntactic sugar for &#8220;FAKE &#8211; F# Make&#8221;&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The new version 0.27 of &#8220;FAKE &#8211; F# Make&#8221; comes with new syntactic sugar for build targets and build dependencies. Don&#8217;t be afraid the old version is still supported &#8211; all scripts should still work with the new version.&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/jaredpar/archive/2010/02/03/having-fun-with-events-in-f.aspx"&gt;Jared Parsons&#8217;s Having fun with events in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;h6&gt;&lt;/h6&gt;    &lt;p&gt;&lt;em&gt;Recently I ran into a situation where I needed to handle some events in F# in a special way.&amp;#160; In this particular case I wanted to be able to disable and re-enable my handler based on changes in the program.&amp;#160; Essentially the C# equivalent of continually adding and removing the handlers.&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://stevegilham.blogspot.com/2010/01/glade-from-f.html"&gt;Steve Gilham&#8217;s &#8220;Hello Glade#&#8221; from F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Another bit of spiking, a rather tardy follow up from raw GTK#, starting from the C# example at the Mono Project site, but incorporating the earlier example, so as to build in a clean application exit, for one thing.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://langexplr.blogspot.com/2010/02/using-webcam-with-wia-and-f.html"&gt;Luis Diego Fallas&#8217;s Using a Webcam with WIA and F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;In this post I'm going to show a small example of taking a picture using a Webcam with Windows Image Adquisition 1.0 . This API seems to have changed in Vista and above, the following code only applies to XP.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsharpnews.blogspot.com/2010/02/tic-tac-toe-demo.html"&gt;Flying Frog Consultancy&#8217;s WPF Tic-tac-toe demo&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The article walks through the design and implementation of a multithreaded program that uses logic programming to create an unbeatable computer opponent and Windows Presentation Foundation to provide a graphical user interface in only 115 lines of elegant F# code!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://developers.slashdot.org/story/10/02/07/0059233/An-Interview-With-F-Creator-Don-Syme"&gt;A (Relatively Reasonable) Discussion of F# on Slashdot&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;OCatenac passes along an interview with Don Syme, chief designer of F#, which is Microsoft Research's offering for functional programming on the .Net platform. Like Scala, which we discussed last fall, F# aims at being an optimal blend of functional and object-oriented languages.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-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/02/08/f-discoveries-this-week-02-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+02%2f08%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/02/08/f-discoveries-this-week-02-08-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20161" width="1" height="1"&gt;</description>
      <guid>929</guid>
    </item>
    <item>
      <title>What the iPad needs to be your only computer</title>
      <link>http://www.loufranco.com/blog/files/what-ipad-needs.html#unique-entry-id-89</link>
      <description>&lt;span style="font-size:15px; "&gt;There&amp;rsquo;s been a lot of talk about how the iPad will be used by people that aren&amp;rsquo;t experts in computers. This article makes a good case that &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://northtemple.com/2010/02/01/on-ipads-grandmas-and-gam" rel="self"&gt;Grandmas and Technophobes will love the iPa&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://northtemple.com/2010/02/01/on-ipads-grandmas-and-gam" rel="self"&gt;d&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;:&lt;/span&gt;&lt;blockquote&gt;&lt;p&gt;The darndest thing happened in the last five days and I was fortunate to be privy to it. Apple has gotten people excited about computing. But this time, it&amp;rsquo;s not nerds or geeks and certainly not IT industry analysts. It&amp;rsquo;s everyone else. I had a curious set of three conversations this week. One with a grandma, one with a technophobe and the third with a self-proclaimed luddite.&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-size:14px; "&gt;And th&lt;/span&gt;&lt;span style="font-size:15px; "&gt;is article explains the &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://stevenf.tumblr.com/post/359224392/i-need-to-talk-to-you-about-computers-ive-been" rel="self"&gt;difference in computing habits between the Gen Xers that came of age during the &lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://stevenf.tumblr.com/post/359224392/i-need-to-talk-to-you-about-computers-ive-been" rel="self"&gt;PC revolution and the generation before and after us&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;.&lt;/span&gt;&lt;blockquote&gt;&lt;p&gt;The reason I&amp;rsquo;m starting to think the Old World is ultimately doomed is because we are bracketed on both sides by the New World, and those people being born today, post-iPhone and post-iPad, will never know (and probably not care) about how things used to work. Just as nobody today cares about floppies, and nobody has to care about manual transmissions if they don&amp;rsquo;t want to.&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-size:15px; "&gt;Both of these articles make a great case, and although, I need a regular computer to do development, I would like everything else to migrate to an iPad.&lt;br /&gt;&lt;br /&gt;I started to use Macs again after ten years when I got a digital camera. I read the instructions for the Windows software it came with and then just plugged it into a Mac I inherited -- it just worked. Since then, I&amp;rsquo;ve  used a Mac for everything except my job (.NET SDK development).&lt;br /&gt;&lt;br /&gt;Which brings me to my first problem with the iPad -- how do I connect my digital camera? Steve Jobs talked about how great the iPad would be for photos, but how do they get on the iPad to begin with? Undoubtedly, this will be solved, but it&amp;rsquo;s a problem that will make the iPad useless for a lot of people if this is their only computer.&lt;br /&gt;&lt;br /&gt;Secondly, I don&amp;rsquo;t take a lot of pictures and almost no video and I have about 10-15 GB of photos (and 20-25 GB of music). 64 GB is just completely inadequate if this is going to be the only place to store them. For the iPhone, synching gives me downsampled photos and music if I want to save space, but I can&amp;rsquo;t do that to my primary copy. I&amp;rsquo;m sure iPads will get to bigger sizes, but I&amp;rsquo;m also sure that we&amp;rsquo;ll need more too.&lt;br /&gt;&lt;br /&gt;Even if the iPad had a terabyte, I really need some off device storage  -- iPads can be lost, which would be bad, but not as bad as losing all of my data. It&amp;rsquo;s unclear how the iPad can be backed up if it&amp;rsquo;s your only computer.&lt;br /&gt;&lt;br /&gt;I know that these problems will be solved eventually, but right now -- it&amp;rsquo;s not really possible for the iPad to work without a host computer -- if it&amp;rsquo;s like the iPhone, it depends on synching too much.&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;m not sure what the solution will be, but I have a Time Capsule -- if the iPad had Time Machine, and if the Time Capsule could suck the images off my digital camera (perhaps using the iPad as the UI), then I&amp;rsquo;d be most of the way there.&lt;/span&gt;</description>
      <guid>928</guid>
    </item>
    <item>
      <title>Array.prototype.toString</title>
      <link>http://invisibleblocks.wordpress.com/2010/02/02/array-prototype-tostring/</link>
      <description>&lt;p&gt;This is one of my favorite javascript tricks, because of its effort-to-payoff ratio.&lt;/p&gt;
&lt;p&gt;Problem: the default Array.prototype.toString hides any nested structure.&lt;/p&gt;
&lt;pre class="brush: jscript;"&gt;
[1, 2, 3, 4, 5].toString(); //-&amp;gt; &amp;quot;1, 2, 3, 4, 5&amp;quot;
[1, 2, [3, 4], 5].toString(); //-&amp;gt; &amp;quot;1, 2, 3, 4, 5&amp;quot;
&lt;/pre&gt;
&lt;p&gt;Solution: override Array.prototype.toString.&lt;/p&gt;
&lt;pre class="brush: jscript;"&gt;
Array.prototype.toString = function() {
    return '[' + this.join(', ') + ']';
};

[1, 2, 3, 4, 5].toString(); //-&amp;gt; &amp;quot;[1, 2, 3, 4, 5]&amp;quot;
[1, 2, [3, 4], 5].toString(); //-&amp;gt; &amp;quot;[1, 2, [3, 4], 5]&amp;quot;
&lt;/pre&gt;
&lt;br /&gt;  &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/invisibleblocks.wordpress.com/366/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/invisibleblocks.wordpress.com/366/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/invisibleblocks.wordpress.com/366/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/invisibleblocks.wordpress.com/366/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/invisibleblocks.wordpress.com/366/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/invisibleblocks.wordpress.com/366/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/invisibleblocks.wordpress.com/366/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/invisibleblocks.wordpress.com/366/" /&gt;&lt;/a&gt; &lt;a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/invisibleblocks.wordpress.com/366/"&gt;&lt;img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/invisibleblocks.wordpress.com/366/" /&gt;&lt;/a&gt; &lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=invisibleblocks.wordpress.com&amp;blog=290283&amp;post=366&amp;subd=invisibleblocks&amp;ref=&amp;feed=1" /&gt;</description>
      <guid>927</guid>
    </item>
    <item>
      <title>How the iPad will affect the Kindle</title>
      <link>http://www.loufranco.com/blog/files/ipad-effect-kindle.html#unique-entry-id-88</link>
      <description>&lt;span style="font-size:15px; "&gt;Amazon has no hope of competing with Apple to be the best general computing tablet platform, so trying to match the iPad feature for feature will drive up their cost and still leave them with an inferior product. The two other stable competitive positions are either to &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Porter_generic_strategies" rel="self"&gt;go cheap or to go niche&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;.&lt;/span&gt;&lt;blockquote&gt;&lt;p&gt;In his 1980 classic Competitive Strategy: Techniques for Analysing Industries and Competitors, Porter simplifies the scheme by reducing it down to the three best strategies. They are cost leadership, differentiation, and market segmentation (or focus). Market segmentation is narrow in scope while both cost leadership and differentiation are relatively broad in market scope.&lt;/p&gt;&lt;/blockquote&gt;&lt;span style="font-size:15px; "&gt;This will be hard for Amazon because, before the iPad, they were clearly the differentiated premium market-leader, but now that market has been subsumed. The only hope for Kindle is to become the cost-leader and to let third-party developers turn the Kindle into cheap niche devices.&lt;br /&gt;&lt;br /&gt;Once the KDK is available, we&amp;rsquo;ll see the top end come down to about $400. Amazon can do this because they&amp;rsquo;re set to make money from their free 3G, in the form of subscription applications. I&amp;rsquo;m sure a significant component of the $489 price is to offset the expected 3G use that isn&amp;rsquo;t offset by book sales. &lt;br /&gt;&lt;br /&gt;This strategy is more in line with Amazon&amp;rsquo;s online retail strategy. They currently compete on price and let third-party stores focus on niche markets. Even though Porter cautions against trying to have two strategies, it can be overcome if different business units focus on each strategy independently -- what could be more independent than a third-party.&lt;/span&gt;</description>
      <guid>926</guid>
    </item>
    <item>
      <title>F# Discoveries This Week 01/29/2010</title>
      <link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx</link>
      <description>&lt;p&gt;Many apologies if I missed your post.&amp;#160; Having skipped last week due to some uncontrollable circumstances left me with quite a large number to sort through.&amp;#160; My personal favorite this week is Ashley Feniello&#8217;s series.&amp;#160; SICP eat your heart out.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.simple-talk.com/opinion/geek-of-the-week/don-syme-geek-of-the-week/"&gt;Richard Morris&#8217;s Geek of The Week is Don Syme&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;It came as a surprise to many of us when Microsoft pulled from it's hat a rabbit in the form of an exciting, radical, language that offers an effective alternative to the Object-oriented orthodoxy. The creative force behind this language, F#, turns out to be a brilliant Cambridge-based Australian called Don Syme, already well known for his work on generics in .NET.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Ashley Feniello&#8217;s extremely cool eight part (so far) series FScheme:&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;One of my New Year&#8217;s goals is to re-read Lisp in Small Pieces and implement all 11 interpreters and 2 compilers. As much as I like the &amp;quot;Lisp in Lisp&amp;quot; idea and enjoyed the eureka moment in SICP when Sussman writes the metacircular interpreter on the board to the music from Space Odyssey, I don't want to do Lisp in Lisp itself. Lisp in F# sounds like more fun.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Part 1: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-0.aspx"&gt;FScheme - Scheme in F#&lt;/a&gt;    &lt;br /&gt;Part 2: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-1.aspx"&gt;Just &#8216;let&#8217; Me Be Already!&lt;/a&gt;    &lt;br /&gt;Part 3: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/15/fscheme-0-0-2-lambda.aspx"&gt;Lambda the Ultimate!&lt;/a&gt;    &lt;br /&gt;Part 4: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/16/fscheme-0-0-3-letrec.aspx"&gt;Rinse and Recurse&lt;/a&gt;    &lt;br /&gt;Part 5: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/18/fscheme-0-0-4-let.aspx"&gt;What &#8216;letrec&#8217; Can&#8217;t Do&lt;/a&gt;    &lt;br /&gt;Part 6: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/18/fscheme-0-0-5-cons-car-cdr-list-quote.aspx"&gt;What's Lisp Without Lists?!&lt;/a&gt;    &lt;br /&gt;Part 7: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/21/fscheme-0-0-6-macro-quote-unquote-eval.aspx"&gt;No Wait, Macro the Ultimate!&lt;/a&gt;    &lt;br /&gt;Part 8: &lt;a href="http://blogs.msdn.com/ashleyf/archive/2010/01/22/fscheme-0-0-7-set-define-begin.aspx"&gt;Oh, The Humanity!&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Matthew Podwysocki&#8217;s Series - Creating Extended Builders &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/18/much-ado-about-monads-creating-extended-builders.aspx"&gt;Part 1&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/21/much-ado-about-monads-creating-extended-builders-part-ii.aspx"&gt;Part 2&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/podwysocki/archive/2010/01/25/a-kick-in-the-monads-creating-extended-builders-part-iii.aspx"&gt;Part 3&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;&#8220;But, what we lack is an imperative programming model on top to allow for such things as if statements, for and while loops, and try/catch or try/finally blocks.&amp;#160; Luckily, there is a programmatic model to follow to make these things possible inside of our expressions.&amp;#160; Let&#8217;s cover each of these functions in turn and see what each one does and in the process implement them for the Reader Monad.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/chrsmith/archive/2010/01/24/being-an-evil-genius-with-f-and-net.aspx"&gt;Chris Smith&#8217;s Being an Evil Genius with F# and .NET&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;&#8220;Rather than doing the prototypical &#8220;Intro to F# Talk&#8221; I figured I go with something a bit more fun and relevant to the every day developer. Sure F# is neat and everything &#8211; but why bother to learn a new programming language unless you can use it to do something meaningful. Well, in addition excelling at both functional and object-oriented programming, F# is ideal for world domination.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://tomasp.net/blog/accelerator-quotations.aspx"&gt;Tomas Petricek&#8217;s Accelerator and F# (IV.): Composing computations with quotations&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;In this part of the series, we're going to look at working with quotations explicitly. We'll use meta-programming techniques to work with Accelerator. Meta-programming means writing programs that manipulate with other programs or pieces of code.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blogs.msdn.com/visualizeparallel/archive/2010/01/19/tuning-a-parallel-ray-tracer-in-f.aspx"&gt;Luke Hoban&#8217;s Tuning a Parallel Ray Tracer in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;&#8220;One of the samples that is included with the Parallel Programming Samples for .NET 4 is a simple Ray Tracer.&amp;#160; This ray tracer provides a nice visual way of seeing the benefits of .NET 4 parallelism features, as well as giving insights into the way work stealing happens under the hood.&#8221; &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Julien Ortin continues his series on Purely Functional Data Structures with a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/scheduled-binomial-heap"&gt;Scheduled binomial heap&lt;/a&gt;, &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/scheduled-bottom-up-merge-sort"&gt;Scheduled bottom-up merge sort&lt;/a&gt; and a &lt;a href="http://lepensemoi.free.fr/index.php/2010/01/21/hood-melville-queue"&gt;Hood-Melville queue&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;This post describes the F# implementation of the &amp;lt;insert data structure here&amp;gt; from Chris Okasaki&#8217;s &#8220;Purely functional data structures&#8221;.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/01/27/rate-meter-in-f"&gt;Julien Ortin&#8217;s Rate meter in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;The following code allows us to measure (and keep track of) the exchange rate (whether upload or download), and the time needed to exchange n additional bytes (assuming the rate is stable).&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://lepensemoi.free.fr/index.php/2010/01/27/implementing-two-way-traffic-control-in-f-bucket-approach"&gt;Julien Ortin&#8217;s Two-way traffic control in F# &#8211; bucket approach&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;The following approach is based on a per-request basis. That is, an actors asks for n tokens to read (or write), and the manager sends it an answer when the actor is allowed perform the action. In effect, if the actor asks for 100 bytes and only 50 bytes can be exchanged per second, it will get a green light only after two seconds have elapsed.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Stasyan continues his Red and Black tree Series with &lt;a href="http://stasyan.wordpress.com/2010/01/06/red-and-black-tree-in-f-insertion/"&gt;Insertion&lt;/a&gt;, &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-deletion/"&gt;Deletion&lt;/a&gt;, &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-extras/"&gt;Extras&lt;/a&gt; and a &lt;a href="http://stasyan.wordpress.com/2010/01/20/red-and-black-tree-in-f-post-mortem/"&gt;Post-Mortem&lt;/a&gt;. &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;But it works nevertheless. I did some random testing of 10000 elements. Insertion and deletion worked. The cool thing is that the Black height of the tree with 10000 elements does not exceed 10.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://msmvps.com/blogs/gbarnett/archive/2010/01/17/book-review-f-for-technical-computing.aspx"&gt;Granville Barnett Review&#8217;s F# for Technical Computing&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;An F# book by Jon brings with it excitement and promise: his work is well known for being clear and concise, and the examples he uses to help the reader familiarise themselves with the application of F# are highly stimulating.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://sdtimes.com/link/34075"&gt;David Worthington&#8217;s WebSharper platform seeks to broaden F# use&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="left"&gt;&lt;em&gt;&#8220;Microsoft's F# language is best suited for financial and scientific applications, but a startup wants to broaden its usage to building mainstream Web applications.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.ademiller.com/blogs/tech/2010/01/implementing-a-parallelized-octree-in-f"&gt;Ade Miller&#8217;s Implementing a Parallelized Octree in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;What&#8217;s an octree? An octree is a tree structure where each node has up to eight children, one for each of the octants. You can think of them as a three dimensional variation on a binary tree.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/diego.echeverri/2010/1/25/Data-Visualization-with-Websharper.article"&gt;Diego Echeverri&#8217;s Data Visualization with Websharper&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;In this post I'll show you how to make a nice visualization similar to the ones used by Hans Rosling. For this, we'll use the WebSharper Google Visualization bindings available as an extension package to the core platform.&#8221;&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/matt/archive/2010/01/19/regex-lexer-with-f.aspx"&gt;Matt Manela&#8217;s Regex based Lexer with F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;This lexer allows you to define your regular expression based rules in a very declarative way using F# computation expressions.&#8221;&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/Sorted-with-F-custom-operators.aspx"&gt;Phillip Trelford&#8217;s Sorted with F# custom operators&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;F# lets you define your own operators, and like a man with a new hammer hunting for nails :) I&#8217;ve found an application of F# custom operators for sorting multiple columns.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://chrisrizzuto.wordpress.com/2010/01/21/http-requests-in-f-using-a-tcpclient/"&gt;Chris Rizzuto&#8217;s Http Requests in F# using a TCPClient&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;Obviously a few ways to do this using WebClient, HttpRequests, but in this case I decided to use a TcpClient object as I liked the control, and the ability to easily access the textual outputs.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://chrisrizzuto.wordpress.com/2010/01/22/f-wcf-service-to-calculate-stddev-and-keep-real-time-kpis/"&gt;Chris Rizzuto&#8217;s F# WCF Service to calculate StdDev and Keep Real-Time KPIs&lt;/a&gt;, &lt;a href="http://chrisrizzuto.wordpress.com/2010/01/25/f-wcf-kpis_concurrentdictionary-first-class-events/"&gt;F#, WCF, KPIs, ConcurrentDictionary, First Class Events&lt;/a&gt; and &lt;a href="http://chrisrizzuto.wordpress.com/2010/01/28/message-queues-in-f-building-into-the-kpi-service-past-3-posts/"&gt;Message Queues in F# / Building into the KPI Service&lt;/a&gt; &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;First, below is the functions and events to calculate StdDev.&amp;#160; Thanks again LukeH for doing all the work for this part.&amp;#160; I only made a small change by adding a new method for handling the event when it is raised, and to make Mean and StdDev accessible from a WCF web service so that if polled for the current values, it is able to return them to the user.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.ctaggart.com/2010/01/list-transactional-wcf-bindings-in-f.html"&gt;Cameron Taggart&#8217;s List Transactional WCF Bindings in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;The code uses LINQ to print a list of WCF binding that have a default constructor and support transactions.&amp;#160; I think it actually is a whole lot more readable in F#&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://blog.ctaggart.com/2009/12/hello-world-for-bing-maps-silverlight-f.html"&gt;Cameron Taggart&#8217;s Hello World for Bing Maps + Silverlight + F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;The Bing Maps Silverlight Control was released in November.&amp;#160; [&#8230;]&amp;#160; I&#8217;ve committed code for this blog that shows you how to get started with it using an F# Silverlight application.&amp;#160; I did not need to write any C# or XAML.&#8221;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://www.scottseely.com/Blog/10-01-13/F_is_Changing_My_Style.aspx"&gt;Scott Seely&#8217;s F# is Changing My Style&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&#8220;A few years ago, I would have done a bunch of looping constructs to look at each element. However, I&#8217;ve been doing a lot more work with F#. While doing this experiment in C# for a project, I wound up writing the following instead:&#8221;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-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/01/29/f-discoveries-this-week-01-29-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+01%2f29%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/01/29/f-discoveries-this-week-01-29-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20100" width="1" height="1"&gt;</description>
      <guid>922</guid>
    </item>
    <item>
      <title>Hoping the Amazon KDK is Java based</title>
      <link>http://www.loufranco.com/blog/files/hoping-amazon-kdk-is-java.html#unique-entry-id-87</link>
      <description>&lt;span style="font-size:15px; "&gt;The speculation on the KDK is that it&amp;rsquo;s going to be Java based, and I hope that&amp;rsquo;s right. We know for sure that it runs Linux, and that there&amp;rsquo;s a JVM and obfuscated jars on the device. According to what I&amp;rsquo;ve read, there&amp;rsquo;s no perl or python or anything like that on it, so the only options will be C/C++ or Java. For the sake of the ecosystem, Amazon will need to pick Java and probably will run third-party code in a some kind of sandboxed environment.&lt;br /&gt;&lt;br /&gt;To me the best thing about it being Java based is that I will finally have a JVM that I care about targeting. One of my big problems with Java is that there&amp;rsquo;s no place the JVM runs where something else doesn&amp;rsquo;t run better or that I just like more. For web apps, I prefer python based frameworks, and for Windows apps, you have to use .NET or Win32 with C/C++. On a Mac, Objective C is the obvious choice. Java is a good choice on a lot of mobile devices, but I haven&amp;rsquo;t cared about them, until now.&lt;br /&gt;&lt;br /&gt;And the main reason I want a JVM to target is because it gives me a practical reason to use &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://clojure.org" rel="self"&gt;clojure&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;. I know it might not work out, and of course, I&amp;rsquo;ll be writing Java at first to learn the API, but I&amp;rsquo;m hoping I can transition to clojure eventually, or at least use a hybrid. &lt;br /&gt;&lt;br /&gt;In 2008, Rich Hickey came to speak in Northampton, and I prepared by learning and &lt;/span&gt;&lt;span style="font-size:15px; "&gt;&lt;a href="http://loufranco.com/blog/files/category-20-days-of-clojure.html" rel="self"&gt;blogging about clojure for the 20 days preceding it&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:15px; "&gt;. Since then, I&amp;rsquo;ve been on a lookout for a JVM that I wanted to target. The closest I&amp;rsquo;ve come is the Google AppEngine, but I still liked python and Django style better. It may turn out that the KDK just works better with Java, but clojure has shown that it&amp;rsquo;s pretty good at driving OO frameworks like Swing, so I think it will work just fine.&lt;/span&gt;</description>
      <guid>921</guid>
    </item>
  </channel>
</rss>
