There is another whole massive thread about all this already. Maybe combine the two?