Back to top


Greggles, Gregorybeans, Frijoles, Beans

Arcs of involvement in Drupal (or open source)

I've been working with Drupal since 4.6 and was somewhat involved in the process of making 4.7. That was about 8 years ago. Here are some truths I've learned in that time.

There is at least one arc to people's involvement: people go up and people go down

Think about your involvement in Drupal. Did it start at some level, stay at that level, and continue at that same level indefinitely? Probably no. You are somewhere on an arc of involvement. You may be on a mini-arc within a bigger arc. When you first heard of Drupal you didn't immediately jump in and file bug reports and help do usability studies and write documentation. You tried it out. Then you did a little contribution and you liked it (or hated it) but your involvement probably kept increasing for a while. Right now maybe you're headed up or down - maybe you're involvement is decreasing right now because of a big project at work but you know it will increase 2 months from now because your next project will make it easy to contribute to a given module (or core?). Let's look at some real world arcs of involvement.

Let's look just at Drupal Core involvement. I've used the data from marvil07 which includes analysis on commits to the main branch of core (originally CVS and then migrated to git) since 2000. Here are the top committers for the years 2000 to 2003, inclusive:

Person Commits
Dries 2341
Kjartan 334
Steven 157
jeroen 102
natrak (pseudonym of Kjartan) 82
ax 9
Jeremy 9
Marco 6
Kristjan 4
moshe weitzman 4
Al 3
Gerhard 2
Gabor Hojtsy 2

Holy cow. I only recognize 8 of those 13 people, but they are the foundations of Drupal for the first quarter of it's life. Let's look at the next 3 years: 2004 to 2007.

Person Commits
Dries 3537
Steven 1048
Gabor Hojtsy 894
drumm 655
killes 557
chx 331
webchick 124
pwolanin 93
People Involved: 

Ways you can give feedback, ranked by usefulness

Below is a ladder of feedback, ranked by usefulness in ascending order:

Levels of useful feedback:

  1. Silence (i.e. not giving feedback)
  2. X is bad.
  3. X is bad because Y
  4. ...instead I suggest Z
  5. ...instead I suggest Z because Q
  6. ...instead I suggest Z because Q. I'm happy to help with that.
  7. ...instead I suggest Z because Q. I've already done some (or all) of the work.

Earning bonus points

Regardless of which level you're on, you can get bonus points by following some simple tips:

People Involved: 

New option for funding Drupal contributors: Gittip

OK, so it's not really "new." It's a little over a year old, but the Drupal community on Gittip just recently got over 150 people which is the threshold where Gittip starts displaying members of the community.

So, congratulations to the Drupal Community! (and to Gittip).

Why is Gittip a useful tool for the Drupal community?

I think a lot of people want to give a little support (via money) to the people who work on Drupal but there is a lot of friction in the way of giving money. Does the person use Paypal? What is their PayPal email? What if you only want to give someone $10? The friction of that whole transaction far outweighs the $10 gift.

There's also a mismatch in the action: most payment systems like a check or PayPal are used one-time (again, because of the friction) but the benefit from a contribution and the desire to pay back that benefit live on for as long as you have a Drupal site. A lot of these topics are discussed in an old Lullabot Podcast where they point out that if every active user of Views gave Earl a few dollars for their use of he'd have a bit over $2 million.

My perspective is that it hasn't been easy enough for people to give that money and the friction is holding them back. Gittip solves a lot of these friction problems and the timing problem by making it easy to do small recurring payments to anyone on github or twitter.

One example that Dries requested: let's help AlexPott extend his "unemployment" and let him focus his genius on Drupal 8 core development!

What does the evolution of our use of Gittip look like?

Among the people who have joined the Drupal community on Gittip:

People Involved: 

Setting up OpenSWAN for Site-to-Site VPN - Ubuntu 12.04 and Cisco ASA 5520

I recently had to setup OpenSWAN on Ubuntu to be part of a site-to-site VPN with a Cisco ASA 5520. There are a few resources I used to get me there. It was hard to find these resources so I'm keeping track of them for myself and in the hopes it helps someone else.

My requirements were:

  • local ike peer IP address:
  • remote ike peer IP address:
  • remote: also want all addresses in 123.45.0/24 to be addressable

  • Authentication: pre shared key

  • Encryption Scheme IKE
  • Diffie Hellman Group: Group 2
  • Encryption Algorithm: AES-256
  • Hashing Algorithm: SHA1
  • IKE Negotiation Mode: Main mode
  • Lifetime (for renegotation): 480 minutes

  • Phase 2 Encapsulation: ESP

  • Phase 2 Encryption Algirithm: AES-256
  • Phase 2 Hashing Algorithm: SHA1
  • Perfect Forward Secrecy: No PFS
  • Lifetime (for renegotiation): 480m

And here is roughly what my /etc/ipsec.d/connection.conf looks like:

conn i2c

People Involved: 

Discover It Card: Followup and reviews

The Discover It card launched late in 2012 (I wrote about it earlier).

When it first came out there was a heavy promotion of the card via multiple channels. They had tv videos and articles were written about it

One of the most interesting things to me about the card is the design on the front of the card:

Discover it card design

It's so basic and they moved the numbers/expiration etc. to the back of the card. Here's a video showing an unboxing of the Discover it card:

You can see at 4 minutes into the video as he shows the card the front is just plain and simple. A very clean design!

Here were the items he described during unboxing the card:

  • No annual fee
  • No late fee (only affects credit cards)
  • No foreign transaction fee
  • Paying late won't increase APR
  • 1% cashback on most purchases, 5% rewards program for certain purchases
  • Talked to a real person within 3 minutes of calling the company
People Involved: 

Matching accented letters and other fun stuff in PHP regular expressions like preg_match

I recently had to validate that input text included only letters, apostrophes and spaces including various accented characters. This was surprisingly tough for me to figure out in PHP.

Some good resources:

Ultimately what worked for me:

People Involved: 

Helpful functions for writing Drush commands

There are lots of great tutorials out there for how to use drush, but not as many about how to write Drush commands. I periodically dig in and find useful drush functions, but then forget them a month later when I'm writing a new drush command.

So, here is a helpful list of Drush-specific functions that will make your life easier.

  • drush_log - note that the second argument is the type of notice and it can be a 'notice' by default or 'warning', 'error', or 'success'.
  • drush_confirm - ask people if they want to do something. Users can override this by adding a "-y"
  • drush_prompt - prompt the user for some input like a filename or a date value
  • drush_choice - send the user a list of prompts like the 'drush cc' command presents you a list of caches you might want to clear out.
  • drush_user_abort - break out of a command if a user aborts the operation.
  • drush_get_option - check if the user provided an option on the command line like -h
  • drush_set_error - throws an error so the user sees it and the drush script ends with an exit status of 1
  • drush_print - prints out information

Some helpful resources:

  • The website is of course full of useful information
  • The Commands doc page ships with drush and is available on
People Involved: 


Subscribe to RSS - Greg