a work on process

Practical Ruby Projects book sleeveThe past few years have seen the English-language Ruby book market explode. Before the phenomenal success of Rails it was perfectly possible to own every available title (and not use much storage space), but now that would be quite a challenge and lead to considerable redundancy. Having worked my way through quite a few Rails books of late, reading Practical Ruby Projects—a Ruby book that doesn’t even mention web frameworks—was both a pleasant diversion and a highly illuminating experience.

Like the last volume I reviewed, this book is unabashedly aimed at experienced programmers. There’s a brief paragraph on “getting set up”, but no detailed guide to obtaining the tools. Instead we dive right in to a sequence of projects that includes: making music (dipping into calling C code from ruby), animation, simulation, building a strategy game (and adding a RubyCocoa frontend), genetic algorithms, and even implementing lisp and parsers. Once again the “apress roadmap,” a diagram intended to show how the skillsets in their different volumes build on one another, is misleading pitching this between “Beginning Ruby” and other volumes I’ve reviewed like Practical Ruby for System Administration and Pro Active Record. Don’t believe it. Though there’s little overlap in the material, this is a more advanced volume than either of those and readers should be prepared.

The pace of the book is measured and Topher Cyll does a good job of gradually building up the projects a step at a time. Along the way a variety of practices are demonstrated with many methods stubbed out for demonstration purposes before being filled in when they are needed, and considerable time spent on decoupling code. That latter piece is particularly in evidence in the chapters on building a turn-based strategy game and then developing a RubyCocoa front-end. Despite careful design early on further refactoring is needed to make it easy to apply the front-end and that process is carefully worked through.

Most of the book makes some use of existing libraries. The initial lisp chapter uses the sexp library and the subsequent section on writing a parse relies on rparsec. For the most part, however, use of the libraries is kept to a minimum, allowing for fairly self-contained code. Unit testing is largely ignored until the last chapter, where the need for tests when constructing a grammar/parser is explained and a test-first development model is encouraged. That works well to demonstrate the power of tests for complex (and often brittle) code.

This is not a book designed for public transport reading. Working through chapters on the bus I frequently found myself wanting to reach for my laptop to get a better grasp of how a piece of code worked. While the explanation is generally very good, with material of this complexity there is nothing like running the code and tweaking it to make sure you’ve understood exactly what each transformation does. It’s a book to take your time over, so be prepared!

A few editorial errors have crept in, suggesting a re-organisation of the contents late in the day. In particular an early reference to s-expressions seemed to presume that the lisp and/or parsing chapters were featured early. That’s not a big deal and will hopefully be corrected in later printings; the author does encourage skipping around within the book, but there is value in working through it roughly in order, and not just for the two “paired” chapters that explicitly build on one another.

Perhaps the most striking thing about this book is the reminder that even for those of us whose primary programming activity is web development, studying other areas can be extremely helpful. Not only is it helpful to see how other developers structure their code, but tools like genetic algorithms and parsers are likely to be very helpful where web applications require sophisticated processing and/or backend systems. And it never hurts to learn a little lisp. For the ruby developer who’s comfortable with the language and wants to stretch out a little, this book would be an excellent investment.

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. Pat Eyler’s review can be found here.

Recommend this post:

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

 

Placards at the start of the marchA couple of weeks back I attended NCVO’s seminar on the Future of Citizenship. Building on a recent report by The Henley Centre that developed four scenarios of how notions of citizenship and civic involvement may change over the next twenty years, the workshop-based afternoon was focussed on the challenges and opportunities that such changes will present to voluntary organisations. It was a fascinating afternoon and I’d highly recommend taking a look at the full report (PDF) and checking out the follow up questions on the Third Sector Foresight website.

Not working directly for a voluntary sector organisation I was definitely in the minority, but it was abundantly clear that whatever direction society moves in, the role of online services can only increase and that it is necessary for those of us building such services to be actively helping those working on the ground analyse the strengths, limitations and possibilities available.

A key concern arising from all scenarios was the likelihood that the coming years will see an increase in levels of social exclusion. Whether we are resource rich or resource poor, active or apathetic, the requirements of the population at large to work out their own access to services and manage their inclusion in society are highly likely to increase and some will be left behind.

In one conversation I had with a representative of an organisation working with an easily identifiable group of contacts I was told that they are increasingly concerned that by putting a heavy emphasis on online support for their constituency, the less tech-savvy are being left behind and it can be hard to see who they are. In such contexts it seems fairly trivial to add a reporting layer to their online services which will identify which of their contacts are not using the system and so should be offered extra support, but with decisions frequently being made based on small budgets and limited IT expertise, there is often little space for such thinking or expertise to customise the off-the-shelf packages that allow for a quick and cheap setup.

It was also clear from the research of the Henley Centre that most people see citizenship as primarily a “horizontal” concern—how we relate with our neighbours—rather than being about the “vertical” connection with government. For those in attendance, working on social issues every day, the need for those two axes to be connected was clear, but that message is not generally understood and in some cases is met with hostility. It’d be interesting to see how more use of tools such as those built by mySociety can make those connections, blur the divide, or maybe even break down the dichotomy to develop new ways of relating between government and society.

Most in attendance foresaw a future where physical resources and access to transport are harder to come by. Between global warming and peak oil we are likely to see far more constraints than we are used to. Many in the voluntary sector are ideally placed to help society through those situations, but will themselves feel the pinch. New ways of working together, sharing resources and optimising travel are needed and will have to go beyond efforts such as Virtual Bali to address more day-to-day issues.

Recommend this post:

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

 

links for 2008-01-29

(4:26 am)

By James Stewart
Filed under: Notes
Tagged:

Recommend this post:

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

 

Announcing FutureMusicTalk

28 January 2008 (9:37 am)

By James Stewart
Filed under: Announcements
Tagged: , , , ,

Future Music Talk screenshotDiscussion about the future of the music industry abounds. Whether it’s advice for artists or labels, discussions of the release of new technologies, or predictions for the future, there’s a lot of it out there. It’s good to get a range of perspectives, but until now it’s been hard to know where to get started if you want to delve into that world.

Today I’m announcing the launch of Future Music Talk, a site pulling together blog entries from a range of thinkers and practitioners. For those familiar with such things it’s a variant of the Planet-style sites so popular in the web development community (it’s powered by Planet Venus).

I’m very pleased with the balance amongst the initial contributors, including as it does Gerd Leonard and Dave Kusek, authors of The Future of Music, Andrew Dubber whose recent series of definitions is a must-read, Bruce Warila, Steve Lawson, Justin Boland, and Million Media.

It doesn’t stop there, so if you are running a blog on a related topic, drop me a line at james@jystewart.net and we can see about getting you included. Over the next few weeks I’m hoping to add a few other features (including drawing in links tagged futuremusictalk on delicious).

So take a look over at www.futuremusictalk.com, subscribe to the feed, and join the conversation.

Recommend this post:

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

 

links for 2008-01-27

27 January 2008 (4:22 am)

By James Stewart
Filed under: Notes
Tagged:

Recommend this post:

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

 
Next Page »