Showing posts with label ruby programming language. Show all posts
Showing posts with label ruby programming language. Show all posts

Distributed Programming with Ruby Review

Distributed Programming with Ruby
Average Reviews:

(More customer reviews)
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 [...])

Click Here to see more reviews about: Distributed Programming with Ruby

"A must have title for the well-rounded Ruby programmer building advanced Rails applications and large systems!" OBIE FERNANDEZ, Series EditorComplete, Hands-On Guide to Building Advanced Distributed Applications with RubyDistributed programming techniques make applications easier to scale, develop, and deploy—especially in emerging cloud computing environments. Now, one of the Ruby community's leading experts has written the first definitive guide to distributed programming with Ruby. Mark Bates begins with a simple distributed application, and then walks through an increasingly complex series of examples, demonstrating solutions to the most common distributed programming problems.Bates presents the industry's most useful coverage of Ruby's standard distributed programming libraries, DRb and Rinda. Next, he introduces powerful third-party tools, frameworks, and libraries designed to simplify Ruby distributed programming, including his own Distribunaut. If you're an experienced Ruby programmer or architect, this hands-on tutorial and practical reference will help you meet any distributed programming challenge, no matter how complex.Coverage includes• Writing robust, secure, and interactive applications using DRb—and managing its drawbacks• Using Rinda to build applications with improved flexibility, fault tolerance, and service discovery• Simplifying DRb service management with RingyDingy• Utilizing Starfish to facilitate communication between distributed programs and to write MapReduce functions for processing large data sets• Using Politics to customize the processes running on individual server instances in a cloud computing environment • Providing reliable distributed queuing with the low-overhead Starling messaging server • Implementing comprehensive enterprise messaging with RabbitMQ and Advanced Message Queuing Protocol (AMQP)• Offloading heavyweight tasks with BackgrounDRb and DelayedJob

Buy Now

Click here for more information about Distributed Programming with Ruby

Read More...

Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series) Review

Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series)
Average Reviews:

(More customer reviews)
There are as many rails tutorials on the web and in book form as there are ruby methods. An infinite expanse of information - most of it leading to heartbreak and frustration.
Hartl, with this book as well as the first venture, takes the reader by the hand and gently guides him/her/it/them/monkeybacon through the world of ruby and ruby on rails with the excitement and ease a master has when taking students along for a ride.
I have a collection of books and tutorials and, WITHOUT FAIL, each and every one of them ends somewhere with some sort of mistake in code that I've never been able to get over (including the first book by Hartl, by the way). Not so with this one. I completed the project outlined in this book. First time that's happened with any of the other books/tutorials.
As I am a functioning idiot, this is no mean feat. It is quite an accomplishment. Not by me, but by the author.
If you are able to view the tutorial videos, those will make your life that much better.
Buy it. Now.

Click Here to see more reviews about: Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series)

"Ruby on Rails™ 3 Tutorial: Learn Rails by Example by Michael Hartl has become a must read for developers learning how to build Rails apps." —Peter Cooper, Editor of Ruby Inside

Using Rails 3, developers can build web applications of exceptional elegance and power. Although its remarkable capabilities have made Ruby on Rails one of the world's most popular web development frameworks, it can be challenging to learn and use. Ruby on Rails™ 3 Tutorial is the solution. Leading Rails developer Michael Hartl teaches Rails 3 by guiding you through the development of your own complete sample application using the latest techniques in Rails web development.

Drawing on his experience building RailsSpace, Insoshi, and other sophisticated Rails applications, Hartl illuminates all facets of design and implementation—including powerful new techniques that simplify and accelerate development.

You'll find integrated tutorials not only for Rails, but also for the essential Ruby, HTML, CSS, JavaScript, and SQL skills you'll need when developing web applications. Hartl explains how each new technique solves a real-world problem, and he demonstrates this with bite-sized code that's simple enough to understand, yet novel enough to be useful. Whatever your previous web development experience, this book will guide you to true Rails mastery.

This book will help you

Install and set up your Rails development environment
Go beyond generated code to truly understand how to build Rails applications from scratch
Learn Test Driven Development (TDD) with RSpec
Effectively use the Model-View-Controller (MVC) pattern
Structure applications using the REST architecture
Build static pages and transform them into dynamic ones
Master the Ruby programming skills all Rails developers need
Define high-quality site layouts and data models
Implement registration and authentication systems, including validation and secure passwords
Update, display, and delete users
Add social features and microblogging, including an introduction to Ajax
Record version changes with Git and share code at GitHub
Simplify application deployment with Heroku


Buy Now

Click here for more information about Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series)

Read More...