Programming Collective Intelligence notes