This blog post is incredibly informative.