Free thinking and free code have two things in common: a lot of the best work has already been done, and we can re-use it.