The aim of this note is to present an elementary proof of a variation of Harris' ergodic theorem of Markov chains. This theorem, dating back to the fifties essentially states that a Markov chain is uniquely ergodic if it admits a "small" set which is visited infinitely often. This gives an extension of the ideas of Doeblin to the unbounded state space setting. Often this is established by finding a Lyapunov function with "small" level sets. This topic has been studied by many authors (cf. Harris, Hasminskii, Nummelin, Meyn and Tweedie). If the Lyapunov function is strong enough, one has a spectral gap in a weighted supremum norm (cf. Meyn and Tweedie). Traditional proofs of this result rely on the decomposition of the Markov chain into excursions away from the small set and a careful analysis of the exponential tail of the length of these excursions. There have been other variations which have made use of Poisson equations or worked at getting explicit constants. The present proof is very direct, and relies instead on introducing a family of equivalent weighted norms indexed by a parameter $\beta$ and to make an appropriate choice of this parameter that allows to combine in a very elementary way the two ingredients (existence of a Lyapunov function and irreducibility) that are crucial in obtaining a spectral gap. The original motivation of this proof was the authors' work on spectral gaps in Wasserstein metrics. The proof presented in this note is a version of our reasoning in the total variation setting which we used to guide the calculations in arXiv:math/0602479. While we initially produced it for that purpose, we hope that it will be of interest in its own right.