TrueSkill in F#

Following the publication of the F# source code for the TrueSkill Through Time paper, we have used the same inference library code to demonstrate how the original TrueSkill algorithm can be coded. In the attached source code, only the program.fs file is different to the TrueSkill through Time blog post and it builds up the…


Statically link with ILMerge

Today Ralf & I were looking at ways to bundle up a bunch of .Net assemblies into a single assembly for use within our group; the goal to expose only the functionality we want and only need to reference one assembly in our projects. Enter command line app ILMerge by Michael Barnett of Microsoft Research which lets you merge…


BabyJack Inline Video Card Game

Its been yet another wet and windy bank holiday weekend here in the UK, so I decided to involve the family and create a video Blackjack called BabyJack, despite the baby’s name being Sean not Jack :). Just press the Play button below to pit your wits against the baby… For those of you interested in how it was done; the video was…


Lunar Lander Retro Vector XNA 2.0 Game sample written in F#

While travelling to Microsoft HQ in Redmond earlier in the year for the annual TechFest event – for some fun I decided to have a go at writing a small retro game in F# using XNA 2.0, and attached are the results. When moving over to Pacific time I usually find myself waking up at 4am for the first few days, leaving…


TrueSkill Through Time

In December 2007, we published a paper about the application of TrueSkill to all recorded data of professional and semi-professional Chess play from 1850 to 2006. The dataset can be obtained from ChessBase. We are very happy to be able to release the F# source code that performed all these massive computations. A few things…


F# Custom Exceptions

This post tries to explore exception handling in F# with custom exception types. Some background on .Net exceptions Exceptions happen: “Programs must be able to uniformly handle errors that occur during execution. The common language runtime greatly assists the design of fault-tolerant software by providing a model for notifying programs of errors in a uniform way. All…


Silicon Minds Challenge (+ submission sample)

On the 8th December 2007 the Silicon Minds challenge was launched at the Machine Learning and Games workshop of the NIPS conference in the picturesque Canadian ski resort of Whistler. The challenge is to push the limits of Artificial Intelligence while building a game with XNA Game Studio 2.0. The main prize an opportunity to interview for an internship with Microsoft…


Commercial Users of Functional Programming (CUFP) 2007

At the beginning of this month (October) I attended and presented at the CUFP event in Freiburg, Germany. The talk was on some of the work our group has been doing over the last year using F# including the XBox 360 title Halo 3 and on predicting ad clicks for Windows Live. The slides (thanks Ralf) are now available online and for…


Composing a video game in F#

This week it was my opportunity to present a topic for 15 minutes at the MLP group’s ritual Tuesday afternoon tea and cakes session (yes – we are based in the UK). I thought it might be fun to knock up a little game with the Microsoft functional programming language F#. With only a few hours to spare at the weekend…


Schedule Tasks in Windows XP

We have an F# console app which processes some gigabytes of data over a couple of hours. We wanted to run this on a specific machine daily in the early hours of the morning. The easy answer Windows XP’s Scheduled Tasks. Just click Start > All Programs > Accessories > System Tools > Scheduled Tasks….