Drupalstan: What's up in the Indian Drupal community

Welcome to the first of a hopefully regular update on the Drupal community in India - Drupalistan!

Contribution spotlight: Capgemini helping with testing

Drupal's massive growth has attracted some true global giants to our community. Capgemini is a 100k+ person consulting firm with over 35k employees in India. Apart from Capgemini's established reputation as a leader in large scale Drupal implementations, they are now also actively contributing to the community through testing efforts.

The CG contribution team consists of 3 developers with Drupal and PHP backgrounds. Apart from this, a Drupal architect [DurgaGopalPrasad] and a Manager[Rizwan Sayyad] also worked for part-time.

Team members:

Describe the project you worked on: (what was the goal, how did you accomplish it, who mentored you, etc):

The project is about automating the testing process of the upgrade work of from Drupal 6 to Drupal 7. Behat is a PHP testing framework capable of running human-readable test cases against the application that needs to be tested.


Fake it till you make it, one-liner to generate content for a Drupal site

Devel Generate is great module for putting some dummy content on your site.  You can generate taxonomy terms and vocabs, users, nodes and menus.  Other modules, such as the voting API also plugin to it to generate votes.  

Devel Generate also has great Drush support.  This little one liner will build a site with a few vocabularies, a couple dozen terms, some users, some content and a menu or two.

VOCAB=$(drush genv --kill 3 2>&1 | tail -3 | head -n1) && drush gent --kill $VOCAB 20 && drush --kill genu 50 && drush --kill genc 200 && drush --kill genm 5

I have an alias for it, ($alias make_me_stuff='the command above') so when I'm starting a new project I can just hop in to the docroot and run: make_me_stuff





Managed Chaos: How I use Agile and Scrum in the classroom

Agile is great for developing software. It improves quality by committing to transparency and realistic estimates. It improves morale by putting creative people in control of their process and it gives stakeholders visibility into the process and the flexibility to change priorities (pivot for all you trendy wantrapraneurs out there).

And while Agile originated in the software industry, the principles and even the processes now exist outside of it. It works pretty well as a system in any place where there is inherent uncertainty. While traditional management methodologies seek to eliminate uncertainty by careful planning and enforcement, Agile embraces uncertainty as essential and builds teams and processes which can adapt to it.

Now think about traditional education. You have a lesson plan, you have a syllabus, the teacher assumes how will each student will absorb every lesson, how many hours of work they will need to put in to prep for a test, how best to learn each topic, etc.


Balle-Balle! Heading to India for April

