Jekyll in Docker

I honestly hate when my operating system is bloated with tons of unnecessary stuff. I was always scared to look at the list of installed apps on the brand new laptop. One of the apps that I was installing all the time and used it only rarely for blogging was Ruby and Jekyll. I’m not a Ruby developer and I’m not using it for anything else than blogging so I’ve decided to not installing it but still being able to write some posts (even if it is two in a year ;).

I’ve decided to use Docker to solve my problem. If you don’t know what Docker actually is there is a great introduction in official documentation.

read more

Autofac & Decorators

Today I was setting up an infrastructure for a new project and I met the same problem I used to met couple times before - configuring injection of CommandDispatcher with decorators in Autofac don’t look well nor it’s easy to read. So I wrote extension methods to simplify future usage of decorators in Autofac.

read more

CQRS - Simple architecture

Some say: “CQRS is hard!”

Is it? Well, I used to think the same! But when I started writing my first piece of software using CQRS, it quickly turned out that it is rather uncomplicated. What is more, I think that in long term it is much easier to maintain software written in this way.

I have started to think, what is the reason that people see it as hard and complex at the beginning? I have a theory: it has rules! Entering the world with rules is always uncomfortable, we need to adjust to rules. In this post I’d like to prove that in this case those rules are quite digestible.

read more

Event Storming - from events to the model

I bet that all of us, developers, at least once started thinking about a domain model from designing data structures. This way of modelling applied to the complex domain almost always leads us to the solution that is not really effective in dealing with business cases. Moreover it is far from representing the real business domain - it represents a projection that is focused on our data store. The classical way of “producing” models for business domains treats events as a side effects of technical flows, not as a domain’s first class citizens. In the “event storming” domain modelling starts from events, which are assumed to be key points of business workflows. The rest of the domain is built to support events.

read more

k-means - Dive into F#

Some time ago I’ve started to learn F#, and couple days ago I had an opportunity to write something that actually works. I was implementing group of algorithms which are detecting eye movement events in signal recorded by Eye Tracker. During this work I’ve implemented classic ML algorithm: k-means. I’ve tried to make it as generic as possible.

You can find the full source code of this algorithm (and tests) here.

read more