Principles of Supporting Social Networks in Community Programming