Back to top


More on finding high quality Drupal modules

I've written in the past about finding high quality Drupal modules and the advice that I gave there is still mostly valid. And if you want to improve the quality of data about Drupal modules you should consider Improving Drupal without any work.

Today I revisited a topic that Killes introduced (at least to me) in his post about seeing results of code checker on Drupal modules. This can provide yet another data point about the quality of a drupal module.

The Drupal Code Checker

The Code Checker itself is a php script which lives in CVS. It takes a pass at the code and runs some basic checks. It's validation of SQL queries only works if the queries fit onto one line, it expects SQL keywords (like SELECT and UPDATE to be uppercase). It has problems, but, it is also better than nothing! And, if you see a way to improve it you can edit the file and provide a patch (or patch it yourself if you have CVS access).

The check is run after a commit to CVS during the next run of the packaging script (which happens 3 times a day every 8 hours, 1AM, 9AM, and 17 GMT).

Drupal Code Style

In the scripts/ directory of every Drupal download is a file This code style check is another validation that is probably not perfect and which is not run in an automated fasion, but it does provide valuable information about the quality of code. Usage examples include:

$ ./ ../path/to/myfile.module
$ ./ ../modules/path.module

You'll need a perl environment to run the script, but even on Windows that's easy to get with Cygwin.

People Involved: 

Outfoxed is now Lijit - Yet Another Drupal Site

For a while now there has been the GetOutfoxed community focused around the Outfoxed browser extension.

The company and the extension

A few months ago the project started to get "real" with investors, and office space, and desks, and chairs. They've now relaunched under the name "Lijit" as in "legit" as in "legitimate" as in "what you would say about a page that you think is good". This is an interesting project to me because it uses some of my favorite technology, it's a company in Colorado.

