<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>7sharp9</title><link>https://7sharp9.github.io/</link><description>Recent content on 7sharp9</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>7sharp9@mail.com (Dave Thomas)</managingEditor><webMaster>7sharp9@mail.com (Dave Thomas)</webMaster><copyright>© 2026 Dave Thomas</copyright><lastBuildDate>Sun, 15 May 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://7sharp9.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Configuration</title><link>https://7sharp9.github.io/projects/myriad/configuration/</link><pubDate>Wed, 06 Nov 2019 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/projects/myriad/configuration/</guid><description>&lt;p&gt;&lt;em&gt;How &lt;code&gt;myriad.toml&lt;/code&gt; works, and how plugins read it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Myriad&amp;rsquo;s configuration model is smaller than it looks from the outside: one TOML file, and two ways to tell a plugin which section of it to read.&lt;/p&gt;

&lt;h3 class="relative group"&gt;The &lt;code&gt;myriad.toml&lt;/code&gt; file
 &lt;div id="the-myriadtoml-file" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-myriadtoml-file" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Myriad looks for &lt;code&gt;myriad.toml&lt;/code&gt; in the current directory by default. Each built-in plugin reads its settings from a named table in that file. For the &lt;code&gt;fields&lt;/code&gt; plugin:&lt;/p&gt;</description></item><item><title>How It Works</title><link>https://7sharp9.github.io/projects/myriad/how-it-works/</link><pubDate>Wed, 06 Nov 2019 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/projects/myriad/how-it-works/</guid><description>&lt;p&gt;&lt;em&gt;The pipeline from annotated source to generated F#.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Myriad is a small standalone CLI (&lt;code&gt;Myriad.dll&lt;/code&gt;), driven either directly or via the MSBuild SDK, which shells out to that same CLI as a pre-build step. The pipeline is the same either way.&lt;/p&gt;</description></item><item><title>Myriad Configuration Changes</title><link>https://7sharp9.github.io/programming/2022-05-15-myriad-configuration-changes/</link><pubDate>Sun, 15 May 2022 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2022-05-15-myriad-configuration-changes/</guid><description>&lt;p&gt;The other day I released version &lt;a href="https://www.nuget.org/packages/myriad" target="_blank" rel="noreferrer"&gt;0.8.1&lt;/a&gt; of &lt;a href="https://github.com/MoiraeSoftware/myriad" target="_blank" rel="noreferrer"&gt;Myriad&lt;/a&gt;, its got some new configuration settings so I thought I would quickly talk about them here.&lt;/p&gt;</description></item><item><title>About</title><link>https://7sharp9.github.io/about/</link><pubDate>Thu, 15 Oct 2020 13:01:43 +0100</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/about/</guid><description>&lt;img src="https://7sharp9.github.io/img/working.jpg" alt="Dave Thomas" style="float:left; max-width:42%; border-radius:0.5rem; margin:0 1.5rem 1rem 0;"&gt;
