Book Review: Drupal 6 Social Networking
There was once a time when the computer industry was not really people orientated, instead the focus was on pushing data around and worrying about nothing but algorithms. Those days ended with the arrival of Web 2.0, the web changed forever, the model of top-down publishing of content was revolutionised by the idea of users generating content and maintaining connections with each other through social networks. Sites like Facebook and Twitter have brought the web alive as a social space, but what if you want to implement some of these ideas on your own site? This is where Michael Peacock's new book Drupal 6 Social Networking may come in very handy.
So why build a social network site with Drupal 6? The answer is pretty simple really, virtually everything you need is already available in add on modules. You can put a site together in Drupal using these add on modules much faster than trying to code a site from scratch. There are lots of books on Drupal, but this is the first I have been aware of to bring together the explanation of social networking, Drupal and the various modules together into a coherent guide on how to build such a site. One aspect of this book I really liked was the fact it never forgot its mission, it wasn't just an explanation of the technical features needed, but it also had background theory and practical advice. This balance might be explained by the fact that the author is a partner in a web agency called Peacock Carter near Newcastle in England, so he will be bringing commercial as well as technical experience to the book. This is his third book, interestingly his business partner also authors books and they have acted as technical reviewers for other publications too.
The book starts out with some background information about social networking theory, what Drupal is, and how the two fit together. I really liked this as a starting point, social networking is very new so people will reading the book with very different levels of knowledge. It also poses the question “Why create a social network instead of joining an existing one”, but only gives reasons why you should and none for why you shouldn't. Ideally I would have liked to see a bit more discussion of that here as some organisations might have just jumped to the conclusion that they need to build their own social website when really they could use something that already exists. This situation could be made worse in environments where a “not invented here” syndrome exists. However this is a book about creating a social networking site so maybe it is not appropriate to dwell too much on why you wouldn't!
Michael Peacock explores the many aspects of building a social website through the task of building a site called Dinospace a site for people with pet dinosaurs. Of course this is just a handy fun example, I felt it actually worked quite well as this sort of site would work well with a small community with a shared interest, rather than trying to build a big site to compete with Facebook. The example is also flexible enough to cope with some of the more powerful features such as Organic Groups that can be used in Drupal, in Chapter 5 this functionality is used to create areas for owners of different types of dinosaurs in quite a nice walk through.
The end of chapter one and the whole of chapter two deal with the basics of Drupal such as installation and some basic configuration of this site. There is also an appendix to the book describing how to get the WAMP environment up and running so you can have Drupal running on a Windows machine. It was great to see WAMP mentioned, I've used this myself on my work machine and found it very good. There are two small criticisms I would make of this section though: firstly, there are no instructions for Linux and Mac users, not everybody uses Windows, especially developers. Secondly, as with Drupal in E-learning in Education, the Lullabot resources might have helped people install Drupal but were not referenced.
Despite these points generally the mechanics of using Drupal were explained very well and I was pleased to see a whole chapter later in the book dedicated to deployment and maintenance of the site. This takes the user beyond just setting up the site, but also keeping it running well and safe by taking action such as subscribing to the security mailing list.
By chapter three the focus has moved on from the Drupal basics to a discussion about enabling user generated content ranging from lightweight contributions such as comments, polls and forums to heavier contributions such as blog posts and book pages. I really liked the section on collaborative writing and how to use the powerful book module in Drupal. This is something that would be really useful to special interest social networks as a way to collect knowledge and build structured long term content. At the end of the section on comments there book proposes that only logged in users should be able to comment, but requiring registration might encourage return visits. This is an interesting point of view, but might vary from site to site, a lot of people will be put off posting a comment if they have to register.
Chapter three of the book also has a section on automatically generated content, such as content that can be imported via RSS feeds. This was great to see, and the explanation of how it works was really good. I would have liked to have seen here some discussion of the possible legal issues surrounding content reuse, especially for a social network site that might even charge its users for membership, thus making it a commercial site. If the RSS feed is only licensed for non-commercial use then this is a big problem. The chapter ends with an introductory explanation of roles in Drupal, this is a really good example of something I did like about the book; the way it kept focus and did not go off into a lot of detail on points if it was not needed at that stage.
Users and Profiles were talked about in chapter four, which started out with a good discussion on saving the user duplicated effort by exploring options to integrate with features outside the site such as OpenID and Gravatars (a sort of universal avatar that can be used across sites). It also has a section on how you might prevent spam users, something I haven't seen before in a book about Drupal. This sort of discussion might well be a benefit of the book being focussed on social networks rather than being a more general Drupal book. The discussion about users carries on into the next chapter where the site becomes more social by setting up the user relationships modules. I would have liked a little more discussion of how to control what the activity module outputs and how to tune that to the sensitivities of your audience here, and also more discussion about the different types of relationships you could set up and how this might affect the dynamics of the site (for example calling someone a 'friend' in a system suggests a pre-existing relationship, so might make users reluctant to connect with new people). However, the explanation on how to set up the user relationships module was pretty good and I wish I'd had this when I was first trying out this module.
Chapter seven goes into creating a custom module, the book generally sticks to using already available modules to provide functionality, but this chapter is designed to give an overview of what is possible. I think here I would have preferred some slightly more simple examples, there were points where there were a few pages in sequence just containing code. There is also a disclaimer that the modules don't follow the Drupal best practices guidelines, again a simpler example might have been better here to enable these to be followed. The explanation of how to create a custom module also felt a little rushed.
Theming gets its own chapter with an introduction to creating a custom theme. The visual identity of such a site is of course very important and can have an immediate and lasting impression on the user's ideas about a site. The chapter went into enough detail to help you find your feet in theming, of course a whole book has been written Drupal theming so it is possible to say a lot more about this topic! I would have liked to see some discussion in this section about the possibility of working with a web designer in this area, and how that might work from a technical perspective.
The book ends with a short but enjoyable section on promoting the new site. This contained many great bits if advice on topics such as social and viral marking, search engine optimisation, advertising, protecting your site against search engine ranking scams and monetising your site. There was even an introduction to the infamous “slashdot effect” (which describes a scenario where you suddenly get a lot of visitors to your site, possibly causing it to be overloaded, something that is said to be quite common after being lined to from the Slashdot site). I did think at this point it would have been really good to have a discussion of the throttle module in Drupal which does provide the ability to automatically switch off certain modules in Drupal if traffic gets heavy and instead produce a simpler, less processor intensive version of the site. It would be great to see that in a future edition.
In general I really liked the book, they way it was written meant that it flowed well and was easy to follow. I liked the way it was a mix of not just of technical information but also of other information that you need to run a successful social networking site. Drupal 6 provides a handy way to build such websites, or maybe to just rapid prototype them, however it still might be worth reading if you don't intend to use Drupal as it gives a good overview of what is involved in constructing and running such a site.
If you like the sound of this book then you can buy it now by clicking this link (or the book image). Yes this is an affiliate scheme so when you buy through this link you'll be helping towards my hosting fees! But, no reviews on this site are never affected by the presence of an affiliate scheme. If I don't like something I will always say.