Blog posts

The illusion of freedom and control in our modern technology (phones, apps and social media websites)

The makers of the many of the apps and probably all of the social media websites we use (Facebook, Twitter, Gmail, LinkedIn, YouTube) don't have our best interests at heart, and are designed to keep us within their environments for as long as they can, and to make sure we come back often. This shouldn't come as a surprise, when most of the business models are advertising based, and more time spent = more advertising revenue potential.

Cache-Control: max-age header missing from static files in Drupal

One of the sites I maintain recently had a server upgrade to Ubuntu 14.04.4, which included a new version of varnish (version 3.05) which required an update to the Varnish configuration. After setting up a new default.vcl file I was monitoring the headers sent and received to make sure that what was supposed to be cached was in fact being cached by Varnish. While testing I discovered that I was not getting any Cache-Control headers from static files like images.

South African born Musk's Tesla and SpaceX websites use Drupal

I'm a huge fan of Elon Musk, the world-changing, South African born pioneer of the consumer electric car and space technology company SpaceX, and was pleased to learn that both the Tesla website, and the SpaceX website are built on Drupal. Both are currently Drupal 7 sites with home pages that use beautiful images and videos (in the case of the Tesla site) to provide high visual impact and engagement.

Tesla website uses Drupal
Tesla's visually compelling Drupal website home page

Identifying and fixing mod_evasive "client denied by server configuration" errors

I recently migrated a Drupal 6 site to Drupal 7 using the migrate and migrate_d2d modules. While testing the new site on my client’s server, every now and again ajax requests were failing, and page resources like images were not loading. The apache error log showed a number of “client denied by server configuration” errors. 

Apache mod_evasive client denied by server configuration errors

CCK form field changes using Drupal's hook_form_alter don't work? Use #after_build

I ran into issues when trying to use drupal's hook_form_alter to change some attributes of cck fields in a node form. It appears that depending on the weight of the module the form_alter is in, it might get called before the actual form element has been processed.

To make sure, you can set a function to be called after the form has been properly created, but before rendering.

In your form alter, add the after build key to the form field's array:

$form['field_course_status']['#after_build'][] = 'course_disable_status_field';

How to add Zoopy video to your Drupal site using CCK and the Embedded Media Field module

I recently created a provider plugin for Drupal's CCK emfield module which allows you allows you to embed a Zoopy video by pasting the url into a cck field:

zoopy page url pasted into cck field

This is a lot easier than having to copy the embed code provided by Zoopy and paste this into a textarea.

The provider plugin then extracts the video code and displays the video on your Drupal site: