Communications of the ACM (Association for Computing Machinery New york, 2004)