Customer Reviews

4 Reviews
5 star:
4 star:
3 star:    (0)
2 star:    (0)
1 star:    (0)
Average Customer Review
Share your thoughts with other customers
Create your own review
Most Helpful First | Newest First

4 of 4 people found the following review helpful
4.0 out of 5 stars An excellent survey of distributed systems programming in Ruby, November 15, 2010
This review is from: Distributed Programming with Ruby (Paperback)
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 [...])
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

4.0 out of 5 stars Great Intro To Distributed Ruby (and Distributed Computing in General), January 9, 2014
Verified Purchase(What's this?)
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

1 of 4 people found the following review helpful
4.0 out of 5 stars Targetted Read, February 14, 2010
Chris Tusa (Covington, LA) - See all my reviews
Verified Purchase(What's this?)
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

3 of 17 people found the following review helpful
5.0 out of 5 stars The Best Object-oriented Design Book I have Read about Ruby on Rails best Practices, November 13, 2009
This review is from: Distributed Programming with Ruby (Paperback)
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Most Helpful First | Newest First


Distributed Programming with Ruby
Distributed Programming with Ruby by Mark Bates (Paperback - November 15, 2009)
$39.99 $34.69
In Stock
Add to cart Add to wishlist
Search these reviews only
Send us feedback How can we make Amazon Customer Reviews better for you? Let us know here.