I build methods in R, Rust, and C++. When I have time I write about what I learn.
Thinking in R is a free book on R's functional roots: lambda calculus, Scheme, S, and what that lineage means when you sit down to write code. 33 chapters, from first function call to metaprogramming.
Null Hypothesis Accepted is a blog about probability, paradoxes, and the small mathematical surprises hiding in ordinary questions. Some posts are about big things like the silence of the galaxy, others about smaller puzzles like the ratio of two random numbers or what it really means to be "right" about something uncertain. Mostly it's a place for ideas I got curious about and couldn't put down.
R packages on CRAN. RESOLVE is a neural network framework for species distribution modelling.