&lt;p&gt;Hi, I&amp;rsquo;m Dave Thomas, a software engineer from the UK, writing primarily in F# with a fondness for Rust and C++. I&amp;rsquo;m drawn to functional languages and the kinds of problems that sit at the intersection of language design, tooling, and performance.&lt;/p&gt;</description></item><item><title>Run for Your Life</title><link>https://7sharp9.github.io/running/2020-08-04-run-for-your-life/</link><pubDate>Thu, 13 Aug 2020 15:23:14 +0100</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/running/2020-08-04-run-for-your-life/</guid><description>&lt;p&gt;Running is not something Ive ever posted about before but it&amp;rsquo;s been a part of my life for a long time.&lt;/p&gt;</description></item><item><title>One year on YouTube</title><link>https://7sharp9.github.io/programming/2019-12-03-one-year-on-youtube/</link><pubDate>Tue, 03 Dec 2019 12:48:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2019-12-03-one-year-on-youtube/</guid><description>&lt;p&gt;So Ive had my YouTube channel for a year now, how did it go?&lt;/p&gt;</description></item><item><title>Myriad Intro</title><link>https://7sharp9.github.io/programming/2019-11-06-myriad-intro/</link><pubDate>Wed, 06 Nov 2019 17:08:32 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2019-11-06-myriad-intro/</guid><description>&lt;p&gt;I released a new meta programming club &lt;a href="https://youtu.be/Yef8EJJfd9Q" target="_blank" rel="noreferrer"&gt;video&lt;/a&gt; yesterday on my YouTube &lt;a href="https://www.youtube.com/channel/UC0kXc1f_WBYSklrElcPWzgg" target="_blank" rel="noreferrer"&gt;channel&lt;/a&gt;&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/Yef8EJJfd9Q" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;I thought I would write a little about it here on my blog too.&lt;/p&gt;
&lt;p&gt;I recently did a little work to flesh out the plugin interface for Myriad. My friend &lt;a href="https://twitter.com/enricosada" target="_blank" rel="noreferrer"&gt;Enrico Sada&lt;/a&gt; helped out with
some of the fiddly MsBuild work in dotnet which can be a little confusing at times.&lt;/p&gt;</description></item><item><title>Final Month On Patreon</title><link>https://7sharp9.github.io/programming/2019-10-21-final-month-on-patreon/</link><pubDate>Mon, 21 Oct 2019 11:08:47 +0100</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2019-10-21-final-month-on-patreon/</guid><description>&lt;p&gt;Ive decided that this month is last month I&amp;rsquo;ll be on Patreon.&lt;/p&gt;</description></item><item><title>Applied Meta-Programming with Myriad</title><link>https://7sharp9.github.io/programming/2019-04-24-applied-metaprogramming-with-myriad/</link><pubDate>Wed, 24 Apr 2019 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2019-04-24-applied-metaprogramming-with-myriad/</guid><description>&lt;p&gt;This article is all about F# metaprogramming and research that I did which evolved over time, firstly with a project called Falanx that I developed while working for Jet/Walmart, then later the ideas and concepts evolved into Myriad.&lt;/p&gt;</description></item><item><title>Building a single page application with Elm</title><link>https://7sharp9.github.io/programming/2017-12-09-elmbook/</link><pubDate>Sat, 09 Dec 2017 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2017-12-09-elmbook/</guid><description>&lt;p&gt;Hi, its been a very long while since I last blogged, I promised this ages ago, its a partial sample chapter for a book I was planning on Elm but the publisher started to muck me about so it never happened.&lt;/p&gt;</description></item><item><title>I want to tell you a storyboard</title><link>https://7sharp9.github.io/programming/2017-04-11-i-want-to-tell-you-a-storyboard/</link><pubDate>Tue, 11 Apr 2017 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2017-04-11-i-want-to-tell-you-a-storyboard/</guid><description>&lt;p&gt;So as promised here&amp;rsquo;s a post with more detail on the iOS designer provider that I presented as part of my talk at &lt;a href="https://skillsmatter.com/conferences/8053-f-sharp-exchange-2017" target="_blank" rel="noreferrer"&gt;fsharpX 2017&lt;/a&gt; The talk is entitled &lt;a href="https://skillsmatter.com/skillscasts/10042-lightning-talk-session-expanding-the-horizons-of-mobile-development" target="_blank" rel="noreferrer"&gt;Expanding the Horizons of Mobile Development&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Elmtastic Updates</title><link>https://7sharp9.github.io/programming/2016-06-30-elmtastic-updates/</link><pubDate>Thu, 30 Jun 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-06-30-elmtastic-updates/</guid><description>&lt;p&gt;With the release of Elm 0.17 there were some fundamental changes to the Elm language. This post
is my attempt to help those that may be struggling with these changes&lt;/p&gt;</description></item><item><title>Creating fuse applications with fable</title><link>https://7sharp9.github.io/programming/2016-07-06-fable-fuse-template/</link><pubDate>Tue, 07 Jun 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-07-06-fable-fuse-template/</guid><description>&lt;p&gt;So as promised here&amp;rsquo;s a guide to creating your first &lt;strong&gt;fable |&amp;gt; fuse&lt;/strong&gt; application&lt;/p&gt;</description></item><item><title>Light The Fuse</title><link>https://7sharp9.github.io/programming/2016-06-03-light-the-fuse/</link><pubDate>Fri, 03 Jun 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-06-03-light-the-fuse/</guid><description>&lt;p&gt;In this post Im going to be introducing something new and exciting the combination of F#, Fable and Fuse.&lt;/p&gt;</description></item><item><title>New Adventures</title><link>https://7sharp9.github.io/programming/2016-05-31-new-adventures/</link><pubDate>Tue, 31 May 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-05-31-new-adventures/</guid><description>&lt;p&gt;So today was my last day at Xamarin.&lt;/p&gt;</description></item><item><title>flame on</title><link>https://7sharp9.github.io/programming/2016-05-29-flame-on/</link><pubDate>Sun, 29 May 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-05-29-flame-on/</guid><description>&lt;p&gt;A few weeks back I posted on Twitter that I was experimenting with flame graphs, In this post I will share how this was accomplished.&lt;/p&gt;</description></item><item><title>Building Emulators in FSharp</title><link>https://7sharp9.github.io/programming/2016-03-06-building-emulators-in-fsharp/</link><pubDate>Sun, 06 Mar 2016 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2016-03-06-building-emulators-in-fsharp/</guid><description>&lt;p&gt;I wanted to briefly talk about what I&amp;rsquo;ve been up to lately. I&amp;rsquo;ve been doing a spot of compiler hacking, working on improving Type Providers and generally tinkering with concepts relating to macros etc. I&amp;rsquo;ve also been tinkering with the Elixir and Rust which I quite like too.&lt;/p&gt;</description></item><item><title>F# Community Hero</title><link>https://7sharp9.github.io/programming/2015-10-25-f-community-hero/</link><pubDate>Sun, 25 Oct 2015 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2015-10-25-f-community-hero/</guid><description>&lt;p&gt;Ive been meaning to write this post for ages but Ive only just found the time.&lt;/p&gt;
&lt;p&gt;On the 3rd of September my good friend Ryan Riley (aka &lt;a href="https://twitter.com/panesofglass" target="_blank" rel="noreferrer"&gt;@panesofglass&lt;/a&gt;) emailed me letting me know I had won a Community for F# hero award for 2015!&lt;/p&gt;</description></item><item><title>Reckoning day</title><link>https://7sharp9.github.io/programming/2015-07-16-reckoning-day/</link><pubDate>Thu, 16 Jul 2015 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2015-07-16-reckoning-day/</guid><description>&lt;p&gt;I&amp;rsquo;ve finally been awarded a &lt;a href="https://mvp.microsoft.com/en-us/default.aspx" target="_blank" rel="noreferrer"&gt;Microsoft MVP&lt;/a&gt; its been quite a long time coming. Ive been nominated for MVP every year since July 2011 but until now I have been unsuccessful. On the 1st of July I received an email congratulating me that I had been successful on my MVP nomination.&lt;/p&gt;</description></item><item><title>Meta-Matic</title><link>https://7sharp9.github.io/programming/2015-07-08-meta-matic/</link><pubDate>Sun, 12 Jul 2015 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2015-07-08-meta-matic/</guid><description>&lt;p&gt;Sit down, strap in, and prepare for take off, we&amp;rsquo;re going Meta-Matic!&lt;/p&gt;</description></item><item><title>Are you my type?</title><link>https://7sharp9.github.io/programming/2015-03-30-are-you-my-type/</link><pubDate>Mon, 30 Mar 2015 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2015-03-30-are-you-my-type/</guid><description>&lt;p&gt;Did you know there was more to the type matching operator than just pattern matching and exception handling?&lt;/p&gt;</description></item><item><title>Dioptric Dilemmas Of The Third Kind</title><link>https://7sharp9.github.io/astronomy/2015-02-05-dioptric-dilemmas-of-the-third-kind/</link><pubDate>Thu, 05 Feb 2015 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/astronomy/2015-02-05-dioptric-dilemmas-of-the-third-kind/</guid><description>&lt;p&gt;After enjoying owning a 150mm refractor telescope for a year, I decided I wanted to upgrade.&lt;/p&gt;</description></item><item><title>Terror From The Deep</title><link>https://7sharp9.github.io/programming/2014-12-07-terror-from-the-deep/</link><pubDate>Wed, 10 Dec 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-12-07-terror-from-the-deep/</guid><description>&lt;p&gt;So this is my Christmas special. I&amp;rsquo;ve been asked on numerous times to write about the F# addin for Xamarin studio which is in the &lt;a href="https://github.com/fsharp/fsharpbinding" target="_blank" rel="noreferrer"&gt;fsharpbinding repo&lt;/a&gt;, this repo is shared with the emacs support and also the Sublime Text support. So in this edition we will be taking a deep dive into the terrifying deep depths of the F# compiler and F# addin development&amp;hellip;&lt;/p&gt;</description></item><item><title>I saw my reflection and cried ...</title><link>https://7sharp9.github.io/programming/2014-11-17-i-saw-my-reflection-and-cried-dot-dot-dot/</link><pubDate>Sun, 16 Nov 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-11-17-i-saw-my-reflection-and-cried-dot-dot-dot/</guid><description>&lt;p&gt;While I was visiting Boston earlier in the year I had the misfortune of kicking myself in the teeth with reflection. It&amp;rsquo;s something all programmers inevitably go through with reflection API&amp;rsquo;s as they are inherently untyped, a simple typo can leave you tearing out your hair or punching through your monitor! Yeah there&amp;rsquo;s things the horizon that will help namely the &lt;a href="http://msdn.microsoft.com/en-us/magazine/dn802602.aspx" target="_blank" rel="noreferrer"&gt;nameof&lt;/a&gt; expression in C#6 which should help in some areas, that&amp;rsquo;s if your willing to pay the price of using C#, but I wont go into that here :-). In F# we can leverage Type Providers fairly easily to wrap API usages in cases that we are interested in, or even create a general usage with a little more effort.&lt;/p&gt;</description></item><item><title>Flux Compression (redux)</title><link>https://7sharp9.github.io/programming/2014-11-05-flux-compression-redux/</link><pubDate>Wed, 05 Nov 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-11-05-flux-compression-redux/</guid><description>&lt;p&gt;First of all the title, redux because I&amp;rsquo;m revising post I started on earlier in the year, compression because this has to do with compression, and Flux, which is also part of the redux, one of the first things I remember writing on the net was an article about Flux Compression Generators on &lt;a href="http://www.h2g2.com" target="_blank" rel="noreferrer"&gt;H2G2&lt;/a&gt;, its still there too!&lt;/p&gt;</description></item><item><title>Anything you can do ...</title><link>https://7sharp9.github.io/programming/2014-06-01-anything-you-can-do/</link><pubDate>Sun, 01 Jun 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-06-01-anything-you-can-do/</guid><description>&lt;p&gt;For any of you that are aware of the newly updated Xamarin Web site, you may have seen the &lt;a href="https://xamarin.com/platform" target="_blank" rel="noreferrer"&gt;following&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Objective-C was ahead of its time 30 years ago.
C# is ahead of its time today.
Anything you can do in Objective-C or Java, you can do in C# with Xamarin—usually more succinctly and with fewer bugs.&lt;/p&gt;</description></item><item><title>Xamarin 3 F# Awesomeness</title><link>https://7sharp9.github.io/programming/2014-05-28-xamarin-3-fsharp-awsomeness/</link><pubDate>Wed, 28 May 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-05-28-xamarin-3-fsharp-awsomeness/</guid><description>&lt;p&gt;With the release of Xamarin 3 there is a swathe of new features to the platform, but obviously the most important one is obviously F# support is now included by default in Xamarin Studio so there is no escape from the awesomeness of F#!&lt;/p&gt;</description></item><item><title>Danger unstable structure - No more!</title><link>https://7sharp9.github.io/programming/2014-02-10-danger-unstable-structure/</link><pubDate>Mon, 10 Feb 2014 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2014-02-10-danger-unstable-structure/</guid><description>&lt;figure class="img-left sixth"&gt;&lt;img src="https://7sharp9.github.io/img/restored/IMG_0379.png"&gt;
 &lt;/figure&gt;


