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.
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."
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 :)"
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 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.
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!