Check out this new book from Mark Van Steenwyk

Todd Grotenhuis @toddgrotenhuis