Last week saw the fourth instalment of the annual Progressive F# Tutorials hosted at Skills Matter in London, with 8 sessions over 2 days and 2 tracks, to a full house.
2014 has been another exciting year in the F# community, with F# specific talks featuring heavily at major conferences, user groups popping up across the globe and F# sitting comfortably in the TIOBE top 20.
Day 1
Don Syme kicked off the day with a keynote on The F# Way To Reconciliation.
Then on the advanced track Jérémie Chassaing introduced CQRS with F# (code samples). Meanwhile on the beginner track Scott Wlaschin introduced DDD and F# (slides).
In the afternoon Mathias Brandewinder lead the advanced track with Treasures, Traps and F#. While on the beginner track Mark Seemann introduced Outside-In TDD with F#.
After some beer and pizza, we rounded off the day with a panel of experts including Kit Eason, Mathias Brandewinder, Ross McKinlay, Rich Minerich and Eirik Tsarpalis.
Day 2
In the morning Robert Pickering and Robin Neatherway introduced Xamarin and Cross Platform Apps (code samples). While Don Syme and Tomas Petricek guided us through Calling and Extending the F# Compiler (code samples).
The afternoon saw Andrea Magnorsky take us through Gaming with F#. At the same time Michael Newton covered Metaprogramming in F#.
F# Hackathon
The fun continued into Saturday with a return to Skills Matter for an F# Hackathon. I brought along my 8yo Sean who, with a little help from Tomas Petricek, managed to compose some 3D men in F# interactive:
let cylinder =
Fun.translate (0.0, 0.0, -0.2)
( Fun.color Color.DarkGray Fun.cylinder $
Fun.translate (0.0, 0.0, 0.5)
(Fun.scale (2.0, 2.0, 0.2)
(Fun.color Color.DarkGray Fun.cylinder)) )
let head =
Fun.translate (0.0, 0.0, 0.8)
(Fun.scale (1.2, 1.2, 1.2)
(Fun.color Color.PeachPuff Fun.sphere))
let body =
Fun.cube
|> Fun.color Color.DarkGoldenrod
|> Fun.scale (0.5, 1.5, 3.0)
|> Fun.translate (0.0, 0.0, 3.0)
let arm =
( ( Fun.cylinder
|> Fun.color Color.DarkGoldenrod
|> Fun.scale (0.3, 0.3, 2.0) ) $
( Fun.sphere
|> Fun.translate (0.0, 0.0, 1.6)
|> Fun.scale (0.5, 0.5, 0.5)
|> Fun.color Color.PeachPuff ) )
|> Fun.rotate (45.0, 0.0, 0.0)
|> Fun.translate (0.0, -1.2, 2.3)
let arms =
arm $
(Fun.rotate (0.0, 0.0, 180.0) arm)
let feet =
Fun.cube
|> Fun.scale (0.6, 0.6, 0.1)
|> Fun.translate (0.0, 0.0, 7.0)
let leg =
Fun.cylinder
|> Fun.color Color.DarkGoldenrod
|> Fun.scale (0.5, 0.5, 3.0)
|> Fun.translate (0.0, 0.0, 5.0)
let legs =
(Fun.translate (0.0, 0.3, 0.0) (leg $ feet)) $
(Fun.translate (0.0, -0.3, 0.0) (leg $ feet))
let man =
head $
cylinder $
body $
arms $
legs
[ for x in -10.0 .. 5.0 .. 10.0 do
for y in -10.0 .. 5.0 .. 10.0 do
yield Fun.translate (x, y, 0.0) man ]
|> Seq.reduce ($)
Meanwhile Anthony Brown managed to get F# code running on the PS Vita!
F# eXchange 2015
Want to join the dots of the F# landscape? Eager to hear from those driving innovation in F# or how F# is being used in various industries? Then join us for the F# exchange this April! Featuring a days of talks, demos and discussions, the F# eXchange will bring the world's top F# experts and practioners together with the amazing, passionate and fast growing F# community to learn and share skills, exchange ideas and meet like minded people. Don't miss it!
Book by December 31st for the early bird discount.