Monday, April 23, 2012

Think Complexity book review

Think Complexity, by Allen B. Downey

I've seen the title of this book several times, so when it appeared on the list of books in the O'Reilly blogger review program, I had to grab it.

I'm interested in algorithms, complexity, and programming. This book's table of contents covered all those things, but with a huge caveat: a very low page count (158 pages for the PDF version). Most topics got only a few pages, so how useful could this book be?

Well, the author clarifies that up front: the book is meant to be a supplemental text for either an algorithms, intermediate programming, or special topics course. As such, the book does a decent job: it doesn't cover any particular topic in great depth, but it serves as an interesting smorgasbord of problems and algorithms around what Computer Scientists call Complexity. As either a quick sampler for students (or teachers, looking for some interesting topics), or as easy-reading for more seasoned developers, the book is worth picking up and reading, but be prepared to spend the real time on your own, digging into the details that the author only covers briefly.

A high point for me (as a former educator) is the inclusion of student-written chapters. The author required his students to produce analyses similar to the early chapters, and he chose a few of the better results to include as final chapters (and he encourages others to make submissions to his website, for possible inclusion in future editions). The final chapter (on student cheating) is especially relevant to many students and teachers. The game-theoretic approach to finding stable systems for managing cheating is an interesting approach.

My recommendation: read this review and the author's introduction. If you fit one of the categories he is targeting, then you'll probably find the book interesting.

[Disclaimer: I got this book for free as part of the O'Reilly blogger review program I was not required to write a positive review. The opinions I have expressed are my own. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255 : “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”]

Sunday, March 11, 2012

Machine Learning for Hackers book review

Buy this book.  I got one for free via the O'Reilly review program,
but I'll probably buy a paper copy, just so that I can mark it
up and loan it out to others.

This book is everything it is advertised to be.  It has enough of
a statistics refresher to to bring the average hacker up to speed,
and then it dives right in, using R as the language of choice to
cover several common machine learning tasks.

It's not a gentle introduction to R, but code samples are
carefully explained (be prepared to look at R's documentation if
you aren't familiar with R, though).  The book doesn't teach R
programming, but it does cover several useful libraries for
machine learning (including mining textual data).  The authors give
good presentation advice, though (e.g., they  point out that a little
extra time given to the presentation can make the difference between
an amateurish presentation versus a professional one, and they show
the difference).

Two items deserve special note:  first, while the book was in press,
the API used to generate the data for the chapter on analyzing social
graphs was removed, and the authors had to make a decision to either go
with the existing data, or wait and see what new APIs were made available.
The authors chose to provide their sample data and go with their
example rather than wait.  That was a great choice, as developers have
to deal with the real world, where vendors remove and change APIs.  I was
impressed at how they handled that issue.

The second item is not-so-great: the section on the Support Vector Machine
was too cursory.  It read like an editor or reviewer had said "hey, you
should mention SVM," and so the authors added a section.  But that material
was not given the same level of treatment as other contents, and,
as a result, the book stops on a somewhat off note.  A better
choice would have been to simply skip that chapter completely.

Overall, though, this is a great book.  It's hands-on, filled with
useful and interesting examples and advice, and it will get you moving
towards solving your own machine learning problems.

[Disclaimer: I got this book for free as part of the Oreilly blogger review
program I was not required to write a positive review. The opinions I have
expressed are my own. I am disclosing this in accordance with the Federal
Trade Commission’s 16 CFR, Part 255 : “Guides Concerning the Use of
Endorsements and Testimonials in Advertising.”]

Sunday, February 26, 2012

Test-Driven Infrastructure with Chef

I just finished Test-Driven Infrastructure with Chef, and I was disappointed.  It's a short book (88 pages if you read the paper version), and out of the 7 chapters, only one (chapter 6) contains what I expect from an O'Reilly book.

But it's hard to blame the author: he didn't claim the book is "Learning Chef" or "Programming Chef". 

The book is an appetizer of what it claims to be: coverage of how to do test-driven infrastructure using Chef.  Unfortunately, the author takes up most of the book to explain what he means by "Test-Driven Infrastructure", and the page count is so small that there simply is not enough meat to satisfy hungry readers.  Additionally, readers who are already familiar with Behavior-Driven Development and DevOps won't find much new here.

My suggestion: skip this and wait to see what the author produces in his forthcoming book on Chef itself.

 [Disclaimer: I got this book for free as part of the Oreilly blogger review program I was not required to write a positive review. The opinions I have expressed are my own. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255 : “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”]