a work on process

Viewing posts tagged: apress

book sleeve for Practical Ruby for System AdministrationIf you’ve encountered Ruby primarily through Rails and know it chiefly as an elegant tool for writing web applications it’s easy to miss its longer history as a tool for systems administration. Before Rails made Ruby the language-du-jour sysadmins bore much of the responsibility for keeping it alive, with the result that it has a suite of libraries helpful for server monitoring and a range of other administrative tasks.

Author AndrĂ© Ben Hamou is clear that his book is not an exhaustive guide to using Ruby for systems administration. Rather than try to cover every possible context he provides an introduction to the language and some of its key libraries intended to give a feel for how it might be used and why it leads to succinct and expressive solutions. A number of the more important libraries for working with network protocols and files are covered, and there’s a good introduction to rubygems and how they can be used and created.

Having not done much work with Ruby on the command line I found the first couple of chapters, which cover command-line switches that can help with one-liners for file processing, particularly informative, though I suspect I’ll be referring back to them for a while until the different options take hold. As with the book as a whole those chapters are clear and to-the-point, helped by a presumption that the reader has a good understanding of the problem space and some experience with using scripting languages to simplify their life.

Don’t go into this book expecting to come away ready to work as a sysadmin. That’s not its intention. Nor is it a comprehensive guide to ruby, and you’ll probably still want a good language reference to go with it. But it provides a number of helpful hints and a good sense of how robust scripts can be built quickly and simply with ruby, and there are likely to be a few helpful tricks for most readers.

Disclaimer: I was sent a copy of this book for review by the publisher. You can find it at apress, amazon US, amazon UK and all sorts of other places.

Recommend this post:

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

 

Practical Rails Projects is a weighty tome, coming in just shy of 600 pages, which led to this review taking a little longer than it otherwise might: not just because the book took a while to get through, but also because it wasn’t quite so practical to lug it on the bus as some of the others I’ve recently covered. A result of that heft is a fairly comprehensive volume, but one that doesn’t feel quite so consistent as it perhaps should.

Eldon Alameda has written the book for people who have some previous Rails experience or may have cracked open one of the introductory books on offer, but who want to learn the framework by observing a number of working projects. In some ways that leads to overlap with a book like Practical Rails Social Networking Sites, but whereas that built up one example this book covers seven ranging from a system to track progress through an exercise programme, to an appointment scheduler that interfaces with 37signals’ Highrise using ActiveResource.

The first few projects proceed at an even pace and are likely to be helpful to a newcomer to Rails, there’s a fair bit of overlap with examples available in other volumes, but they work well together. While the author discusses the decision to skip over the writing of tests and/or specs, it did seem that in a volume of this size that topic should have been given a little space, even if that involved sacrificing one of the sample projects.

Unfortunately the book loses pace a little later on, particularly with the introduction of the Ext JS library which is used to build user interfaces but ends up occupying far more space than the actual Rails code in the later chapters. Obviously Javascript frameworks are an important part of building many modern web applications and Ext JS is a worthy entrant, but the way it was used seemed quite inappropriate. The admin interfaces built with it would not gracefully degrade for users without javascript; there was no discussion of progressive enhancement or even of why the decision had been taken to build such an inaccessible system. When careful use of respond_to blocks can make progressive enhancement so straightforward in Rails, this seems a missed opportunity. At the very least the decision making process should have been documented, and ideally a better solution would have been offered.

I was similarly surprised to find a number of occasions where design decisions were made that conflicted with the RESTful approach that is now Rails convention. Early on that might have been one thing, but coming after a chapter extolling the virtues of resource-centric design that was quite a surprise and seemed an indication that the book had begun to sprawl a bit. In many ways it’s a shame that this book wasn’t broken up into a couple of volumes. Packaging the first few projects together as an introduction, then offering the last few as smaller supplements more tightly focussed on specific areas such as Ext JS usage, ActiveResource, etc. That way the material could have been tightened up and some of the repetition would have made more sense, and perhaps there would have been space to cover a few obvious missing pieces such as atom/rss feeds.

With a number of volumes now available that use specific projects to illustrate Rails techniques, this book isn’t so distinctive as it might have been a few months ago, and many developers will probably want to go for a more focussed, more succinct option. If your learning style benefits from taking things slowly and you don’t mind some repetition then this may be a good option, but don’t forget to read up on accessible web development while exploring later chapters.

Disclaimer: I was sent a copy of this book for review by the publisher. You can find it at apress, amazon US, amazon UK and all sorts of other places.

Recommend this post:

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

 

I am not in this book’s target audience. Whereas the book is aimed at experienced java developers who are just getting started with rails and want to take advantage of JRuby, I’ve rarely touched Java but have lots of ruby and rails experience and am interested in JRuby mainly to see where I might be able to take advantage of java libraries, or ship my ruby apps into new contexts. In that respect, the book was helpful but there’s probably space for a companion volume for people like me.

The book takes a measured pace, introducing Rails early on and then building in different components from the Java world as it works through four different projects. Use of JDBC within a rails app, calling ruby code from Java, deployment strategies, packaging a Rails app as a .jar that can be dropped into an application server, and making use of java for interfacing with SOAP web services are all covered.

