Awesome!
Author: Sergey Tihon 🦔🦀🦋
F# Weekly #49, 2014
![]() |
![]() |
![]() |
![]() |
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
- Call-to-action from Don Syme: Join the F# Foundation & help promote, protect, and advance the language!
- WebSharper goes Apache right now. v3.0 is coming.
- WebSharper migration to GitHub is completed!
- Tons of fun videos from NDC London (full list of talks).
- FAKE has 100 contributors and they managed to open the license.
- Akka.NET needs more F#’ers to eval our F# API.
- FSharp.Core now available on NuGet in a sane manner.
- Get up to 30 Pluralsight courses in your MSDN subscription.
- Do not miss “Introducing .NET Core“.
- Want F# IntelliSense support in LinqPad? Vote here.
- Matthew Moloney presented F# text editor in 3D with syntax highlighting.
Videos/Presentations/Courses
- The F# Way To Relaxation (slides) by Don Syme (there are some problems with audio)
- Railway oriented programming: Error handling in functional languages by Scott Wlaschin
- Write Your Own Compiler in 24 Hours (slides and code) by Phillip Trelford
- Equivalence Classes, xUnit.net, FsCheck, Property-Based Testing by Mark Seemann
- Mona Lisa, F# and Azure: simple solutions to hard problems by Mathias Brandewinder
- Functional programming design patterns (slides) by Scott Wlaschin (comming soon)
- Biological Computing in F# by Rasmus Petersen and Colin Gravill
- Actor-based Concurrency with F# and Akka.NET (+code) by Akim Boyko
- Above and beyond Python programming FSharp for Trading and Finance by Bryan Downing
- Understanding social networks with F# (slides & code) by Evelina Gabasova
- Event Sourcing by Michael Newton
- F#, this aint a game by Andrea Magnorsky (slides)
- Elixir Language, Concurrency, Iteration by José Valim
- My adventure with Elm by Yan Cui
This week from F# Advent Calendar in English
- FsCheck and property-based testing – Scott Wlaschin
- Snowflakes – Philae Trelford
- My Introduction to Data Science with F# – Jon Wood
- Distributing the F# Mailbox Processor – Isaac Abraham
- Decorating Immutable Christmas Trees – Richard Dalton
- Christmas F# Polymorphism – Steve Shogren
- Developing an Algorithm in F#: Fast Rotational Alignments with Gosper’s Hack – Richard Minerich
This week from F# Advent Calendar in Japanese
- Computation Expressions Tips – pocketberserker
- AutoOpenAttribute– htid46
- Introduction to ApiaryProvider – otf
- F# Project Scaffold: Getting started – yukitos
- 実例に見るSource変換活用術 – bleis-tift
- State in computation expressions– kos59125
- FSharpLint: Linter for F# code – k_dispose
Blogs
- Predicting Physician Gender Using AzureML and F# – Jamie Dixon
- Using F# and FFmpeg to take thumbnails from video – Erlend Wiig
- F(by) 2014: Photos and slides.
- Extending a 3rd-party API with F# units of measure – Lincoln Atkinson
- Generating Permutations: Clojure or F#: Part 2 – Boris Kogan
- Modelling Stochastically Independent Processes with F# Computation Expressions: Part 1 – Boris Kogan
- Being visually honest with F# – Yan Cui
- F# Functions Explained – Currying & Partial Application – Ankit Solanki
F# vNext News
- Schedule plans for the remainder of Visual F# 4.0 development.
- Recently accepted PRs:
- Recently proposed PRs (please review and comment):
- Recently proposed ideas:
New releases
- Paket 0.17.19.
- FSharp.CloudAgent 0.3
- WebSharper 2.5.134
- Stanford.NLP.* v3.5 and Stanford.NLP.Parser.Fsharp v0.0.9 using new IKVM for Java8.
- FSharp.Core 3.1.2
- FSharp.Configuration 0.4.6.
- FSharp.Control.Reactive 3.0.1
- R.NET F# Utility 0.1.11
- FSharp.Actor-logary 2.0.1
- EaToSql 0.0.5-alpha
- Chrisjdobson.WebSharper.SignalR 0.4.1
- Suave 0.19.1
That’s all for now. Have a great week.
Previous F# Weekly edition – #48![]()
Distributing the F# Mailbox Processor
Everyone should read it
Note: This blog post is part of the 2014 F# Advent Calendar. Be sure to check out yesterday’s Intro to Data Science post by Jon Wood!
Mailbox Processors 101
If you’ve been using F# for any reasonable length of time, you’ll have come across the MailboxProcessor, AKA the F# Agent (or Actor). Mailbox Processors are cool. They give us the ability to offload load to background processors without worrying about managing the thread that they live on (as agents silently “go to sleep” when they aren’t processing anything), and they take away the pain of locking as they ensure that only one message will be processed at a time whilst automatically queuing up backed up messages. They also allow us to visualise problems differently to how we might do so when just using a raw Task, in terms of message passing. We can partition data based by pushing them…
View original post 2,583 more words
F# Weekly #48, 2014
![]() |
![]() |
![]() |
![]() |
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
- Do not miss F# Advent Calendar: English and Japanese versions are starting today.
- Please help these F# projects achieve “green” status for cross-platform CI builds.
- FAKE most probably is the best .NET build system of today.
- If you’re feeling lonely, tweet #fsharp. You have 88% probability that someone will RT or favorite it.
- A new book: Machine Learning Projects for .NET Developers by Mathias Brandewinder.
- A new Type Provider opportunity: hal+json.
- Using FSharp.Data? If you can, please help Gustavo Guerra scale CsvProvider to 5GB+ files
Videos/Presentations/Courses
- Introduction to Machine Learning (Using R and F# with examples from Kaggle competitions) – by Akim Boyko
- All-round strongly-typed approach to MS CRM – Ramón Soto Mathiesen
- F# and Open Source – Andrea Magnorsky
- Streams – Nick Palladinos
- Modelling environment update for plankton study – Matthew Smith (The ecology group at Microsoft Research have been using F# to model the science of plankton)
Blogs
- An introduction to property-based testing – Scott Wlaschin (FsAdvent)
- Your application should be a pure function – Tomas Jansson
- What is Behind the Rendering Design of DotPdf? – Steve Hawley
- f(by) Minsk 2014 – Phil Trelford
- Sending SMS on NServiceBus in FSharp – Bjørn Einar Bjartnes
- Typed Hack of Cloudant using F# – Kunjan Dalal
- Generating valid F# source code for testing with FsCheck – Anh-Dung Phan
- Generating Permutations: Clojure or F#: Part 1 – Boris Kogan
- Working with Non-Compliant OWIN Middleware – Ryan Riley
- Introducing SourceLink.SymbolStore – Cameron Taggart
- Project reference resolution using FSharp.Compiler.Service – Robin Neatherway
- F#’s strongest year yet – Martin Trojer
- Evolution of the F# Empty WPF Template – Daniel Mohl
F# vNext News
- Recently accepted PRs:
- Recently proposed PRs (please review and comment):
- Recently proposed ideas:
The F# Open Projects Group is looking for a primary active maintainer for the following repositories:
- fsprojects/Foogle.Charts
- fsprojects/FSharp.Collections.ParallelSeq
- fsprojects/FSharp.Compiler.CodeDom
- fsprojects/FSharp.Data.Experimental.XenomorphProvider
- fsprojects/FSharp.Data.HiveProvider
- fsprojects/FsLexYacc
- fsprojects/GraphProvider
- fsprojects/powerpack
New releases
- Paket 0.17.1.
- Math.NET Numerics for F# 3.3.0 (+signed version)
- FSharp.Quotations.Evaluator 1.0.4
- FAKE 3.10 released with support for MSBuild 14, couple of new MSDynNAV features and new csc.exe helper.
- EventStore.Client F# API 3.0.2
- FSharp.CloudAgent 0.2
- FSharp.TypeProviders.StarterPack 1.1.3.53
- Emacs F# mode v1.5.0.
- fsharp-mode (20141125.1614)
That’s all for now. Have a great week.
Previous F# Weekly edition – #47![]()
F# Weekly #47, 2014
![]() |
![]() |
![]() |
![]() |
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
- Thank you everybody who helped to raise an initial budget of FSSF!
- Join F# Advent Calendar 2014 & F# Advent Calendar in English 2014!
- Check out a brand-new Visual F# Power Tools FAQ.
- www.lambdadays.org is waiting for F# speakers!
- nugetmusthaves.com allows you to discover NuGet dependencies.
- Check out F#nctional Times – it’s very neat.
- Plans for .NET source code and Mono integration
- Eirik Tsarpalis works on QuotationCompiler library.
Videos/Presentations/Courses
- The F# Programming Language on TIOBE
- Detangling software dependency networks (+code) – Evelina Gabasova
- Introduction to FunScript (Spanish – Madrid F# Meetup)
- Type Providers (+code) – Michael Newton
- F#, this ain’t a game – Andrea Magnorsky
- Learn you to tame complex APIs with F#-powered DSLs – Yan Cui
- Functional Programming Patterns (BuildStuff ’14) – Scott Wlaschin
- Teaching programming language concepts with F# (Peter Sestoft) – part 1, part 2 & materials.
Blogs
- Seq vs Streams – Phil Trelford
- F# Named Union Fields – Gustavo Guerra
- FunSnake (code) – Alberto Ayuso
- F# FunScript with NancyFx and Ractive – Andre Van Der Merwe
- Implementing (Parts Of) ASP.NET Identity Using F# – Jamie Dixon
- I Saw My Reflection and Cried … – Dave Thomas
- Visual F# 4.0 Preview – Michael Domingo (Visual Studio Magazine)
- F# Type Providers – Hightech
- Fun with Code Diagnostic Analyzers – Dave Fancher
- Modeling Mars rovers with F# – Mark Watts
- Operator precedence: F# and Haskell – Kevin Cantù
- NuGet dependency visualizer with F# and Graphviz – Sergey Tihon
- Manage Azure Blobs with F# – David Crook
- F# Keyboard Bindings with AutoHotkey – TeaDrivenDev
- F# in ASP.NET 5: The good, the bad, and the really ugly – Aleksander Heintz
- Android Wear Starter Project – F# + Xamarin – Faisal Waris
- FAKE Everywhere – Ilker Cetinkaya
- Suave in a Docker container on MS Azure using Xamarin Studio and Mono on a Mac
- Hello World Suave – Henrik Feldt
- Expresiones de cálculo personalizadas – Alex Casquete
- Soirée FsiBot – Le bot twitter écrit en F# sur Azure – Michel Perfetti
- F#-Entwicklung für Visual Studio 2015 – das ist neu – Judith Lungstraß
F# vNext News
- F# project system now supports “up-to-date” builds!
- OSS folks Visual F# Team needs your help!!!! Please take time to review and comment on the PR’s they have yet to pull.
- Recently proposed PRs (please review and comment):
- Recently proposed ideas:
New releases
- FSharp.Compiler.Service v0.0.80
- Paket 0.16.0-alpha001.
- FSharp.Data.SqlClient v1.4.5.
- FSharp.Quotations.Evaluator v1.0.3
- FSharp.Data.SqlClient v1.4.5
- Nu Game Engine v0.993
- CloudSharper 0.9.22.2
That’s all for now. Have a great week.
Previous F# Weekly edition – #46![]()
F# Advent Calendar in English 2014
Update: Event extended until December 31.
Our friends from Japan have a beautiful event called “F# Advent Calendar“. Every day from December 1 to December 31, one awesome volunteer publish a new post about F#. What an amazing way to celebrate Christmas, isn’t it?
Lets support this initiative and do an English version of the calendar. Two blog posts per day is better than one, isn’t it? We need 31 volunteers, who are ready to prepare a post about F# and publish it on specified date.
Rules
Rules are very simple:
- Choose F# related topic for your blog post and send it to me on Twitter or leave a comment to this post.
- Prepare a blog post in English (about F# or using F#)
- Publish your post on specified date (according to the calendar)
- Post link to your post on Twitter with hashtags #fsharp and #FsAdvent.
Calendar
NuGet dependency visualizer with F# and Graphviz
Script for this article is available as public Gist.
For a long time I was interested in what is going on on NuGet. I think that NuGet UI does not provide one important piece of information – which packages depend on current packages. This information is very useful for package authors and also can help a user to find packages that provide more sophisticated implementation.
Other interesting thing is to see the big picture and answer some global questions:
- What is inside the technology I use? What is the dependency of packages that I use? What are dependencies of dependencies and so on.
- What is built on top of packages that I maintain? What beautiful applications of my ideas other can find? What is the cost of releasing a broken package? Who can be harmed?
I believe that there are a lot of other answers we can find from the high view.
Some time ago I have found that NuGet team provides NuGet.Core package that has all API required to communicate with NuGet. The API is not really fast if you are going to download information about all versions of all NuGet packages 😉 But NuGet team is working on a new v3 API that is going to be much faster than current v2. For current research I have downloaded info about all packages and all their versions to my FSI session to be able to run different types of analysis and create visualizations without further communication with NuGet. This operation is slow enough: it took about 1 hour last time when I run it, but it really depends on NuGet workload and your internet connection.
The second thing is visualization of the result, here I want to say thank you to Scott Wlaschin for his great script type-dependency-graph.fsx (that was built for ‘Cycles and modularity in the wild‘ analysis). I took his GraphViz module and slightly modified it to allow colorful graphs printing. To use it you need to download GraphViz from the official site.
That is all tooling that we need. So we are ready to describe a structure of an analysis – script extracts 3 subsets of NuGet packages and visualizes them in different colors with all dependencies.
- Packages that are in scope of analysis (green on the graphs)
- Packages that we depend on (grey on the graph) – Package is in the set 2 if exists a dependency path from any package from Set 1 to this package.
- Packages that depend on us (blue on the graph) – Package is in the set 3 if exists a dependency path from this package to any package from Set 1.
NOTE: In this analysis I ignored package version and considered only latest package version and dependencies of latest version. If you need more accurate analysis you should adjust script a bit.
Running this script I did some interesting observations:






I hope that you’ll also find this script useful and discover something interesting on NuGet.
F# Weekly #46, 2014
![]() |
![]() |
![]() |
![]() |
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
- Announcing a preview of Visual F# 4.0 on VS 2015.
- Announcing .NET 2015 Preview: A New Era for .NET.
- .NET Core is Open Source.
- A fantastic day for Visual F# – VS Community Ed. supports extensibility, so you can use Visual F# PowerTools on free stack.
- What do you want from the F# Software Foundation? Ask them here.
- F# group in Utah was announced.
- “Onikira, Demon Killer” – a game with an F# inside.
- Added is a section to “Recommended Guidelines for F# Projects” on cultural processing of strings.
- FeldSpar – F# test framework with a new UI test runner.
- Rachel Reese will join Jet.com in Jan.
- We need a type provider for JSON-LD.
- Type providers meet MBrace.
- The dependency manager Paket lets your project reference GitHub source as well as NuGet packages.
- Interactive web development with jQueryUI & WebSharper.
- Support for VS2015 preview included in the latest release of FSharpLint.
- FSharpSupport for ASP.NET vNext is on NuGet.
Videos/Presentations/Courses
- .NET 2015 & Managed Languages.
- Introducing F# For The Enterprise – Lincoln Atkinson.
- Taming GPU Threads with F# and Alea GPU – Dr. Daniel Egloff.
- Type providers (from the very beginning to the implementation) – Sergey Tihon.
- F# Streams – Gian Ntzik.
- Programming Games in F# – Andrea Magnorsky.
Blogs
- Does the Paradigm You Use Make a Difference? – Simon Cousins.
- Blogging with F# on GitHub Pages – Colin Bull.
- Adopting F# in a C# Shop – Jamie Dixon.
- Introducing Cricket (formerly FSharp.Actor) – Colin Bull.
- Introducing FsReveal – Beautiful, version controlled presentations in the browser – Steffen Forkmann.
- Self-hosted WebSharper application template available – WebSharper Core Team.
- Month of spreading F# love in Poland – Michał Łusiak.
- F# script reminder – Robert Nielsen.
- Progressive F# Tutorials London 2014 – Phil Trelford.
- Suave in a Docker container on MS Azure using Xamarin Studio and Mono on a Mac – Sebastian Fialka.
- Functional languages rack up best scores for software quality – Paul Krill.
- Solution to the prisoner puzzle
F# vNext News
- Recently accepted PRs:
- Recently proposed PRs (please review and comment):
- Recently proposed ideas:
New releases
- Paket 0.14.1 with new find-refs command, support for linking of HTTP files, better F# REPL support and use of Nuget v3 API.
- FsPickler v1.0.4 with ExceptionDispatchInfo serialization support in the CLR.
- FSharp.TypeProviders.StarterPack v1.1.3.52.
- FSharp.Compiler.Service v0.0.79.
- fsharp-mode (20141111.906)
That’s all for now. Have a great week.
Previous F# Weekly edition – #45![]()
F# Weekly #45, 2014
![]() |
![]() |
![]() |
![]() |
Welcome to F# Weekly,
A roundup of F# content from this past week:
News
- Legally establishing the F# Software Foundation – FSSF needs your help.
- F# Advent Calendar 2014.
- FsReveal has just moved to fsprojects on GitHub.
- Elucidate – an alternative reading mode that renders markdown interspersed in code.
- XPlot – a data visualization package for F# powered by popular JavaScript charting libraries.
- Xamarin for Students is FREE.
- Prototyping FSharpSupport for ASP.NET vNext.
- BSON type provider was presented.
- mForex.API.FSharp – an official F# binding for mForex API.
- New type provider opportunity “JSON-LD Type Provider“.
Videos/Presentations/Courses
- Functionland: A Romance of Many Paradigms – Troy Kershaw.
- F# Introduction by Jorge Fioranelli.
- Реактивное Программирование Роботов с помощью Fsharp и Mono – Stas Fomin.
- F# on the Web. 0 to Production in 12 Weeks – Ryan Riley.
- A practical theory of language-integrated query – Philip Wadler.
- FSLAB: DOING DATA SCIENCE WITH F# – Tomas Petricek.
- TAKING YOUR CRAFT SERIOUSLY WITH F# – Tomas Petricek.
Blogs
- Loewensberg re-animated – Phil Trelford.
- Michael Newton presented his blog series “Typeprovider“.
- Recommended F# Beginner Resources – Mike Janger.
- Halloween Project (Garage Of Mystery) – Jamie Dixon.
- Blogging with F# on GitHub Pages – Colin Bull.
- Flux Compression (Redux) – Dave Thomas.
- F# Workshop: Learning a New Language – Mjolner.
- Ring probabilities in F#.
- Programming for Google Cardboard on iOS using F# – Larry O’Brien.
- Month of spreading F# love in Poland – Michał Łusiak.
- Puzzle: prisoners and switches.
- Safer Programming with F# – Pattern Matching – Ankit Solanki.
- Running F# on a PlayStation Vita – Anthony Brown.
F# vNext News
- Recently accepted PRs:
- Recently proposed PRs (please review and comment):
- Recently proposed ideas:
- Properly print ‘None’ for option types from FSI
- Avoid boxing when comparing value types
- Allow parameterless constructors in structs
- Add a Option.getOrDefault method as a curryable alternative to defaultArg
- An CLIVirtual attribute
- (structural subtype) polymorphism for discriminated unions [similar to polymorphic variants in OCaml]
- Allow negative indices in indexing and slicing like python
- Do not lock type provider dlls when compiling and by VS editor
- Warn when literal attribute is used with lowercase name
- Allow to declare new types inside functions
- Code Contracts support
New releases
- Paket v0.13.0-alpha00 with FSI support.
- FAKE 3.9.0 with support of Xamarin iOS archiving helper and x64 packages.
- FSPowerTools: v1.6.1 with Task List comments, major updates on Go to Metadata and many improvements.
- FSharp.Compiler.Service 0.0.76.
- FSharp.TypeProviders.StarterPack 1.1.3.50.
- Streams v0.2.5 with a new push/pull design and new pull-based combinators Stream.toSeq/zipWith.
- Aardvark.Base.FSharp v1.0.5.
- Accepted fsharp 3.1.1.26+dfsg2-3.
- Nu Game Engine Release v0.991.
- FSharp.Azure v1.0.1.
That’s all for now. Have a great week.
Previous F# Weekly edition – #44![]()




