&lt;p&gt;Over the last year a lot of work has been done on the &lt;a href="http://fsharp.github.io/fsharpbinding/" target="_blank" rel="noreferrer"&gt;F# addin&lt;/a&gt; for &lt;a href="https://xamarin.com/studio" target="_blank" rel="noreferrer"&gt;Xamarin Studio&lt;/a&gt;. Lots of great new features have been added and a lot of bugs have been squashed. I want to talk a bit about whats been happening and the evolution of the F# addin.&lt;/p&gt;</description></item><item><title>Adding Touch To SpriteKit</title><link>https://7sharp9.github.io/programming/2013-09-29-adding-touch-to-spritekit/</link><pubDate>Sun, 29 Sep 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-09-29-adding-touch-to-spritekit/</guid><description>&lt;p&gt;Only a quick post this week. Last time we looked at &lt;a href="https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Introduction/Introduction.html" target="_blank" rel="noreferrer"&gt;SpriteKit&lt;/a&gt; and how to add some particle emmiters to simulate a star-field and exhaust on a spaceship, this time lets look at adding some touch based input to move the spaceship around. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Spritekit particle fun</title><link>https://7sharp9.github.io/programming/2013-09-20-sprite-kit-particle-fun/</link><pubDate>Fri, 20 Sep 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-09-20-sprite-kit-particle-fun/</guid><description>&lt;p&gt;I have been meaning to write this post for quite a while now. Since the first announcement of the iOS7 beta I immediately saw the list of new API&amp;rsquo;s and &lt;strong&gt;SpriteKit&lt;/strong&gt; caught my eye straight away. I only managed to get time to briefly look over the API and saw that is wasn&amp;rsquo;t the usual trashy API with a million method overloads, internal mutation sucker punch type thing. It seems to be very declarative and intuitive, which makes for a nice change. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Can I have some F# with that?</title><link>https://7sharp9.github.io/programming/2013-06-21-can-i-have-some-fsharp-with-that/</link><pubDate>Fri, 21 Jun 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-06-21-can-i-have-some-fsharp-with-that/</guid><description>&lt;p&gt;
 &lt;figure class="img-left sixth"&gt;&lt;img src="http://scriptcs.net/images/logo@2x.png"&gt;
 &lt;/figure&gt;

 There&amp;rsquo;s been a fair bit of activity lately from a project called &lt;a href="http://scriptcs.net" target="_blank" rel="noreferrer"&gt;ScriptCS&lt;/a&gt;, it allows you to put together a project using C# as a lightweight scripting language, forgoing the use of Visual Studio which can sometimes be too bloated and bulky.&lt;/p&gt;</description></item><item><title>Monster Zero - Revisited</title><link>https://7sharp9.github.io/programming/2013-06-05-monster-zero-revisited/</link><pubDate>Wed, 05 Jun 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-06-05-monster-zero-revisited/</guid><description>&lt;p&gt;
 &lt;figure class="img-left"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/c/ce/KingGhidorah.jpg"&gt;
 &lt;/figure&gt;