The extension is basically a way to say that something is "good, bad, or dangerous" and you can apply that rating to web pages or domains. Then other people (your friends, family, coworkers) create a trust network listening to your advice and giving you advice (the network connections can be one way if someone trusts you but you don't trust them). It's pretty clear to see that this could be extended from just web pages and applied to other things in life (email senders, operating system processes, etc.) and all of a sudden it's great. It takes a lot of cool products that have been going around takes them one step further. Really brilliant stuff.

Drupal Site - Pretty Theme

Additionally, they've got a really pretty page layout - pretty standard stuff in a lot of ways: The section across the bottom with categories and links within those categories. Right hand navigation. Fixed width site. Fancy 3-d Logo (though it could use a dropshadow). I'm not a super huge fan of the colors, but what I am a fan of is that when you look at the site it's clearly got a designer's hand in the look and feel. Many people complain that it's hard to theme Drupal - and yet there are so many examples to the contrary, this being one.

That's about it - help spread the love, won't you? And Digg the new Lijit site.

People Involved: 

Mountain Biking Community site

Your Mountain Bike YADS

Last night I got reintroduced to the website which is a pretty cool mountain biking community site. It's built on the Drupal platform and is the first in a series of adventure sports enthusiast sites being created by Enthusiast Group. It's great to see, first of all the functionality that they were able to create, but also a well done, high-quality and attractive site implemented using everyday Drupal modules. Making it Yet Another Drupal Site - YADS.

Mountain Biking Social Networking/Citizen Journalism

It's a social networking and citizen journalism site wrapped up into one with the niche focus on the mountain biking community. So, you can see reviews of mountain biking products or user submitted mountain biking photos but it's also got a community aspect in multiple forms such as forums and community events.

Support the IMBA

They currently have a pretty cool deal going on where if you become a member and add your moutain biking photo to the site, they'll give $5 to the IMBA. That's a great deal and they haven't hit their limit yet!

Fun Features for Drupal

When I say "well done, high-quality" the stuff I'm talking about is some of the small details they've implemented. Specifically, creating new content redirects you to your user tracker page. At first this struck me as an odd place to redirect rather than the page itself. Then I realized the motivational effect this could have - it's like saying "here's the stuff you've created, why haven't you created more?". They are using the userpoints and buddylist modules to help promote networking and giving content to the site. The theme is littered with calls to action to post more photos, videos, stories. This worked well for me - after joining one of the little "calls to action" is what got me to upload my photo - and get the $5 donated to IMBA.

People Involved: 

Exciting weekend for Drupal

Fancy Javascript Stuff

This weekend JQuery1.0 was announced. There have been hopes and dreams to add this into Drupal core for a while, but it was waiting on GPL licensing, then on a 1.0, and now on proper agreement that it works well. So far, GPL licensing and the JQuery 1.0 have happened. Now we just need to make absolutely certain that it works well as a replacement and/or simply as an addition. You can follow the progress and problemsin this issue.

There seems to be a few bumps along the way, but hopefully we can solve them.

Fast Path File System Cache - fastpath_fscache

The file based cache was an interesting issue. In HEAD, Drupal contains at least two interesting improvements: partial bootstrap using drupal_bootstrap and the ability to have pluggable cache mechanisms. The first allows a highly custom page to do only a partial bootstrap if it knows that it only needs to interact with a subset of the Drupal "world" (i.e. apis, objects, etc.). The pluggable cache mechanism allows someone to say "well, I don't like having my cache in the default location of the database because my database server is my bottleneck, so I'm going to use an extra module to cache my files to the webserver's disk which is much faster". It allows people on a shared host to get the performance previously available only to fancy/complex server's with a reverse-proxy. This is very exciting to me because several of the sites I work on are situations with 90% anonymous visits and where the database is a bottleneck (e.g. this site). In those cases this file system cache module should be a great addition.

Note that as of this post, the fastpath_fscache module is listed as being "beta" quality and not recommended for production sites. I'd love to see some performance numbers, perhaps using the guidelines that webchick put together in the handbook on HOWTO Benchmark Drupal Code.

People Involved: 

Google On Site Search - Only useful if you don't already use URL Parameters

I read the Inside AdSense Blog because monetization is FUN! Today I woke up to see that they now have a search box that will give results right inside your own page which is a great step beyond their previous effort (the previous effort allowed you to do some basic theming of the results page...pretty useless). So, I got all excited and hooked it up on and if you try it out what you'll find is that the search code and Drupal get mad at each other.

A Little History

Drupal, like many web applications, originally used URL parameters to create its URLs. Things like ?q=node/3 or ?q=admin let the system know that the user is requesting the "node/3" page or the "admin" page. Over the years people figured out fancy ways to make URLs work without the ?q= but Drupal still supports this notation in case your configuration doesn't allow the rewriting magic necessary. It's also handy for when you recompile apache and forget rewrite and your site breaks - then you can still get into ?q=admin/settings and fix stuff.

The Google vs. Drupal conflict

The way this becomes a problem is because Google's search expects to be able to use the "q=" parameter and it creates URLs like which then confuses Drupal into thinking that I'm asking for a page named term which doesn't exist. The funny thing is that when you do a google search for a path that actually exists and is available (like node/198) then Drupal returns that page quite nicely.

I'm not sure what the fix is. I can imagine one solution being to use a more specific url parameter than "q" like "dq" but I doubt we're going to get the millions of people using Drupal to change. I can also imagine a setting in Drupal for "no really, ignore, I only want clean URLs so please ignore any q= in the URL parameters" but that doesn't feel right. Of course, part of the reason I'm writing about this is a little lazyweb plea for someone with a better idea on how to fix it.

People Involved: 

Firefox Quick Search of

Stop Wasting Time when you Search

I frequently find myself doing two things:

  1. Using the google site: keyword to search
  2. Using the Drupal search to search

I'm also a believer that the fewer keystrokes the better, especially in light of RSI experienced by "professionals" doing computer work. So, why not eliminate a couple hundred keystrokes a day with a Firefox quick search?

Get the Bookmarks

Here are three links to bookmark:

People Involved: 

Tech Republic Review Doesn't Like Drupal Very Much

So, I just read the Tech Republic critique of Drupal and he has some fair points. Basically that Drupal needs an installer and needs some polish to make it easier to grok for first time users. Fair enough. The funny thing is that this article made me realize that Drupal is the Debian of the CMS world. And if you get that reference, then you're the kind of person who is reading my website. Anyway, to explain "the Debian of CMS" it's something like this.

Drupal - the Debian of CMS

Drupal may not be the prettiest thing. It may be hard to use right out of the box. It may have certain religious ideas that it sticks to and which piss off the user community (ahem...backwards compatability). It has instructions which don't always make sense (page vs. story vs...)

Drupal is the system, if you use it long enough to get to understand it, that is an interesting and encouraging system to use as a developer. It gets developers excited to work within its framework. This makes for a virtuous circle where more and more and more and more interesting things are written that make Drupal better. Further it also means that when someone is looking for a system to use to build their website it is used by luminaries and cool projects and fancy social borkmarking community things.

So when someone says Debian is clearly unsuitable because it's number 7 on DistroWatch just remember that Ubuntu, based on Debian, is number 1. When someone says "Linux will never be more than a hobbyst tool" just remember that almost everyone uses linux every day whether they know it or not. And when someone says Drupal is too confusing or too hard to use, well, my feeling is that they are just begging for the installer which allows easy creation of installation profiles so with 4.7+ (i.e. the next version of drupal to be released) we'll see tons of Drupal distributions that will solve his problems.

People Involved: 


Subscribe to RSS - Drupal