A Faster Drupal—a Faster Web

I just sent a new note to the Flocknote Development list about making Flocknote speedier. Flocknote is a very complex web application, and at the beginning of this summer, I noticed that some pages were taking more than a second to generate on our server (that's before the page would be sent to the end user!).

Investigating the performance problems using MySQL's EXPLAIN, the PHP profiler XHProf, and Drupal's Devel module, I found the culprits to be some inefficient and memory-hungry caches and some inefficient database queries. Applying a couple patches that are in development for Drupal, and adding a couple indexes on different tables more than halved average page load time.

I also am actively trying to get these patches accepted into Drupal core and the Views module. Once the patches are incorporated, millions of other Drupal websites and applications will be able to conserve memory and clock cycles as well. You could easily substitute 'Wordpress', 'Joomla', 'DotNetNuke', or any other CMS or platform for 'Drupal' here.

Calling Mobile Developers

Update: I've posted links to some Catholic developers who have responded to this post over on the Catholic Mobile App Development Resources page.

I'm going to be giving a presentation on mobile devices at an upcoming Catholic conference, and I'm looking to see if there are any Catholic web developers, programmers, etc. who specialize in app and mobile website development.

I've found plenty of Christian developers, but it seems there is a dearth of Catholic developers (at least, judging by Google search).

Good to Read Again: Hallmarks of a Great Developer

From MSDN Blogs, back in 2004, but applicable today in every way: Hallmarks of a Great Developer.

  • Plans before coding
  • Always knows why
  • Writes situation-appropriate code
  • Deviates where and when necessary
  • Knows when not to change code
  • Approaches debugging scientifically
  • Walks through their code
  • Knows the language and platform intimately
  • Groks the tools
  • Improves the tools
  • Knows when to ask for help
  • Always has a side project going
  • Doesn't make assumptions
  • Documents
  • Follows coding standards
  • Uses version control
  • Makes lots of small checkins
  • Tests their own code
  • Has passion for their customer
  • Has great judgement
  • Has no ego (ha!)
  • Makes time for training

Couldn't agree more! Read the whole article for great nuggets of wisdom »

How to Build a Drupal Module - for Beginners

DrupliconAt a recent St. Louis area Drupal meetup (details here), I presented a quick session on how to build a drupal module, geared towards beginning Drupal developers (I don't consider myself too advanced, but I have found that my experiences can often help others).

I have attached to this post the custom module (a .zip) file that I included for examples in the presentation, and I also uploaded the slideshow (quick and easy - just 12 slides!) to slideshare. I've embedded the slideshow below:

OSV Asks: How effectively does your parish's website connect?

It is not good enough anymore to simply 'be present' on the web, just as it is not good enough (nor was it ever good enough) to simply 'be present' at Holy Mass.

Catholics should make it a point to engage, to connect, and to assist others in their faith formation—online, at the mall, in the home, and at their Churches.

The Our Sunday Visitor issue from March 14, 2010 asks, "How effectively does your parish's website connect?" The answer to this question, for almost all parish websites I've reviewed, is "barely."

OSV gives some basic guidelines that should be met by every parish website (some of these are simply irrelevant or should be ignored, but at least most of them are good... my comments are in brackets):

  • Avoid flash animation whenever possible. [Note: This is not necessarily a great guideline, imo, but the intention is to avoid gaudiness... just like AVOIDING ALL CAPS!].
  • Be well-organized and easy to read with a top menu and a side menu [could be one or the other, imo] on the 'Welcome' page [I hate the idea of a 'welcome' page - give us content, straight up, on the first page!].
  • Offer features that make it easier for people with disabilities to use [sadly, most sites ignore this one... even the more appealing sites].
  • Include pictures of people, not just buildings, to show a sense of community. [And, I would add, don't overload your site with pictures!].
  • Don't include advertisements [parish websites are not a venue for generating revenue, but you can allow online donations].

Archdiocese of Saint Louis' Upgraded Website

In early 2009, it was determined that the Archdiocese of Saint Louis needed to upgrade its website, mostly for security concerns. After investigating a move from Joomla 1.0.x to Joomla 1.5.x, the Archdiocese determined it would be more cost effective and a more future proof decision to migrate the over 49 individual Joomla sites that comprised into a single Drupal installation.

Archdiocese of Saint Louis Website Upgrades

This upgrade/migration provides many benefits, not the least of which are a better end-user experience, a better administrative experience, and much improved page load and search indexing performance. In addition, Drupal's structure and content presentation provide much greater flexibility in design and information structure, as well as SEO (search engine optimization) than other popular CMS frameworks that were investigated.

The decision was made early on to partner with a development company that would help with the content migration and initial site buildout. Theming would be done in-house. We chose to partner with, a web development company located in Chicago, IL. After Palantir completed initial site work, I went up to meet them, and also attended my first DrupalCamp (Chicago); Chicago has a much more vibrant Drupal community than St. Louis... but perhaps that will change at some point!

After nearly a year's worth of planning and development, the Archdiocese launched its upgraded website on February 22, 2010.

Random Bugfixes for Internet Explorer 6/7

For the better part of two days, I was working on making a new design (currently here) for the website display correctly in Internet Explorer. There were a few bugs that took me hours to solve, so I thought I'd share here my solutions (note: 'good browsers = all browsers but IE').

Archdiocese of Saint Louis final design screenshot

Above: the final screenshot - I'll be working now mostly on little tweaks, and on porting this design to a CMS theme...

The z-index property - fine in good browsers, bad in IE

The first major problem I encountered was a bug in IE 6 and 7 - the 'mega menus' were appearing behind the jquery-enabled scrolling ads. I fuddled with z-index values quite a bit, and found a way to make the mega menus appear over the ads themselves, but the green arrow buttons were still appearing on top of the mega menus!

After a few hours of reading many different opinions of IE's support for z-index (or lack thereof), I finally found that the parent element of whatever div isn't being displayed correctly must also have a higher z-index than whatever you need to have appear behind it.

Building Catholic Parish/Organization Websites

I don't know how many times I've now been contacted about building custom Church websites for various parishes, organizations, and ministries... and most of the time I am unable to accept these requests. I think our Church is finally at the point where the greatest hurdle is not necessarily pastors/leaders misunderstanding the importance of a good web presence, but the lack of great tools for building that presence.

Ugly and not so ugly websites.

I've seen site-building services such as,, and, but have a few problems with them (note: please read through the comments below this post for some good discussion about the issues at hand):

Looking for Drupal / Joomla / CMS Developers

I have been contacted recently by a few different Catholic organizations asking for help with various web projects. They (obviously) want to stay within a budget, but are at a loss as to finding a developer who will (a) keep their mission in mind, (b) develop a really slick website and (c) not charge two arms and a leg.

Please continue to post your information in the Services forum, whether you're looking for (or are available for) work, or you have a job that needs completion. I would love to put someone in contact with an organization or two, and I think that this website is a good means for that!

There's plenty of work available, but I think a lot of times, the problem is simply a lack of channels of communication!

Caching a Page; Saving a Server

A couple months ago, the Archdiocese of Saint Louis announced that a new Archbishop had been chosen (then-Archbishop-elect Robert J. Carlson). For the announcement, the Archdiocese streamed the press conference online, then posted pictures on the St. Louis Review website of the day's events (updated every hour or two).

Pageviews on April 21, 2009 -
Pageviews for April 21, 2009 on – note that from 8-10 a.m., the server was practically down from the thousands of hits/requests it was getting. Just before 10 a.m., I enabled the caching described below. We announced everything via Twitter, SMS, Press Releases, and the web, just after 5 a.m.

During this period of time, the Archdiocesan website had over 2,000 visitors per hour, and almost all the visitors were hitting the home page. The website (run on Joomla 1.0.x) didn't have many caching mechanisms in place, and for almost a complete hour, the website was returning server errors as the processor was pegged at 100% utilization. Something had to be done!


Subscribe to RSS - development