&lt;br&gt;
This creature is capable of tremendous destruction due to it&amp;rsquo;s size, flight &lt;em&gt;(with the creature&amp;rsquo;s wings also generating hurricane strength winds)&lt;/em&gt; and possesses several breath weapons &lt;em&gt;(e.g., heat and energy)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;What am I talking about here? Maybe it&amp;rsquo;s &lt;a href="http://en.wikipedia.org/wiki/King_Ghidorah" target="_blank" rel="noreferrer"&gt;Monster Zero&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/King_Ghidorah" target="_blank" rel="noreferrer"&gt;King Ghidorah&lt;/a&gt; as it&amp;rsquo;s sometimes known. No it&amp;rsquo;s &lt;a href="http://msdn.microsoft.com/en-us/library/hh228603.aspx" target="_blank" rel="noreferrer"&gt;TPL Dataflow&lt;/a&gt;! &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Some kind of monster</title><link>https://7sharp9.github.io/programming/2013-06-01-some-kind-of-monster/</link><pubDate>Sat, 01 Jun 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-06-01-some-kind-of-monster/</guid><description>&lt;p&gt;
 &lt;figure class="img-left third"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/en/2/29/Godzilla_%2754_design.jpg"&gt;
 &lt;/figure&gt;


What&amp;rsquo;s 100 meters high and weighs in at around 60,000 tons? No its not Godzilla, its Reactive extensions!&lt;/p&gt;
&lt;p&gt;Lately on one of my projects I have been doing a lot of stream manipulation, and although I solved the problem quite easily using F# async workflows, there were other solutions available to help solve the problem. I could of used things like &lt;a href="http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx" target="_blank" rel="noreferrer"&gt;async await&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/hh228603.aspx" target="_blank" rel="noreferrer"&gt;TPL Dataflow(TDF)&lt;/a&gt;, and &lt;a href="http://rx.codeplex.com" target="_blank" rel="noreferrer"&gt;Reactive Extensions (Rx)&lt;/a&gt;. This is going to be a short post on using Rx with F#. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>I node something (Bout You)</title><link>https://7sharp9.github.io/programming/2013-05-05-i-node-something/</link><pubDate>Sun, 05 May 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-05-05-i-node-something/</guid><description>&lt;h1 class="relative group"&gt;What is Edge.js?
 &lt;div id="what-is-edgejs" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-is-edgejs" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;

 &lt;figure class="img-left sixth"&gt;&lt;img src="http://nodejs.org/images/logos/nodejs-dark.png"&gt;
 &lt;/figure&gt;


&lt;p&gt;Unless you &lt;em&gt;live in a hole&lt;/em&gt; you have probably heard of &lt;a href="http://nodejs.org" target="_blank" rel="noreferrer"&gt;node.js&lt;/a&gt; so I&amp;rsquo;ll not bother to explain what it is or what it does. An interesting project has come to light lately, namely &lt;a href="http://tjanczuk.github.io/edge/#/" target="_blank" rel="noreferrer"&gt;Edge.js&lt;/a&gt;. The Edge.js project allows you to connect node.js with .Net.&lt;/p&gt;</description></item><item><title>iOS async revisited</title><link>https://7sharp9.github.io/programming/2013-04-18-ios-async-revisited/</link><pubDate>Thu, 18 Apr 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-04-18-ios-async-revisited/</guid><description>&lt;p&gt;In this post weare going to look as async again, but from the perspective of F#.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Xamarin Evolve 2013
 &lt;div id="xamarin-evolve-2013" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#xamarin-evolve-2013" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;
 &lt;figure&gt;&lt;img src="http://blog.xamarin.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-03-at-11.07.21-AM.png"&gt;
 &lt;/figure&gt;

