Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference