Your Garage botysf16 Amazon Fashion Learn more Discover it PME Fire TV Stick Subscribe & Save Patriotic Picks Shop-by-Room Amazon Cash Back Offer AllOrNothingS1 AllOrNothingS1 AllOrNothingS1  Amazon Echo  Echo Dot  Amazon Tap  Echo Dot  Amazon Tap  Amazon Echo Introducing new colors All-New Kindle Oasis AutoRip in CDs & Vinyl Segway miniPro

Customer Reviews

4.3 out of 5 stars4
5 star
4 star
3 star
2 star
1 star
Format: Paperback|Change
Price:$38.22+ Free shipping with Amazon Prime

Your rating(Clear)Rate this item
Share your thoughts with other customers

There was a problem filtering reviews right now. Please try again later.

on November 15, 2010
This book provides an excellent survey of distributed programming techniques using the Ruby platform. As a software engineer who is largely unfamiliar with Ruby, but very familiar with distributed programming, I was able to leverage the book both to understand "how you do things" in Ruby, as well as to introduce myself to the (libraries, framework tools, etc.) which make distributed programming a reality. My experience in reading this book was that it had a great flow, and a very clean presentation on the subject matter. I walked away with a deeper understanding of the Ruby language itself, as well as a mapping from "strategy/design concept" to "implementation toolkit" should I have a need to write a distributed service in Ruby. In summary, the book provides an excellent survey of both distributed concepts, as well as several options available on the Ruby platform for each, covering: DRb, Rinda, RingyDingy, Starfish, Distribunaut, Politics, Starling, working with Rabbit MQ, BackgrounDRb, and Delayed Job.

Much like the Ruby language itself, the text is very concise in explaining even fairly complicated concepts. It achieves this focus of delivery by building on fundamental concepts, providing a very simple starting point, and layering on additional "would like to" one at a time, without confusing the underlying intention. This pattern is present both at the micro level, as each chapter introduces a new distributed challenge and leaves you with a working knowledge of what the Ruby space has to offer for solutions implementations; as well as at the macro level, as the topics of each chapter progress from very simple things like remote procedure calls and data marshalling, to advanced topics such as an remote work processor, distributed work queue based on a map-reduce framework or a message queue service. While the phrase "map-reduce" is mentioned in several topic headings, there is no actual example of a problem solved with a map and reduce against a distributed dataset. The final topic, although not directly a distributed programming concept, is useful information for any production system that does any work of interest: a work scheduler using BackgrounDRb.

In a similar way, each chapter presents a very tiny example app, with complete code, and a walk through, distinguishing between the concept at hand, and the library specific implementation semantics. Also, similar examples are used where appropriate, making it easier to understand the specific nuances of a particular library. Mirroring the measured build up of the text, the code samples evolve in a simple and natural way over the course of a given topic. Although one might complain that there is little imagination in the examples, this focus ensures that the reader walks away with a clear understanding of the "Hello World" level implementation - details are left up to further research.

My only complaint in terms of coverage is that the book is overly "Ruby-only" focused. As an engineer working in a largely heterogeneous environment, I would be interested in a comparison of the internal "Ruby" only packages (e.g. DRb or Rinda) vs. tools that are a bit more cross platform: e.g. in this case, a comparison against a more generalized, stack agnostic marshalling framework (e.g. Google's Protocol Buffers, Facebook's Thrift, Cisco's Etch, or Microsoft's M). In particular, this would signify where the Ruby platform offers a particular advantage for a particular kind of distributed problem. However, as the title goes, this text is focused on the Ruby specific implementations of various technologies, instead of how Ruby as a language plays (with others) in these various areas.

Overall, I would say this is an excellent resource to use as a pointer for further research. If you are developing distributed systems using Ruby, then you are likely already aware of a certain number of these libraries; the survey of alternative options might be informative. For someone like myself who is familiar with distributed systems development but relatively ignorant of Ruby, it proved to be an excellent introduction both to the language, as well as to the Ruby specific semantics for implementing a basic distributed design (e.g. marshalling, task / job execution, etc.)

(Reposted from Bay APLN [...])
0Comment|4 people found this helpful. Was this review helpful to you?YesNoReport abuse
on January 9, 2014
I graduated with a degree in Computer Science in 2010 and started writing Rails apps in 2012. I'd never had any experience with distributed systems but needed to learn about them for a project at work. I picked up this book after reading some articles online about distributed systems and noticing a lack of Ruby examples. This book does a great job of giving the reader a basic knowledge of what distributed systems are and different varieties of those systems. The book then gives concrete examples of how to implement the abstract systems it previously mentioned in Ruby. Obviously, some of the tools are outdated or replaced with better versions, but the concepts this book covers gave me a solid base from which to build my distributed system. In particular, the author's explanation of dRb and other low level tools lets the reader understand how other, more complex tools and gems work.
0Comment|One person found this helpful. Was this review helpful to you?YesNoReport abuse
on February 14, 2010
If you are a ruby programmer looking to expand your knowledge on the DRB library, this book is an excellent & in-depth dive into the subject. Kindle owners will appreciate the e-book pricing.
0Comment|2 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 13, 2009
This book reperents a major step forward for object-oriented design using RoR. I have found ruby an interesting language and have used this book to be a resource for my object-oriented design knowledge requirements. This book has changed the way I create distributed databases giving me a better knowledge of the best practices that go into creating such things. I will use this book as a reference guide for programming/software development need moving forward manning the efforts to create my apps. Thank you Mark for helping me better understand the ruby programming language for creating web apps.
0Comment|4 people found this helpful. Was this review helpful to you?YesNoReport abuse