Fine for the most part, and very informational. Also surprised that the code fragments have aged relatively well, by the time of writing this review.
At times, the code logic was wrong, and there were a few errors in the code listings that I had to fix myself. Minor issue for me, but could be a bigger one depending on your experience level.