a cookbook for programmer