I know, April is almost the worst time to visit India.  The weather is around 40 degrees C (that's TOO DAMN HOT for all the yanks) and the weather conditions are:

Anyway, I didn't want to miss DrupalCon where I had two sessions, so April it is.  You may recall, I visited with Dries in November.  It was a pretty amazing trip and were we all inspired by the opportunity and enthusiasm there.  Now it's time to make some of our plans happen.  If you're based in India, I've got a few agendas to push when I'm there, and I'd love your help to make them happen:

  1. Grow the Drupal community: I'm thinking the best ways to do this are to speak at events, and train local trainers, especially in broad intro-level courses. Anyone interested?
  2. Meet with potential and current Acquia partners: If you want to become an Acquia partner let me know and let's talk about what that entails. Already a partner, let's grab a drink and talk about your business
  3. Meet contributors: Are you a Drupal contributor looking for some recognition and/or assistance in your projects? Get in touch with me and I'll try to help you with your success.


Acquia U week one highlights

The group had a really busy week. Everyone from the Services department was on hands at Acquia - So they got a chance to meet with Dries, Peter Guagenti (VP Services) as well as Bryan house (VP Marketing) and many others.

In addition, as the group was cramming to get their work done, we got iced by the PS team.

With all that extra-curricular activity, they were crammed to get their assignment in. The assignment was simple:

  • Build a Drupal Gardens site as a portfolio of your work.
  • Interview 5 Acquians (selected at random).
  • Publish their interviews / photos on your site.
  • Build a view with list and tabular displays that can filter by department.
  • Make a block which showed a random Acquian.

The results where absolutely impressive. A few of these people (including Andrew - the first one below) were using Drupal for the first time! The group has since moved on, their portfolios have been moved to Acquia hosting.

Here's a few screenshots and links - check it out and get to know some Acquians and how the Ubies did on their first assignments.  

Please show the Ubies some love and comment on their blogs / follow them on twitter.


Adding SOPA blackout to a Drupal Gardens

If you want to blackout your site in protest of SOPA/PIPA, here's what you gotta do:

(hat tip to for the blackout page).

Important: Keep the url handy. 

Once you follow these instructions, your site will go dark (if it is January 18th 2012).  If you want to get it back, you will need to delete the block later.

  1. Navigate to Structure -> Blocks
  2. Click on "Add Block"
  3. In the "Body" use the dropdown to change from "Safe HTML" to "Full HTML" (the buttons will go away)
  4. Make the block show by setting a region.
  5. Copy the following and paste it into the body:




<script type="text/javascript">
    var a = new Date;
    if (18 == a.getDate() && 0 == a.getMonth() && 2012 == a.getFullYear()) {
        window.onload = function () {
            var cover = document.createElement('div');
   = 'fixed';
   = 9999999;
   = window.innerWidth + 'px';
   = window.innerHeight + 'px';
   = 0;
   = '#000';
            cover.innerHTML = '<iframe


State of Drupal in emerging markets survey 2012

This survey is intended to gather data about Drupal's opportunities and challenges in emerging markets.  "Emerging market" is a loaded and awful term, but for lack of a better one, I'm using it to mean anywhere that doesn't already have a large Drupal marketplace and community (i.e. North America and Western Europe).

I'm going to use this data in my presentation at DrupalCon Denver and the raw data will be released publicly under a Creative Commons license.
The goals of my presentation are:
  • Highlight the growth of Drupal worldwide
  • Provide insights on the adoption patterns of customers in emerging markets
  • Show the challenges and opportunities for SMEs and large companies
  • Celebrate and discuss the challenges of new Drupal communities around the world
The presentation will be somewhat heavily about India and probably China.  So it will be skewed towards the big IT players and how they are adopting Drupal, but I hope to also present a well rounded view of many markets people are not aware of.
Please answer honestly and completely, and feel free to suggest additional questions & add comments in the provided long-answer fields.
If you have any questions, get in touch with me at




A collaborative open source presentation

I presented at DrupalCon London on contributing to Drupal.  The talk is called “How to have an open relationship… with software.”  Sadly, there is no nudity, polygamy or even dirty jokes.

 Nope, it’s just about how it is strategic to contribute to Open Source software and techniques for sales, marketing, management and developers. I did the same talk at Drupal Camp Montreal in September (video and Slides - not matching video).

It’s a lot of fun to do this talk.  It’s also the first time I’ve presented on non-technical topics.  There is a lot more doubt there.  When presenting on a technical topic I know that I am an authoritative voice on the topic.  That is, I have facts at my disposal. Solid, indisputable knowledge that my audience (at least 99% of them), will not have.  That is a position of power, it’s why
  • Engineers have good stability and income
  • Managers are scared to death we aren’t really working hard
  • We had a boss screen in DOOM and it worked, etc.
My new talk is all opinions.


Drupal code sprint formats

I've been asked to facilitate a code sprint at Drupal Camp Delhi in a couple weeks.  I've never led a code sprint before, but I have participated in several.  I'm thrilled to do it, but then there are a lot of logistical questions that are rasied.  What format it should take? Who and how many should attend?  Will there be beer?  These are serious questions that I don't have clear answers to.  I thought about it and decided to describe the different formats I've witnessed.

General "grab an issue" sprint.

People show up and work on what they are interested in already.  They collaborate and ask each other questions, but generally just keep it informal and working groups form organically.
  • Preparation: Low
  • Easy to get involved: Yes, but tough for complete newbies unless there is prep.
  • Tangible results: Low
  • Group size: Any

Organized "grab an issue" sprint

A facilitator picks a bunch of issues ahead of time, organizes them (perhaps by experience level or skill type) and then doles them out to people who want to work on them.  People can work in pairs, or individually, but the end result is some amount of traction on a particular topic (piece of core, module, documentation, etc).  Angie


Hacking a huge Drupal database import

This article describes how to use regexes and some bash tricks and bad voodoo to split a SQL file into pieces in order to get it into MySQL in a reasonable amount of time. Parsing SQL is notoriously painful and error prone, so if you see mistakes here (I'm sure there are), please comment!

I recently got called in to work on a project for a customer I had never worked with before.  It is a very well known media / retail company and the job was to build a new interface for a media player / video library they required.  Pretty standard stuff, some views a couple quicktabs, a bit of ajax coding and a lot of pixel-f**king.  Anyway, near the end of the week long project when it came time to stage it, I realized I had a pretty big problem.  This site had 2 million users and several tables of profile data and other information.  My SQL file was over 3GB and took 6-8 hours to import.  Eek!  

So knowing that I wasn't going to write my update functions 100% perfect the first time, and I would likely have to import several times until I was confident it was working okay, I needed to find a way to get the DB to import in a more reasonable amount of time.



Subscribe to planet