We have too many topics on this subject. The most recent one can be found here.