O'Reilly Book Reviewer

I review for the O'Reilly Blogger Review Program

Monday, August 22, 2011

Book Review: Functional Programming for Java Developers by Dean Wampler (O'Reilly)

Functional Programming is back! After 2-3 decades of Object Oriented Programming which made languages like Lisp seem like a dinosaur, the software community has turned its focus back on FP. And with good reason! OOP has fallen short of the demands of concurrent programming leading to convoluted code that only a few experts can read and write. New FP languages today like Scala or Clojure address this issue by providing a robust language that can run on the good old reliable JVM. That way you don't need a huge change in your infrastructure - just add a few jars and you are ready to dive in. This book will teach you how.

If you have been wondering about Software Transactional Memory, The Actor Model, MapReduce, and other buzz words that have been going around lately, its time to pick this book. The author does a fine job of explaining what FP is, what it aims to solve, when to use it, and how to get started with it. The author explains very well the differences between imperative (OOP) and declarative (FP) programming.

This book is a brief introductory book that scratches the FP arena. By no means there is any depth provided. Developers looking for developing expertise in a particular FP language have to look elsewhere but might benefit from reading this book to get a good overview.

Tuesday, August 2, 2011

Book Review: Just Spring by Madhusudan Konda (O'Reilly)

Spring has become a huge universe! In fact, it has grown so much that any book you buy would be intimidating at first. Even well-known authors have difficulty in keeping it simple. They go into details of how to do the same thing in different ways (annotation, autowiring, etc, etc) that at the end the user is flabbergasted. Enter the "Just Spring" book. This book is exactly that, just Spring! Plain and simple. No noise, no dust.

In just 5 chapters, I learned a great deal about the fundamentals of Spring. Enough to get me started on enterprise level projects where I can build on my foundation. The power of this book lies in its simplicity. Most books on Spring are around 300-400 pages. This book is 62 pages. What can one learn in 62 pages, you might ask! Here's what I learned in one weekend - Basic mechanisms of dependency injection, bean life-cycle, bean instantiation techniques, autowiring techniques, event handling, JMS, and data integration. You might complain that it didn't cover bells and whistles like Spring Security, Spring Webflow, etc, etc, but these are add-ons that you can grasp easily once you get your foundation strong. I applaud the author for keeping it simple yet useful and O'Reilly for publishing it.

Saturday, July 23, 2011

Book Review: Practical Packet Analysis using wireshark to solve real-world network problems by Chris Sanders (No Starch Press, Inc)

Unlike other books on networking that I have read, this book assumes nothing about the reader. Any general IT professional should be able to pick this book up and pick up the concepts right away. The author starts with very basic concepts and builds slowly and steadily over the subsequent chapters. I learned how to sniff packets and analyze them which has become my new favorite hobby. Chapters 1 and 2 start with basic networking concepts, protocols, layouts, etc. Chapter 3 explains how to get started with Wireshark, the tool of choice for this book. Chapter 4 explains how to analyze the packets that were captured. Chapter 5 delves deeper into advanced Wireshark features. The rest of the book goes deeper into explaining lower and upper level protocols, real-world scenarios, slow networks, and security.

Recently I had a crisis at work. A group of hackers had attacked the corporate network and as a result everything was shutdown for security reasons. As the network was gradually opened up for business, our business partners were not able to call some of our web services. That was a puzzling thing as other web services were reachable. As a lead for the application development team I had no idea how to debug this except to set up a SWAT team meeting with the infrastructure and networking team. I was the weakest link in the room as I had no idea what the terms and terminologies meant. Needless to say, I was embarassed. The one thing that was spoken about frequently in those meetings was Wireshark. I couldn't find a good book on Wireshark at that time so the moment this book came out, I decided to review it. I am really impressed by this book. Not that I am waiting for a crisis at work, but the next time I would definitely be well-prepared thanks to this book.

Sunday, July 17, 2011

Book Review: Building and Testing with Gradle by Tim Berglund and Matthew McCullough

My first reaction when I heard of Gradle was a sarcastic "Yay! Yet another build tool that will frustrate me when I use it on my enterprise projects". However, as I read through this book, I found a new promise to liberate me from the complex world of Maven. The authors have done a fantastic job of explaining how Gradle provides the flexibility of Ant, dependency management style of Ivy, the intelligent defaults of Maven, the speed and hashing of Git, and the meta-programming power of Groovy.


Highlights of this book:


- Easy to follow, lots of examples. I was able to run most of the examples without any hassle.


- You don't have to know Groovy to understand this book


- The last chapter covers how to do enterprise level multi-project builds. That was really helpful.


- No clutter or unnecessary information that you can find elsewhere. Nice, small book of 110 pages.


- I was able to complete this book in about 3 hours and I am a slow reader!


I had the pleasure of attending the No Fluff Just Stuff conference in 2011 and boy, was I impressed! Both the authors are very well respected in this field. If you have been living in the complex world of Maven where you are afraid to touch something because it might break something else, then this book is of you. If your enterprise is going to continue to use Maven, it does not in any way mean that you cannot unleash the power of Gradle. This book will teach you how to do that. As an added bonus, this book has been reviewed by Ken Sipe, the CTO of Gradleware, someone I know and respect!

Saturday, July 16, 2011

Book Review: Mastering the Nikon D7000 by Darrell Young

Nikon D7000 is Nikon's best DSLR camera ever and I have no words to express that in any language (and I know five!). Just saying that you own one is enough to elevate your status in the Nikon community. However, pictures speak louder than words and your elevated status would be short-lived if you take sucky pictures because you didn't understand the features that make this camera awesome. This book by Darrell Young is just the one you need to squeeze the juice out of your Nikon D7K. That is after you have woken up from reading the bland user manual that shipped with the camera.

The author has neatly put "My Recommendations" at the end of each major section and "My Conclusions" at the end of each chapter. This would help in refreshing your memory periodically since you wouldn't have to read the whole book over again. This book cleared my understanding of things I didn't follow in the user manual. Example, "Auto Gain" when shooting with "Multiple Exposure". Thoughout the book valuable tips are given plus the author has provided supplemental material (thus reducing clutter in the book) on his website (firmware upgrade, video editing software, understanding depth of field, aperture, and shutter speed, etc).

This book will help you get the "oohs" and "aahs" from your family, neighbors, friends (including facebook friends), and curious strangers. Master this book and become an instant celebrity like I did!

Wednesday, July 13, 2011

Book Review: Virtualization - A Manager's Guide by Dan Kusnetzky

Unless you have taken a sabbatical for the last couple of years, virtualization buzz words have become commonly talked about topics in IT organizations including infrastructure and application development. In fact, even business contacts have started taking notice of virtualization and are frequently questioning the IT department on what initiatives are being taken on that aspect. This concise book puts all flavors of virtualization together neatly organized in to different chapters.

The first chapter gives an overview of the entire stack of virtualization - Access, Application, Processing, Network, and Storage along with the broader aspect of Security and Management across each layer. Chapter two explains Access virtualization with a nice flow of what it is, when is it the right choice, providers, and a few examples. This flow is maintained in the remaining chapters covering the other types of virtualization mentioned above.

Overall, I found this book to be very concise as a pocket guide covering virtualization broadly. Indeed, it is targetted at managers since it is at a high-level. If you are a techie looking for depth, you are better off looking elsewhere.

Tuesday, June 28, 2011

Book Review: Packet Guide to Network Protocols by Bruce Hartpence

Before I start my review of this book, let me narrate a story. Recently I had a crisis at work where certain users were not able to invoke web services. Of course, we had well-tested software using agile methodology and all that. My team knew our front-end and our backend very well. What we weren't well-versed with was the connection by which our front-end communicated with the backend. We were in a war room with the networking experts for 2 days and I couldn't understand jack of what they were talking. I was clearly an "outsider" in their elite circle. Hence, I got interested in this book.

This book is divided into seven chapters starting with networking models (OSI, TCP/IP) and ending with subnetting. Most of the material is dry but the author keeps the flow going steadily by providing screen printouts of Wireshark and explaining it with his pedantic style. Questions, answers, and exercises at the end of each chapter reinforce your learning. I liked chapter 5 (Network equipment) and Chapter 7 (Subnetting) very much as it is explained well and also I can relate it to my work.

This book is certainly not for the faint of heart. It is not your grand-father's "Hello World" book. In fact, it reads like a computer science text book. The author has pain-stakingly tried to simplify it as much as he could. As Einstein said, "Keep it simple but not any simpler". A background in networking would help refresh your knowledge and this book serves exactly that. If you are an absolute beginner looking for a basic book on networking, this book is not for you. However, if it's been a few years since your last networking class, you should be able to pick things up with the help of this book.