Effective memoization in C#

Imagine you have a function taking a set of arguments and producing (computing) some value in return. Same arguments always produce same result value. The function doesn't depend on any external state and has no observable side effects. This is something called a pure function and is in line with…

Solving Sleeping Barber problem using Nerve

I'm going to write a series of posts on developing software using Nerve. Nerve is an open source .NET library (written in C#) aimed to help writing loosely coupled concurrency friendly code. There're some good alternatives exist for .NET platform (Reactive Extensions for example) but, while beautifully done, the scope…

RabbitMQ cluster with HAProxy on a single Windows machine

Recently I had to deal with RabbitMQ. A lot. For those of you who don't know what it is, RabbitMQ is an excellent messaging software. It's based on AMQP protocol but provides many useful extensions on top of that. What makes it even better is that it's multi-platform, open-sourced, and…