&lt;br&gt;
I have been watching the Xamarin Evolve conference this week and it was good to see Miguel announce full support for F#. Those that follow me on twitter etc, will know that I have been doing F# for quite a while in MonoDevelop and Xamarin Studio. The new support currently entails some new project templates so that you can easily create epic new F# Apps without having to refer to my blog. While its sad that my content now falls into the archives its nice to get official support announced in such a grand fashion. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>A little bit of iOS async</title><link>https://7sharp9.github.io/programming/2013-04-16-a-little-bit-of-ios-async/</link><pubDate>Tue, 16 Apr 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-04-16-a-little-bit-of-ios-async/</guid><description>&lt;p&gt;I was going to title this post as &amp;lsquo;Now for something completely different&amp;rsquo; but felt that a little bit too &lt;a href="http://en.wiktionary.org/wiki/Pythonesque" target="_blank" rel="noreferrer"&gt;Pythonesque&lt;/a&gt;, and when I thought about it a bit it isn&amp;rsquo;t really completely just slightly different, namely C# rather than my usual F# posts. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>MonoTouch and F# part II</title><link>https://7sharp9.github.io/programming/2013-02-04-monotouch-and-fsharp-part-ii/</link><pubDate>Thu, 07 Feb 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-02-04-monotouch-and-fsharp-part-ii/</guid><description>&lt;p&gt;In the last post we left at the point where everything was running fine and dandy on the Simulator. So what happens if we compile for the real hardware?&lt;/p&gt;
&lt;p&gt;Lets change the active configuration to &lt;code&gt;Debug|iPhone&lt;/code&gt; and hit build, what do we get?&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>MonoTouch and F# part I</title><link>https://7sharp9.github.io/programming/2013-02-03-monotouch-and-fsharp-part-i/</link><pubDate>Sun, 03 Feb 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-02-03-monotouch-and-fsharp-part-i/</guid><description>&lt;p&gt;&lt;a href="http://xamarin.com/monotouch" target="_blank" rel="noreferrer"&gt;MonoTouch&lt;/a&gt; and F# that would be a cool duo right?&lt;/p&gt;
&lt;p&gt;Well let me explain what needs to be done and why to get this pair working together.&lt;/p&gt;
&lt;p&gt;I heard rumours a while ago that F# and &lt;a href="http://xamarin.com/monotouch" target="_blank" rel="noreferrer"&gt;MonoTouch&lt;/a&gt; would not play together nicely because of &lt;a href="http://docs.xamarin.com/ios/about/limitations" target="_blank" rel="noreferrer"&gt;limitations&lt;/a&gt; in the ahead of time compilation &lt;a href="http://www.mono-project.com/AOT" target="_blank" rel="noreferrer"&gt;(AOT)&lt;/a&gt;. So I thought I would either prove or disprove this with some concentrated hacking. How hard can it be?&lt;/p&gt;</description></item><item><title>MonoGame subdivision and platonics</title><link>https://7sharp9.github.io/programming/2013-01-04-monogame-subdivision-and-platonics/</link><pubDate>Fri, 04 Jan 2013 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2013-01-04-monogame-subdivision-and-platonics/</guid><description>&lt;p&gt;I&amp;rsquo;ve been on a bit of a break from my normal jovial self due to a shit storm of bad stuff happening that I wont go into here, but hopefully this years going to be awesome. Anyway, here&amp;rsquo;s the next exciting installment in my series on MonoGame. &lt;em&gt;(Well I find it exciting anyway :-) )&lt;/em&gt;&lt;/p&gt;</description></item><item><title>MonoGame 3D basics</title><link>https://7sharp9.github.io/programming/2012-11-25-monogame-3d-basics/</link><pubDate>Sun, 25 Nov 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-11-25-monogame-3d-basics/</guid><description>&lt;p&gt;This time we are going to get into a little bit of code and produce the simplest of all 3d solids, the
tetrahedron. I know its not the most exciting of things but we have to start somewhere. The scope of 3D
graphics in computers is so vast that its very easy to get lost in the vast piles of research papers.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>F# and MonoGame on the Mac</title><link>https://7sharp9.github.io/programming/2012-11-11-fsharp-and-monogame-on-the-mac/</link><pubDate>Sun, 11 Nov 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-11-11-fsharp-and-monogame-on-the-mac/</guid><description>&lt;p&gt;What we are going to do in this post is take a whistle stop tour of getting &lt;a href="http://www.monogame.net" target="_blank" rel="noreferrer"&gt;MonoGame&lt;/a&gt; up and running along with a
simple demo in F#. Over the last few days I have been building an F# project template for MonoDevelop, this post will
also how to get that installed too. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>F# 3.0 In The Mac And Mono World</title><link>https://7sharp9.github.io/programming/2012-11-03-fsharp-3-in-the-mac-and-mono-world/</link><pubDate>Sat, 03 Nov 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-11-03-fsharp-3-in-the-mac-and-mono-world/</guid><description>&lt;p&gt;So what have I been up to lately? Well, lots of different things. I have been taking it easy on the open source and blogging side of things as its been a hectic time of late in my personal life. This seems to be changing now so I&amp;rsquo;m starting to get all of the ideas spinning around in my head into physical reality, or virtual reality, or what ever you want to call it. Anyway, here&amp;rsquo;s the first post on the subject of programming in F# using &lt;a href="http://monodevelop.com" target="_blank" rel="noreferrer"&gt;MonoDevelop&lt;/a&gt; and &lt;a href="http://www.mono-project.com/What_is_Mono" target="_blank" rel="noreferrer"&gt;Mono&lt;/a&gt; natively on Macs. &lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Whats in your toolbox?</title><link>https://7sharp9.github.io/programming/2012-08-23-whats-in-your-toolbox/</link><pubDate>Mon, 27 Aug 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-08-23-whats-in-your-toolbox/</guid><description>&lt;p&gt;If I walk into my garage now and open up a toolbox, whats inside?&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a quick selection:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ball-peen hammer&lt;/li&gt;
&lt;li&gt;Jointer plane&lt;/li&gt;
&lt;li&gt;1/2 inch mortise chisel&lt;/li&gt;
&lt;li&gt;Soldering iron&lt;/li&gt;
&lt;li&gt;Set square&lt;/li&gt;
&lt;li&gt;Low angle block plane&lt;/li&gt;
&lt;li&gt;Torx screw drivers&lt;/li&gt;
&lt;li&gt;Hack saw&lt;/li&gt;
&lt;li&gt;Monkey wrench&lt;/li&gt;
&lt;li&gt;Pipe cutter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Notice it doesn&amp;rsquo;t just contain:&lt;/p&gt;</description></item><item><title>The Lurking Horror</title><link>https://7sharp9.github.io/programming/2012-07-15-the-lurking-horror/</link><pubDate>Sun, 15 Jul 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-07-15-the-lurking-horror/</guid><description>&lt;blockquote&gt;&lt;p&gt;Deep in the darkest depths lurks an ancient horror, when the time is right it will rise forth and leave you screaming for mercy and begging for forgiveness&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;OK, I have a penchant for being over dramatic but in this post I am going to reveal some little known caveats in a well known and much revelled area of F#, agents aka the &lt;a href="http://msdn.microsoft.com/en-us/library/ee370357" title="Control.MailboxProcessor&amp;lt;&amp;#39;Msg&amp;gt;" target="_blank" rel="noreferrer"&gt;&lt;code&gt;MailboxProcessor&lt;/code&gt;&lt;/a&gt;. Gasp!&lt;/p&gt;</description></item><item><title>Back to the Primitive II</title><link>https://7sharp9.github.io/programming/2012-04-22-back-to-the-primitive-ii/</link><pubDate>Sun, 22 Apr 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-04-22-back-to-the-primitive-ii/</guid><description>&lt;p&gt;In the last post I discussed an asynchronous version of the &lt;code&gt;ManualResetEvent&lt;/code&gt; and as promised this time we will be looking at an
asynchronous version of the &lt;code&gt;AutoResetEvent&lt;/code&gt;. I&amp;rsquo;m using &lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2012/02/11/10266923.aspx" target="_blank" rel="noreferrer"&gt;Stephen Toubs post&lt;/a&gt;
as reference and we will be building a version that is functional in style that maps straight into asynchronous work flows without and conversion
or adaptors.&lt;/p&gt;</description></item><item><title>Back to the Primitive</title><link>https://7sharp9.github.io/programming/2012-04-12-back-to-the-primitive/</link><pubDate>Thu, 12 Apr 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-04-12-back-to-the-primitive/</guid><description>&lt;p&gt;In this post we are going &lt;strong&gt;back to the primitive&lt;/strong&gt;. No it&amp;rsquo;s not about the same named song by Soulfly, &lt;em&gt;(which incidentally does contains F# notes)&lt;/em&gt; but a return to thread synchronisation primitives and their asynchronous counterparts.&lt;/p&gt;
&lt;p&gt;We are going to be looking at an asynchronous version of the &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx" target="_blank" rel="noreferrer"&gt;ManualResetEvent&lt;/a&gt;. This was
recently covered by Stephen Toub on the &lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2012/02/11/10266920.aspx" target="_blank" rel="noreferrer"&gt;pfx team blog&lt;/a&gt;. We will be taking a slightly different view on
this as we will be using asynchronous workflows which will give us nice idiomatic usage within F#.&lt;/p&gt;</description></item><item><title>Black-Scholes Taste Test</title><link>https://7sharp9.github.io/programming/2012-03-10-black-scholes-taste-test/</link><pubDate>Sun, 11 Mar 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-03-10-black-scholes-taste-test/</guid><description>&lt;p&gt;In this edition we are going to be doing a taste test, C# vs F#. Oh yeah, if you quickly glanced at the title you may
have thought this was a recipe for black scones, as interesting and tasty as that may be, unfortunately its going
to be finance related.&lt;/p&gt;</description></item><item><title>FSharp Dataflow agents III</title><link>https://7sharp9.github.io/programming/2012-02-19-fsharp-dataflow-agents-iii/</link><pubDate>Mon, 20 Feb 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-02-19-fsharp-dataflow-agents-iii/</guid><description>&lt;p&gt;This will be the last post on rebuilding the &lt;code&gt;MailboxProcessor&lt;/code&gt; using &lt;a href="http://msdn.microsoft.com/en-us/devlabs/gg585582" target="_blank" rel="noreferrer"&gt;TDF&lt;/a&gt;,
here&amp;rsquo;s a quick discussion of the missing pieces&amp;hellip;&lt;/p&gt;
&lt;p&gt;First, lets start with the simple ones, these don&amp;rsquo;t really require much discussion.&lt;/p&gt;

