<?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 : WebSharper, ecm</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/tags/WebSharper/ecm/default.aspx</link><description>Tags: WebSharper, ecm</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# Discoveries This Week 08/08/2010</title><link>http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-2010.aspx</link><pubDate>Sun, 08 Aug 2010 18:57:45 GMT</pubDate><guid isPermaLink="false">647108ca-f046-4d8d-9feb-a7fbd2049b37:20961</guid><dc:creator>RickM</dc:creator><slash:comments>1</slash:comments><comments>http://www.atalasoft.com/cs/blogs/rickm/comments/20961.aspx</comments><wfw:commentRss>http://www.atalasoft.com/cs/blogs/rickm/commentrss.aspx?PostID=20961</wfw:commentRss><wfw:comment>http://www.atalasoft.com/cs/blogs/rickm/rsscomments.aspx?PostID=20961</wfw:comment><description>&lt;p&gt;So many links, all well worth your time.&amp;#160; I know one thing I won’t be missing is Don Syme’s online talk at C4FSharp on 8/17.&amp;#160; It’s great to be part of a language community in which the founder interacts in such a direct way.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;News&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/fsharp-component-design-guidelines.pdf"&gt;Draft F# Component Design Guidelines now Available (pdf)&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.communityforfsharp.net/august-2010-live-meeting"&gt;Don Syme will be speaking online for the Community for F# on 8/17&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.nyalt.net/calendar/14226459/?eventId=14226459"&gt;I’ll be speaking at the NYC ALT.NET User Group on 8/25&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.slideshare.net/wkhazzard/what-the-math-geeks-dont-want-you-to-know-about-fsharp-4917609"&gt;Kevin Hazzard’s Slides from DevConnections are up&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://cufp.org/conference/sessions/2010/eden-fwpf-framework-building-gui-tools"&gt;Howard Mansell will present Eden: (An F#/WPF framework for building GUI tools) at CUFP&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://langref.org/fsharp+clojure+scala+haskell"&gt;F# is now at 93% on langref, only 1% behind scala. (Great Going!)&lt;/a&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://www.pexforfun.com/"&gt;PexForFun.com now has puzzles for F#&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://fsxplat.codeplex.com/releases/view/49967"&gt;FSharp Cross Platform Packages and Samples 1.1 Released&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Audio/Video&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://skillsmatter.com/podcast/agile-testing/jon-harrop-qr-decomposition"&gt;Jon Harrop at the London F-Sharp User Group: QR Decomposition&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This lecture takes the audience from a tiny numerically-robust implementation of a common linear algebra algorithm through several stages of optimization, culminating in a high-performance solution that easily outperforms Intel’s Math Kernel Library. The algorithm studied is QR decomposition, which is commonly used for linear least squares best fit.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;F# Articles&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://www.intellifactory.com/blogs/adam.granicz/2010/8/5/Expert-F!sharp!-2.0---what%27s-new"&gt;Adam Granicz’s Expert F# 2.0 – what’s new?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;There comes a time when you just have to stop working for a minute and take a few moments to enjoy the fruits of your hard labor. For me, one of these moments lately came when I received the author copies of our book, Expert F# 2.0&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;a href="http://bloggemdano.blogspot.com/2010/08/f-templates-now-on-visual-studio.html"&gt;Daniel Mohl’s F# Templates Now On Visual Studio Gallery&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As Don Syme mentioned in a recent blog post, I've been working to get the five F# templates that have been announced on this blog up on Visual Studio Gallery.&amp;#160; I'm happy to say that all are now available.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bloggingabout.net/blogs/vagif/archive/2010/08/04/mock-framework-challenges-in-f.aspx"&gt;Vagif Abilov’s Mock framework challenges in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;So far I only tried very basic mocking described in the first post of Richard’s series: faking return value. As I expected, even such a simple operation became a challenge when executed from F# code. I managed to make tests work only for two and half frameworks.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://bugsquash.blogspot.com/2010/08/figment-web-dsl-for-f.html"&gt;Mauricio Scheffer’s Figment: a web DSL for F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As I said, this is very much work in progress, and there's still a lot to do. I intend to make it fully open source when I finish writing my thesis.&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/08/segment-tree-in-f.html"&gt;Neil Carrier’s Segment Tree in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Suffice to say that a segment tree stores a group of intervals on an ordered set, in such a way that all the intervals containing a given value can be efficiently located. Such a query is sometimes called a “stabbing query,” because it’s like sticking a spear through the data and seeing which entries get stabbed.&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/07/lazy-f-sequence-evaluation-gotchas.html"&gt;Neil Carrier’s F# Sequence Lazy Evaluation Gotchas&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Today’s post will be old news to experienced F# programmers. Actually, it’s old news to me, relative newcomer that I am. However, it’s one of those things I tend to forget until it jumps up to bite me, as it did today.&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/esanchez/archive/2010/08/06/f-the-acm-and-the-sec.aspx"&gt;Edgar Sanchez’s F#, the ACM, and the SEC&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;And it is this last recommendation on DSLs that carries interesting news for F# because at the end of page 6 it states “Experience seems to show that higher-order programming languages such as F# provide a particularly good basis for domain-specific languages.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://flyingfrogblog.blogspot.com/2010/08/pure-f-now-only-2-slower-than-ocaml.html"&gt;Jon Harrop’s Pure F# now only 2× slower than OCaml&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;This is a surprising and encouraging result not only because it makes F# competitive for an even wider variety of tasks but because it also implies that Microsoft are taking F# so seriously that they are optimizing the .NET garbage collector for it!&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.atalasoft.com/cs/blogs/stevehawley/archive/2010/08/03/protect-yourself.aspx"&gt;Steve Hawley’s Protect Yourself&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;One solution is to label things that need to be protected, disassemble the output, run a regular expression to search/replace the accessibility and reassemble. &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://cashforlifetv.com/blog/index.php/2010/08/03/f-and-net-needed-at-credit-suisse-is-there-a-future-for-this-and-microsoft-in-the-quant-world/"&gt;F# and .NET needed at Credit Suisse? Is there a future for this and Microsoft in the quant world?&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;As I said, when you compare to these other languages in the world of quant, F# appears to be taking an early lead.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a href="http://stefanoricciardi.com/2010/08/05/project-euler-problem-4-in-f/"&gt;Stefano Ricciardi’s Project Euler Problem 4 in F#&lt;/a&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The actual algorithm uses brute force to test for palindromicity (neologism?) all the numbers that can be composed multiplying together 3 digits numbers (those from 100 to 999), picking the highest one.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1 align="center"&gt;Miscellaneous&lt;/h1&gt;  &lt;h3&gt;&lt;a href="http://lambda-the-ultimate.org/node/4024"&gt;Lambda the Ultimate’s OSCON 2010 Emerging Languages Camp Roundup&lt;/a&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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;subject=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-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/08/08/f-discoveries-this-week-08-08-2010.aspx&amp;amp;;title=F%23+Discoveries+This+Week+08%2f08%2f2010&amp;amp;;top=1" target="_blank" title = "Post http://www.atalasoft.com/cs/blogs/rickm/archive/2010/08/08/f-discoveries-this-week-08-08-2010.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://www.atalasoft.com/cs/aggbug.aspx?PostID=20961" 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/ecm/default.aspx">ecm</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/lazy+evaluation/default.aspx">lazy evaluation</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/don+syme/default.aspx">don syme</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/WebSharper/default.aspx">WebSharper</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/Mock/default.aspx">Mock</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/qr+decomposition/default.aspx">qr decomposition</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/pex/default.aspx">pex</category><category domain="http://www.atalasoft.com/cs/blogs/rickm/archive/tags/puzzles/default.aspx">puzzles</category></item></channel></rss>