Notes from Socrates 2015

The 5th Socrates Conference in Germany has been my first continental Socrates Conference (I’ve been to UK twice plus another one in the Canaries). What a mind blowing unconference! I got even more value from Socrates than I expected! this has been the biggest in...

Pdf made up of pictures

I had to embed 50 pictures in a pdf file for print – don’t ask me why. Dependencies (on Debian): apt-get install imagemagick apt-get install pdftk This is the Python script. It uses commands “montage” (from imagemagick) and pdftk: from...

Using C# Collections

There are many ways to work with collections. We are following Microsoft Guidelines for Collections  plus some ideas that Kent Beck explains in Implementation Patterns. I’ve created a repository with code examples so that anyone can play with them. All the unit...

Identifying aggregates

An aggregate is particular kind of entity so first of all we need to know whether the model is an entity or a value object. Once we know it’s an entity let’s figure out whether it is an aggregate. A transaction should modify a single aggregate instance so...

Te recomiendo escribir en un blog

Cualquiera que esté aprendiendo puede beneficiarse de tener un blog. En la profesión de desarrollador uno aprende constantemente por lo que tener un blog es imprescindible en mi opinión. Es importante que entiendas que estas escribiendo para tí, para tu...

Productive Pair Programming

The title of this post is redundant, pair programming is already a productivity technique. That’s my understanding or pair programming not just two people sitting together. Two people may code together for learning or mentoring purposes, however we pair for...

Polymorphic Equality

The default generation of Equality members provided by Resharper let you choose three different implementations when overriding the “Equals” method in a class (Alt+Insert -> Equality Members): The default choice is “Exactly the same type as...

What is a ViewModel?

A ViewModel is one of the three parts that comprises the MVVM (Model View View-Model). This pattern is a variation of the Presentation Model (M. Fowler). In the Presentation Model, as opposed to Passive View, the “controller” doesn’t hold any...