&lt;h3 class="relative group"&gt;DefaultTimeout
 &lt;div id="defaulttimeout" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#defaulttimeout" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;let mutable defaultTimeout = Timeout.Infinite
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;member x.DefaultTimeout
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; with get() = defaultTimeout
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; and set(value) = defaultTimeout &amp;lt;- value&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This simply provides a mutable property using &lt;code&gt;Timeout.Infinite&lt;/code&gt; as a default setting.&lt;/p&gt;</description></item><item><title>F# Dataflow Agents Part II</title><link>https://7sharp9.github.io/programming/2012-01-24-fsharp-dataflow-agents-ii/</link><pubDate>Mon, 30 Jan 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-01-24-fsharp-dataflow-agents-ii/</guid><description>&lt;p&gt;Right, no messing about this time, straight to the code.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Construction
 &lt;div id="construction" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#construction" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;This is pretty straight forward and I don&amp;rsquo;t want to detract from the important bits of this post, the only thing
of note is the &lt;code&gt;cancellationToken&lt;/code&gt; which is initialized to a default value using the &lt;code&gt;defaultArg&lt;/code&gt; function if the
optional parameter &lt;code&gt;cancellationToken&lt;/code&gt; is not supplied. The TDF construct that we to use to perform most of the hard
work is &lt;code&gt;incomingMessages&lt;/code&gt; which is a &lt;code&gt;BufferBlock&amp;lt;'Msg&amp;gt;&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>F# Dataflow Agents Part I</title><link>https://7sharp9.github.io/programming/2012-01-22-fsharp-dataflow-agents-i/</link><pubDate>Sun, 22 Jan 2012 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2012-01-22-fsharp-dataflow-agents-i/</guid><description>&lt;p&gt;This is going to be a new series on using TPL Dataflow with F#. First a little bit of history and background.&lt;/p&gt;

