Programming

F# – Extending Discriminated Unions using marker interfaces

One of the problems with using F#’s Discriminated Unions is that they are not extensible, in that all your union cases must be specified inside one Discriminated Union (abbreviated to DU from this point) type and you can’t inherit from an existing DU type to add additional union cases. In most cases, having to specify …

F# – Extending Discriminated Unions using marker interfaces Read More »

Slides and Source Code for my webinar with PostSharp

Following my recent webinar with SharpCrafters on how to setup pseudo real-time performance monitoring using Aspect Oriented Programming and Amazon CloudWatch, I’d like to say thanks to the guys for having me, it was a great fun For anyone interested, the source code is available at: http://aop-demo.s3.amazonaws.com/RTPerfMonDemo.zip If you want to run the demo console …

Slides and Source Code for my webinar with PostSharp Read More »

F# – Serializing F# Record and Discriminated Union types

I love using F#’s Record and Discriminated Union types, they work nicely with pattern matching inside your F# code and can often alleviate some of the ceremony involved around creating and using a complex object hierarchy. However, on the odd occasion when you need to serialize them into JSON/XML/Binary format, it might not be immediately …

F# – Serializing F# Record and Discriminated Union types Read More »

Pseudo RealTime performance monitoring with AOP and AWS CloudWatch

This is something I’ve mentioned in my recent AOP talks, and I think it’s worthy of a wider audience as it can be very useful to anyone who’s obsessed with performance as I am. At iwi, we take performance very seriously and are always looking to improve the performance of our applications. In order for …

Pseudo RealTime performance monitoring with AOP and AWS CloudWatch Read More »

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close