Great question on Hacker News with so many good answers already.