&lt;h2 class="relative group"&gt;TPL Dataflows heritage and background
 &lt;div id="tpl-dataflows-heritage-and-background" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#tpl-dataflows-heritage-and-background" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;TPL Dataflow or &lt;a href="http://msdn.microsoft.com/en-us/devlabs/gg585582" target="_blank" rel="noreferrer"&gt;(TDF)&lt;/a&gt; has been around for quite a
while, it first surfaced more than a year ago as the successor to the Concurrency and Coordination Runtime
&lt;a href="http://msdn.microsoft.com/en-us/library/bb648752.aspx" target="_blank" rel="noreferrer"&gt;(CCR)&lt;/a&gt; and with coming release of .Net 4.5 it will
be part of the &lt;code&gt;System.Threading.Tasks.Dataflow&lt;/code&gt; namespace. Elements of the now halted project
&lt;a href="http://msdn.microsoft.com/en-us/devlabs/dd795202" target="_blank" rel="noreferrer"&gt;Axum&lt;/a&gt; are also present within the design of TDF.&lt;/p&gt;</description></item><item><title>Fixing a hole...</title><link>https://7sharp9.github.io/programming/2011-12-11-fixing-a-hole/</link><pubDate>Sun, 11 Dec 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-12-11-fixing-a-hole/</guid><description>&lt;p&gt;Due to popular demand&amp;hellip; well, I had a couple of requests anyway :-) Heres
a post inspired by my recent encounters profiling some of the code in
&lt;a href="https://github.com/fractureio/fracture" target="_blank" rel="noreferrer"&gt;Fracture-IO&lt;/a&gt;.  &lt;!-- more --&gt;I have recently been
profiling the code in fracture to remove any so called low hanging fruits.
During this time I also noticed an increase in memory allocation.  I
remembered I had recently been experimenting in a branch using pipelets as a
buffer between the send and receive stages in the Http Server, so I set up a
simple test to see if pipelets were contributing to the memory allocation
issues I was seeing.  Here&amp;rsquo;s the simple iteration test code I used for the
memory profiling:&lt;/p&gt;</description></item><item><title>F# and Design principles - SOLID</title><link>https://7sharp9.github.io/programming/2011-08-22-fsharp_solid/</link><pubDate>Mon, 22 Aug 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-08-22-fsharp_solid/</guid><description>&lt;h2 class="relative group"&gt;SOLID and its relevance to F#
 &lt;div id="solid-and-its-relevance-to-f" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#solid-and-its-relevance-to-f" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;There has been an increasing amount of exposure for F# and functional
programming lately.  If you come from an object-orientated background a change
in mindset is required when working with functional programming, there is a
lot of misinformation on functional languages and their relationship with
object-orientated design. In this post we run quickly through SOLID to see if these object-orientated principles apply to F#, and if so, how.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>From C# to F#: A Developer's Perspective</title><link>https://7sharp9.github.io/programming/2011-07-16-from-csharp-to-fsharp-a-developers-perspective/</link><pubDate>Sat, 16 Jul 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-07-16-from-csharp-to-fsharp-a-developers-perspective/</guid><description>&lt;p&gt;I recently wrote an article for &lt;a href="http://www.developerfusion.com/" target="_blank" rel="noreferrer"&gt;Developer Fusion&lt;/a&gt; on the changes in mindset required
when moving from C# to F#.&lt;/p&gt;
&lt;p&gt;The article has proved to be more more popular than I envisaged.  I think a lot of .Net developers are interested in F# but are unsure on the path to take
when trying to accomplish this.  For me it was almost a leap of faith, I saw the potential benefits and just jumped right in.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Agent based scheduling</title><link>https://7sharp9.github.io/programming/2011-07-03-agent-based-scheduling/</link><pubDate>Sun, 03 Jul 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-07-03-agent-based-scheduling/</guid><description>&lt;p&gt;One of the areas that I am very interested in is agents and I have been doing
quite a lot of work in this area lately.&lt;/p&gt;
&lt;p&gt;Agents can be used for a multitude of different purposes ranging from:
isolated message passing, object caching, finite state machines, web crawling,
and even reactive user interfaces.  One of the ideas that I have been looking
into lately is agent based scheduling.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title> Agents and ObjectPools</title><link>https://7sharp9.github.io/programming/2011-06-05-agents-and-objectpools/</link><pubDate>Sun, 05 Jun 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-06-05-agents-and-objectpools/</guid><description>&lt;p&gt;Everyone knows F# agents are cool right?  Well here&amp;rsquo;s yet another example of how versatile they can be&amp;hellip;&lt;/p&gt;
&lt;p&gt;There was a series of posts last April by Stephen Toub from the &lt;a href="http://blogs.msdn.com/b/pfxteam/" target="_blank" rel="noreferrer"&gt;pfxteam&lt;/a&gt; at Microsoft.  I was reading
through some of the posts again the other day and thought some of the ideas presented there would make interesting projects in F# to demonstrate the
flexibility and succinctness of the language.  I thought the &lt;a href="http://blogs.msdn.com/b/pfxteam/archive/2010/04/13/9990427.aspx" target="_blank" rel="noreferrer"&gt;ObjectPool&lt;/a&gt;
example would make an interesting project in F# using agents aka MailboxProcessors. An ObjectPool is basically a pool of objects that have been
pre-created so that you can grab one and use it, and then place it back in the pool when you&amp;rsquo;re finished.  They are useful in situations where the cost of
creating object from scratch is very high or you want to cut down on allocations in the garbage collector.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Pipeline processing 3</title><link>https://7sharp9.github.io/programming/2011-04-04-pipeline-processing-3/</link><pubDate>Mon, 04 Apr 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-04-04-pipeline-processing-3/</guid><description>&lt;p&gt;Ok so I have been offline for a while now, what with starting a new financial contract in London and not having any broadband access for a while.  I have
been working on something, honest!&lt;/p&gt;
&lt;p&gt;Since the last post I have been reflecting on the pipeline design and it had a distinct object orientated feel to it that I wasnt happy with, so I have
amended the structure of the code and come up with the following which simplifies in some areas and expands in others&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Pipeline processing 2</title><link>https://7sharp9.github.io/programming/2011-02-13-pipeline-processing-2/</link><pubDate>Sun, 13 Feb 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-02-13-pipeline-processing-2/</guid><description>&lt;h3 class="relative group"&gt;Welcome to pipeline processing part 2.
 &lt;div id="welcome-to-pipeline-processing-part-2" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-pipeline-processing-part-2" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;I feel I need to backtrack slightly from the previous post, having worked with
pipelines for quite some time I have the advantage of knowing all of the
details that may be alluded to in these articles without being effected by any
omissions I may make, obviously you guys aren&amp;rsquo;t in that position, so I&amp;rsquo;m going
to try and rectify that a bit now.  If you have any queries then please leave
a comment and I will try to address them in further articles. Pipelines are a
simple concept but in practice there can be some caveats and things to bear in
mind, sometime the whole mindset of development team can be against them
unless they can see the bigger picture&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Pipeline processing 1</title><link>https://7sharp9.github.io/programming/2011-02-01-pipeline-processing-1/</link><pubDate>Tue, 01 Feb 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-02-01-pipeline-processing-1/</guid><description>&lt;h3 class="relative group"&gt;Welcome to new series of articles on pipeline processing.
 &lt;div id="welcome-to-new-series-of-articles-on-pipeline-processing" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-new-series-of-articles-on-pipeline-processing" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;First up, what&amp;rsquo;s a pipeline?  Well according to &lt;a href="http://en.wikipedia.org/wiki/Pipeline_%28computing%29" target="_blank" rel="noreferrer"&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A pipeline is a set of data processing elements connected in series, so that
the output of one element is the input of the next one. The elements of a
pipeline are often executed in parallel or in time-sliced fashion; in that
case, some amount of buffer storage is often inserted between elements.&lt;/p&gt;</description></item><item><title>Sockets and Bockets 4</title><link>https://7sharp9.github.io/programming/2011-01-28-sockets-and-bockets-part-4/</link><pubDate>Fri, 28 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-28-sockets-and-bockets-part-4/</guid><description>&lt;h2 class="relative group"&gt;Welcome to part 4
 &lt;div id="welcome-to-part-4" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;If you were looking forward to some exciting new F# code this time your going
to be disappointed, however if you are like me and like looking at graphs and
stats and digging in deeper into the code then your going to enjoy this, lets
get started&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 3</title><link>https://7sharp9.github.io/programming/2011-01-20-sockets-and-bockets-part-3/</link><pubDate>Thu, 20 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-20-sockets-and-bockets-part-3/</guid><description>&lt;h2 class="relative group"&gt;Welcome to part three!
 &lt;div id="welcome-to-part-three" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-three" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;As promised heres a description of the inner workings.  I&amp;rsquo;m sick to death of
typing SocketAsyncEventArgs so from now on I will refer to it as SAEA.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 2</title><link>https://7sharp9.github.io/programming/2011-01-14-sockets-and-bockets-part-2/</link><pubDate>Fri, 14 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-14-sockets-and-bockets-part-2/</guid><description>&lt;h3 class="relative group"&gt;Welcome to part two
 &lt;div id="welcome-to-part-two" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-two" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Lets jump in at the deep end and take a look at some code&amp;hellip;&lt;/p&gt;
&lt;p&gt;When you look at the method syntax for the xxxAsync methods you will notice
they return a boolean value that indicates if the method completed
synchronously, this means that you have to check the return value every time
you use one of the methods and invoke the callback yourself if it completes
synchronously.  In practice this hardly ever happens, and normally only on a
send operation.  But as it is a possibility we will add module with a some
extension methods in to help us out, this will make the code more readable and
avoid unnecessary duplication.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 1</title><link>https://7sharp9.github.io/programming/2011-01-13-sockets-and-bockets-1/</link><pubDate>Thu, 13 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-13-sockets-and-bockets-1/</guid><description>&lt;h3 class="relative group"&gt;Welcome to part 1
 &lt;div id="welcome-to-part-1" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-1" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;A while back I read an interesting article by &lt;em&gt;Brian McNamara&lt;/em&gt; &lt;a href="http://lorgonblog.wordpress.com/2010/03/28/f-async-on-the-server-side/" target="_blank" rel="noreferrer"&gt;f-async-on-the-server-side&lt;/a&gt;
which describes C# and F# versions of a simple asynchronous
socket server, one of the driving forces behind the article was how F# can
wrap the traditional asynchronous model with &lt;a href="http://msdn.microsoft.com/en-us/library/dd233250.aspx" target="_blank" rel="noreferrer"&gt;Asynchronous Workflows&lt;/a&gt;, this
produces nice clean simple code compared to the C# version which uses lambda
expressions, the code looks quite ugly in this style!  However thats not the
end of the story, a lot of memory fragmentation can occur using the APM model
when there is a high throughput, so I thought I would see if I could take this
a step further&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item></channel></rss>