F# Cambridge Meetup - 11th January 2015

This was an action packed evening full of code, drink and pizza, peppered with a touch of Trelford trolling all organised by F# Cambridge Community guys. We started the evening with a few FsAdvent blog post talks.


Tomas Petricek - Happy New Year 2016

Happy New Year 2016 around the World post.

Watch the world waking up to a Happy New year via twitter, live, courtesy of twitter streaming API, Suave.io webserver, D3 datamaps and reactive programming all wrapped in a single fsx file!.


Evelina Gabasova - Star Wars social network: Using D3.js, R (ggplot) and F#.

If you wanted to know anything about the relationship between the central characters of these films, start here.
From Evelina's blog: "I extracted social networks from all the movies and found some interesting relations."

Example graph:

One tweeter - F♭lunt (‏@F__Blunt): "@evelgab proving scientifically that the star wars prequels suck. this was the funniest use of f# i've seen so far :)"


My own Advent blog

Short demo of Mono driven snowflakes : Phil Trelford decided to pick on me with little warning for a contribution to the evening's festivities. However with the help of an understanding audience, I was able to ramble out some vague explanation of how I got my snowflakes working with Mono.


Mathias - The Main event "Crunching through big data with MBrace, Azure & F#".

Mathias demonstrates using Azure clusters to spread heavy workloads such as digit recognition, or Phil Trelford's favourite, word count. The demo illustrated that the use of mbrace made the actual development work as straight forward as any other F# coding.

He took the fun route of doing two time honored "No-No's" to deliver this talk: Relied on the internet and wrote code live. This made for an interesting experience, for all concerned as he provisioned clusters, dispatched jobs and awaited results - sometimes with bated breath.

tarting with, quite possibly be, the world's longest running version of "Hello World" (5 seconds I believe), he soon progressed onto scenarios that really do benefit from this approach.

Also mentioned was how you can actually use the R provider or other type providers yet get it all to work on provisioned clusters example. The mBrace starter kit has a very comprehensive set of examples if you clone the repo.


Daniel Fabian and his PInvoke Wrapper - get types inferred for native libraries.

This was an enthusiastic side conversation that should have been at least a lightning talk - however, do lookout for a full talk by Daniel on this subject in the coming months!

Daniel Fabian of MS Research on his PInvoke wrapper (FSharp.InteropServices.Dynamic) utilising F# type inference and the (?) operator to allow you to use a wide variety of native libraries within F#. This uses the DLR, reflection, interop libraries and would easily allow one to use C++ nvidia dlls for example. Simple usage:

From MSDN Platform Invoke (Pinvoke) for those that don't know: “Platform Invocation Services (PInvoke) allows managed code to call unmanaged functions that are implemented in a DLL. This tutorial shows you what you need to do to be able to call unmanaged DLL functions from C#. The attributes discussed in the tutorial allow you to call these functions and have data types be marshaled correctly.

He also introduced me to the idea of Clutter - an outlook add on that learns from you what junk is.

Finally he talked about another MS Research project: infer.net - a framework that offers Bayesian inference in graphical models and probablistic programming. . This looks like a fascinating yet very underplayed project as a quick glance at the tutorials and examples will tell you. The list of possibilities on offer is substantial - a subject for another post!