practising techniques demonstrated in Programming Collective Intelligence