A common task (and a required task to 'un-drupal-afy' your site) is to override the standard output templates within Drupal. However doing so isn't as clear as it should be. Here's how to override a block template.
A common task (and a required task to 'un-drupal-afy' your site) is to override the standard output templates within Drupal. However doing so isn't as clear as it should be. Here's how to override a block template.
(UPDATE) I've added some new information regarding the hash value generation. Take a look.
I love open source. I really do. But one of the big complaints people have with it is documentation. Most of the time documents are written in such a way that you have to already know how to use the software to know what the docs are saying. They're more reference manuals than training or support documents. And a lot of the time this can be frustrating. With Services and making XML-RPC calls using the key authentication in Drupal, this was made more apparent than ever.

Director of Operations
I had the opportunity to be part of a panel at the Ontario University Computing Conference titled "Exploring the Content Management Ecosystem" with some colleagues of mine. It was a great talk, really good people and great questions.
Big thanks to David Pascoe-Deslauriers (fellow Coldfront kid), Mathieu Boudreau and Bertrand Lefort for their help and opinions on the subject.
You can have a listen to the audio below.
For those who are interested, check out the 2010.oucc.ca website for more presentations and materials.

Director of Operations
If you've ever written a module before you must be familiar with the "drupal_set_message" function in core. It's a nice way to write messages to the screen (either as notices, errors or warnings). But say you want to print an array to the screen and see the values, can't really be done that easily (unless you use a print_r but who wants to do that). With the Devel module, you gain a function called dsm() (short form for drupal_set_message). Not only is it shorter to type, but you can put arrays, objects, whatever as a parameter and using the Krumo library. So things come out in nice blocks that you can drill down into. Here's how.
What you'll need: Devel module
How to do it:
Now you can look at your arrays and objects in style!
Inevitably during your development process, the client is going to want to see how things are going. And typically in these cases you don't want to demo on the actual development environment. So you setup a test site to demo everything which may or may not contain all those lovely Drupal development modules (i.e. coder, devel, etc...). And if that's true, what if there are stray 'dsm' calls in your committed code? I mean it's safe to assume you grabbed a copy from your repo which is still under active development so it's safe to assume there's some dev code in there. And that code will cause critical errors with those dev modules missing. The last thing you want is to show big error pages during a demo!
Now I know this is a lot of if's but it could happen (trust me...). Here's how to avoid it:
What you'll need: Your fingers and cooperative developers
On the heals of one of my previous blog posts (Making Drupal Fly) I decided to expand upon that particular server configuration. Since the time I wrote that blog post, we've changed a few things on that server since the requirements on the CMS have changed. We've got a higher load on the server than expected so we needed a way to distribute the extra database traffic across the clustered machines. As you may or may not know, Drupal is a rather database heavy application. If a lot of users are reading while a bunch are writing at once, the site can slow down quite a bit. Now I've already covered the idea of caching database queries and their results, but that doesn't help us if the queries are mostly unique or are for authenticated users (in which case, most of your caching is no longer effective).

Director of Operations
This isn't so much a quick tip as much as it is an ad for the phenomenal Admin module which I've recently discovered. It adds inline content editing, views administration, block editing, a newer and much improved administration section layout and a great toolbar at the top of all pages. Here's how to setup it up:
What you'll need: Admin module