
I just finished reading Building Powerful and Robust Websites with Drupal 6 (this title on Packt’s site). I’ve been working on a website powered by Drupal, and though it was obvious that Drupal is very flexible and capable, I was getting pretty lost in the website. So I wanted to read a book that would explain it to me.
Unfortunately, this book didn’t help me much. I’d give it 2 out of 5 stars.
Overall the content of the book is not about what the title promises. In fact, I’d say the title ought to be something like “an introduction to…” or “basic concepts with…” instead. Unfortunately, these titles don’t really capture the spirit of the book either. It’s hard to actually explain what the book is about, and I think that’s its main problem: the book has an identity crisis. It can’t decide what it is really trying to say, and thus it seems to go from one topic to another without a really strong direction. (It does have some direction and organization, but it could be stronger.)
As a result I now know almost nothing about Drupal that I didn’t discover by trial and error over perhaps 8 hours or so working with a live site.
The book is 380 pages and I think it ought to be a lot shorter to cover the material it covers. The writing is far too wordy, so whole paragraphs sometimes end up saying nothing at all. For example, “reduces the amount of work required later down the line” should just be “saves work later.” A lot of what’s included is just irrelevant. For example, the preface spends a lot of time telling me that the Internet is an exciting revolution, yada yada:
The Internet is arguably one of the most profound achievements in human history.
It has become so pervasive in our lives that we hardly even notice it—except when
it happens to be unavailable! It’s one of those things that make you sit back and
wonder how people got along without it in the old days. Without the ability to
surf the Internet to order groceries, do our banking, book flights and make travel
arrangements, meet friends, meet partners, download music and videos, study, run
businesses, trade shares, run campaigns, express views, share ideas, learn about
other people… where would we be?
There’s a lot of that throughout the book, unfortunately. See if you can understand this:
Chapter 8 gives you a run down of how attractive interfaces are created in Drupal
through the use of themes. As well as discussing briefly some of the considerations
that must be taken into account when planning your website and ends off by looking
at how to make important modifications to your chosen theme.
And on page 4: “little to now experience…” and later, a really confusing one: “How you deal with file system settings really depends on what type of content you use to visualize your site.”
The typesetting is also hard to read. For example, it’s set ragged-right, but even worse, there are many places where lines are broken far shorter than they need to be. It looks to me like they just put Word documents onto paper with no real typesetting.
When the content actually picks up momentum, it covers a bunch of things I could do without, such as explanations of what open source is, and Drupal’s licensing. As I said, this book has an identity crisis; these are important topics, but not in this book.. In chapter 3, I begin to see some stuff about how to use Drupal. But then it jumps right into how to set up forums. Unfortunately I really missed explanations of the concepts. The concepts are too intermingled with the examples, which I didn’t understand because I was only reading the book, not actually working through the examples. I got lost very quickly and never found myself again.
This book is not skimmable to get info at any level other than following along with the author — I mean, installing your own copy and literally performing every action the author performs so you can see it in action. For example on page 69, there’s a lot of talk about containers — and then it says “click Add container to bring up a page…” wait, I thought that’s what we were doing already? I’m sure I read it wrong, but unless I’m willing to build myself a website on my laptop to follow along, I can’t tell. I really wanted the book to explain things to me without making me work through the examples. I’m sure it’s hard to do, but it must be possible.
At the end of each chapter, there’s a summary. They are too congratulatory. “This chapter provided a good grounding in the basics of controlling access to your site’s content.” I disagree. Then later, “From learning about what considerations must be taken into account when planning a website’s look-and-feel, to making changes to the code, this chapter has provided a firm grounding in the fundamentals of working with Drupal interfaces.” Again, I just didn’t get that out of it when I read it.
So what was I looking for from the book? I wanted to understand what Drupal’s special lingo means, really. I mean, if you’ve worked with Drupal, you’ve seen all the words it reinvents for its own special uses — taxonomy, hierarchy, term, vocabulary, node, field definition, content type, and on and on. Each of these means something really particular in Drupal — not at all what we mean in common English. I am still confused about all this: what each of these things really is, how each relates to the other, why I see them in various contexts, when I should use one instead of another, and so on.
In summary, I’d say that I’m now even more convinced that Drupal is almost ridiculously flexible and powerful, but this book just didn’t help me much. It is a noble effort but alas, I needed more from it.
PS: some people have asked me about the grammar rules and regular expressions I used while writing my own book. This book is a great example of how specific those are to my own writing. If I were this book’s author, I would have a rule to catch “make use of,” “head on over,” and “go ahead.” There is also a lot of “of course” that substitutes for a real explanation on topics where I really wanted more help understanding.
Technorati Tags:CMS, Content Management System, David Mercer, Drupal, writing
You might also like:
- Official website launched for High Performance MySQL
- Progress report on High Performance MySQL, Second Edition
- Copyright statement, privacy policy and terms of use
- How to read the clipboard from JavaScript
- How to exploit an insecure order of access to resources
Using BASE instead of ACID for scalability
My editor Andy Oram recently sent me an ACM article on BASE, a technique for improving scalability by being willing to give up some other properties of traditional transactional systems.
It’s a really good read. In many ways it is the same religion everyone who’s successfully scaled a system Really Really Big has advocated. But this is different: it’s a very clear article, with a great writing style that really cuts out the fat and teaches the principles without being specific to any environment or sounding egotistical.
He mentions a lot of current thinking in the field, including the CAP principle, which Robert Hodges of Continuent first turned me onto a couple months ago. It has been proven formally, though I have not read the proof myself.
One of the most important concepts he advances is giving up the illusion of control. As programmers and DBAs, I think we may tend to like control too much. Foreign keys are a perfect example. I think the point here is that these things make you feel safe, but they don’t really make you safe. Just as with so many things in life, recognizing our inability to really control the systems we build is key to working with their strengths — instead of trying to bind them with iron bands.
Another great point is idempotency. This is a great way to help avoid problems with MySQL replication, by the way. I’ll leave the “why” as an exercise for the reader, but let me just point out that the file MySQL uses to remember its current position in replication is not synced to disk, so it will almost certainly get out of whack if MySQL dies ungracefully. (Google has solved this problem.)
A highly recommended read — worth more than most case studies about how specific companies have scaled their specific systems.
Technorati Tags:ACID, ACM, Andy Oram, BASE, CAP, Continuent, foreign keys, mysql, replication, Robert Hodges, scaling, transactionsYou might also like: