The Bottom Line
Practical Ruby Projects by Topher Cyll is a must have for any Ruby programmer. The techniques taught in this book generally aren't covered in other Ruby programming books and are taught in a very unconventional (but appealing) way. The book is just plain fun and irreplaceable for any Ruby programmer.
- The furthest you can get from a dry programming text, aside from "Why's (Poignant) Guide to Ruby."
- Topics are not covered in other texts.
- The title is slightly misleading as the "practical projects" are not practical.
- The techniques taught by the projects are not listed anywhere, you have to read each chapter.
- Teaches techniques that aren't necessarily covered in other Ruby programming texts.
- Practical Ruby Projects is written in a playful style and is a pleasure to read.
- Each chapter focuses on a single project, but may teach several useful techniques you can apply to your own projects.
Guide Review - Practical Ruby Projects: Ideas for the Eclectic Programmer
Practical Ruby Projects is unique, to say the least. Though Ruby programmers are used to unique, quirky and playful texts, they don't often make it to publication. Practical Ruby Projects stands alone in that respect.
Practical Ruby Projects starts off with a bang. The first chapter is all about making music with MIDI in Ruby. But what it's really about is how to use native dynamic libraries (compiled in C or C++ in either .dll or .so form) from Ruby. This is usually something hidden away in a gem and naturally I just assumed it would be difficult. It's not; it's quite easy and this chapter illustrates that. Right off the bat I learned how to do something significant that I didn't know how to do before!
Combine SVG, Embedded Ruby (ERB) and metaprogramming to produce high-quality SVG graphics.
Creating generic simulations in Ruby, including a coinage simulation that uses the monetary system from the Harry Potter books (Galleons, Knuts and Sickles).
A turn-based strategy game with game board displayed via Cocoa on OSX.
A system for computing genetic algorithms in Ruby, which further expands on the coinage simulator.
Implementing an entire Lisp system in Ruby.
Writing recursive-descent parsers in Ruby.
After reading this review, you may ask yourself "Why would I want such a book?" While you could certainly get by without it, Practical Ruby Projects perfectly embodies the playful spirit of the Ruby community and is a genuinely good and thought-provoking read. You just have to experience it for yourself to see that.