Readers will probably need to spend some time experimenting with each feature to really get comfortable with them, but the book works well to get you started and point in the right direction. The introduction to Ruby and Rails is a case in point, as Ola dives right in to his examples after a brief lead-in. That may work well for experienced developers who will enjoy exploring the accompanying code, but it is worth being aware of.

It did feel like there were some missed opportunities later in the book, particularly in the final project, to introduce more of Rails’ “RESTful” features since that example really invited that style of design, and it would have been interesting to have some discussion of the pros and cons of treating the libraries built to interface with external services as models within a rails app, making the interface more transparent.

I’m also not quite sure where the “Web 2.0 Projects” line in the title comes from. The final project interfaces with amazon web services, which I suppose might get thrown onto the “web 2.0″ bandwagon, but don’t go into the book expecting a series of stereotypical “web 2.0″ projects. It’s an introduction to JRuby on Rails for Java developers, whatever approach to the web they may be taking.

JRuby is a really exciting technology that promises to help developers take another step towards picking technology based on their projects, not just the platforms their organisations may have standardised on over the past decades. If you’re a java developer wanting to learn how to make use of JRuby and looking for some help to get up and running, this book is likely to give you just that.

Disclaimer: I was sent a copy of this book for review by the publisher. You can find it at apress, amazon US, amazon UK and all sorts of other places.

Recommend this post:

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

 

Taking readers step-by-step through the creation of the RailsCoders.net website, Practical Rails Social Networking Sites is a well paced guide to building web applications that tick many of the boxes of the moment.

The book starts with basics, giving simple instructions for installing Rails on a variety of platforms, and then steps through simple content management, adding users and groups, building a blogging engine, adding a discussion forum and photo gallery, integrating with Google Maps and Flickr, and deployment. Along the way the various aspects of rails’ testing framework are introduced as they’re used. The style isn’t test-driven, and it would have been nice to see that style introduced, but tests are written after each piece of functionality, demonstrating some of their use and importance.

Judicious use is made of plugins with a number of recommendations made throughout the book. restful_authentication is referred to, but its functionality is largely duplicated in the code. That’s probably a sensible move so early in the book as it’s important that developers understand what the code is doing even if they’re going to employ a plugin for the implementation. YM4R/GM is used to implement the Google Maps functionality and it’s good to see that getting some attention in print.

Readers who have already built a couple of rails apps may well find themselves skipping large chunks of content as a lot of the code will be familiar. As Stephen pointed out in his summary, it is a little curious that “The Apress Roadmap” suggests this as a more advanced title when it would probably work better for an engaged beginner than an experienced developer.

Of course, the great problem with publishing any rails title right now is that version 2.0 is just around the corner, and with its release we’ll see the end of built-in pagination and a few changes to the routes. As a consequence there are likely to be a number of readers who find that the examples in the book fail to run on the latest stable rails by the time they come to try them. Hopefully Apress will be able to offer a brief supplement with the book or online to help readers update the code for the new features.

Practical Rails Social Networking Sites is a solid introduction illustrating how simple it can be to build useful web applications with Ruby on Rails. I’d hesitate to recommend it to anyone with rails experience, but it will be high on my list of recommendations for beginners who are wanting to dive straight in.

Disclaimer: I was sent a copy of this book for review by the publisher. You can find it at apress, amazon US, amazon UK and all sorts of other places.

Recommend this post:

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

 

Book Review: Pro ActiveRecord

17 October 2007 (9:53 am)

By James Stewart
Filed under: Book Reviews
Tagged: , , , , ,

Right at the start of Pro Active Record the authors address a possible problem some may have with it: that there’s not enough in Active Record to warrant a full book. They point out that the basics are well covered as sections elsewhere but that this is the first book to really dig into working with legacy schema and other ‘advanced’ uses. That’s fair enough, but after reading the book I am still left with the question of why, then, they dedicate the first half to covering ActiveRecord’s most basic concepts?

Judging from postings on the rails email list, there’s certainly a lot of confusion about ActiveRecord, associations, observers, how to work with legacy table names and primary keys, and so on. But in a book with a title prefix of “Pro” I was expecting to jump straight into the nitty gritty of topics like compound/composite primary keys and performance tuning, probably with some real world examples, and maybe with a serious exploration of AR’s internals. As it is, such topics only get a quick treatment in the final chapter (the compound/composite primary keys section is a paragraph referring users to http://compositekeys.rubyforge.org).

It’s almost always instructive reading other developers’ code and it would be unfair to claim that I didn’t spot a couple of tips that may prove useful, but they were passing things. And sometimes I found myself wondering what happened to the tech review process, particularly in the coverage of the has_one association, where not only is the variable naming confusing, but they seem to be calling the each method on a single ActiveRecord instance.

I’m left wondering what the audience is for this book. The title and blurbs suggest it’s pitched at people who want to go deeper into ActiveRecord than they have before, but the content is better suited for someone with some database experience who wants to pick up ActiveRecord to write some scripts. As it is, if you’ve worked with ActiveRecord before your time will be better spent writing plugins and exploring the internals for yourself, and if you’ve not you’ll get most of the same material from a decent Rails book and some time exploring.

Disclaimer: I was sent a copy of this book for review by the publisher. You can find it at apress, amazon US, amazon UK and all sorts of other places.

Recommend this post:

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

 
« Previous Page