You are hereDrupalCon - Wednesday

DrupalCon - Wednesday

  • strict warning: Non-static method view::load() should not be called statically in /home/yd51llube7rk/public_html/sites/all/modules/views/views.module on line 879.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /home/yd51llube7rk/public_html/sites/all/modules/views/handlers/ on line 0.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /home/yd51llube7rk/public_html/sites/all/modules/views/handlers/ on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /home/yd51llube7rk/public_html/sites/all/modules/views/plugins/ on line 0.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /home/yd51llube7rk/public_html/sites/all/modules/views/plugins/ on line 0.
  • strict warning: Non-static method view::load() should not be called statically in /home/yd51llube7rk/public_html/sites/all/modules/views/views.module on line 879.

By Brian - Posted on 06 September 2010

The second day of sessions at DrupalCon Copenhagen.

From an HTML/CSS Template to a Drupal Theme

This session explored how to convert a HTML/CSS template or "prototype" into a working Drupal theme.  I was particularly interested in attending this session, as we had hit some stumbling blocks in this area on our last Drupal project; we had to spend a lot of time reworking our prototypes to make them into a working Drupal theme, and I was interested in others' approaches to the issue.

One of the suggestions made by the presenter, Hans Rossel, was to only create the basic framework or structure of the page first, and not to spend time creating detailed markup and CSS for the actual components, since that won't match what Drupal will provide.  Very good advice.

Trellon: How Earth Day Handled 80 Million Hits in 2 Days

This was a fascinating presentation about how Trellon, having inherited the Earth Day website one week before Earth Day itself ("the largest secular holiday in the world, celebrated by more than a half billion people"), managed to make it scale to handle 80 million hits on Earth Day (which occurred over 48 hours, when you take time zones into consideration).

Originally, Trellon was not supposed to be involved in a development capacity at all, but they did some basic load testing and discovered that the Earth Day site was going to crash pretty much instantly under any load.  In fact, the Earth Day website had never survived Earth Day; the logs they had from the previous year stopped at 10am, because that's when the server melted.  So with just two days left, they hacked and slashed their way to a scalable solution.

A large component of this was Pressflow, a Drupal distribution geared towards high performance and scalability.  However they apparently had to hack the crap out of both Pressflow and Drupal core, as Pressflow was directing too many reads to the master DB.  Normally hacking core is a giant no-no, but with just two days to go and essentially a disposable, one-day site, one can appreciate how necessity dictated their approach.  Other technologies they used included Memcached object caching system and Varnish HTTP accelerator.

The result?  For the first time ever, the Earth Day website survived the onslaught intact, with an average page response time of under 4 seconds.

Keynote: Rasmus Lerdorf on PHP 5.3, and Drupal Performance

This keynote was given by Rasmus Lerdorf, the original creator of the PHP programming language.  Fun things I didn't know about Rasmus: While born in Greenland and now a citizenof Denmark, he actually grew up in Canada, just north of Toronto, and attended the University of Waterloo.  Rasmus was also staying at the same hotel as I was in Copenhagen, as I saw him on the Wifi.  Sadly, an attempt to drop a "hello world" text file in his Dropbox met with failure.

Rasmus opened by talking about the history of PHP, dating back to the earliest days of the web, and how he created it as a simple tool to let webpages talk to databases, originally using commands embedded in HTML comment tags.  He talked about how people just "got it", and were able to use it right away with little learning difficulty.  One of the things that strikes you repeatedly about Rasmus is how pragmatic he is; he's not interested in fanciness or elegance, but in building tools that let people solve real problems as easily as possible.

After the history lesson and a brief look at some new features in PHP 5.3, Rasmus really tore into Drupal's performance, criticizing some poor decisions that led to sub-optimal code.  One thing he brought up in hilarious fashion was Drupal's over-reliance on require_once(), stressing that "you don't have to require_once everything!"  He showed a function (pictured at right) which already had code in place to prevent the function from being called more than once, "but even if it somehow makes it past this check, we're still doing the require_once!"

Despite the lambasting, Rasmus conceded that stuff like that was really just a drop in the bucket, and that to really improve Drupal performance, key functions (like drupal_render) would need to be re-implemented in C.

After his presentation, there was a questions period from the audience.  One that in particular got probably the biggest laugh of the entire conference was "How do you stay excited about PHP after working on it for so long?"  Rasmus' answer: "I've never been that excited about PHP.  So it's easy to keep that level of motivation..."  Rasmus views PHP as a pragmatic tool that works well enough to get the job done, and doesn't see the need to improve it, unless he personally needs it to be better.

The entire video of Rasmus' keynote can be viewed at DrupalRadar.

Met Dries Buytaert!

I happened to be sitting quite close to Dries during Rasmus' keynote, so after the presentation was completed and everyone was filing out of the auditorium, I took the opportunity to ambush Dries.

I thanked him for creating Drupal, he very modestly replied that it was really everyone else's work that had gotten Drupal to where it was today.  I told him that I found his keynote speech from the previous day very inspiring, that I was glad some people were thinking so far ahead into the future.

He asked about what I'd used Drupal for, so I mentioned a couple of sites including, then proceded to tell him about Evans Hunt and  He suggested I submit it to be featured on, something I certainly plan on doing in the near future.

On the Importance of DONE: Scrum & Drupal at the Economist

This was an excellent presentation put on by The Economist, whose website is built in Drupal.  It discussed their agile development approach, with a particular focus on the meaning of "done" (implemented, verified, and validated).  I very much appreciated their discussion of developing individual features using Drupal on a one-at-a-time basis, which they termed "thin vertical slices".  This really resonated with the approach that we've found to work best on Drupal projects.  I took extensive notes on this session.

A Template Approach: Cut Your Design Time Down by 200%

Despite the mathematical impossibility of the title (which was apparently pointed out to the presenter several times by well intentioned geeks) this was a session with a title too interesting to pass up.

The session essentially focused on a Fireworks driven approach to both IA and Design, using Fireworks for "greyboxing" the IA, using a template that defines most common Drupal features that often go overlooked in a design (such as the View / Edit tabs, etc).

I took video of this session, and they also have a good webpage about these concepts up at ChapterThree.

Drupal Performance: Then, Now, & The Future

This was a presentation jam-packed with valuable information about technologies that can be used to improve the performance of your Drupal site.  I took very detailed notes.  The technologies covered included: Memcache, Boost, Cache Router, Auth Cache, Pressflow, Devel, Xdebug, KCachegrind, MacCallgrind, MySQL's slow query log (, Mk-query-digest, and Mtop), MyISAM/InnoDB, MariaDB, MongoDB, Varnish, PHP APC, and Pantheon.

Use SimpleTest!

SimpleTest is an automated functional testing suite built into Drupal 7 core, which is used to run all commits to the core codebase through a gauntlet of 23,000+ (and counting) test cases.

SimpleTest can also be used to verify the functionality of 3rd party modules, and is definitely something I want to start doing myself on my own Drupal projects to help test the project's custom code.  I took video of this presentation.

An Evening on the Town

I actually managed to make it out that evening, to meet up with a couple friends I'd made from Belgium, Justin and Floris.  We met near Tripoli, an amusement park in the middle of Copenhagen.  Justin was busy putting the finishing touches on a "Build-Your-Own-Bear" he was going to send home to his girlfriend.  Apparently these stores are all over the place; Calgary has one in Chinook Centre.

From there we wandered through downtown Copenhagen, along a pedestrian avenue not too different from Calgary's Stephen Ave.  We ended up having dinner at a little place called Mama Rosa's.  I had pizza and a bottle of Heineken (adventurous, I know).  I still find it weird that in Denmark you don't really have to tip; every place already adds a service charge instead.

After dinner and some more wandering, we wound up at "Foobar", the official bar of DrupalCon.  Saw a bunch of the Drupal "VIPs" such as Dries, "webchick", and Mortendk.  I had the great pleasure of actually meeting "webchick" (Angela Byron) and speaking with her for a few minutes.  Turns out she actually lives in BC!  She invited me to the Code Sprint on Friday, so of course I had to go now...

We left the bar sometime after 1am, and after parting ways with Justin and Floris I walked back to my hotel.

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options


  • @poploser that's completely explicable. Cheers rocks
    11 years 21 weeks ago
  • @mcrittenden I honestly find the opposite; Drupal alleviates boring "reinvent the wheel" problems so we can focus on the interesting stuff
    11 years 21 weeks ago
  • @zyphen well.. people do unusual things when they're in shock. And they've established she has messed up & conflicted feelings about Dexter
    11 years 21 weeks ago
  • @SoCoAddict you should try the Machete Order:
    11 years 21 weeks ago
  • @zyphen what's wrong with Dexter? Freshest new angle they've had since the show started
    11 years 21 weeks ago
  • @stadevene so back up your vehicle and run them down again
    11 years 21 weeks ago
  • @j3r3myjf you're dreaming too small. Be the first man to circumnavigate the globe in a hot tub. Might need to tow a sauna too
    11 years 21 weeks ago
  • The Liberal party wants to know my thoughts on Harper's budget. I'd prefer to share my opinion on unsolicited political surveys in the mail
    11 years 21 weeks ago
  • Ah, that magical time of the week when Office makes me quit everything so it can barf its update onto my machine
    11 years 21 weeks ago
  • The others being Richard "Dr Franklin" Biggs (44), Tim "Zathras" Choate (49), Andreas "G'Kar" Katsulas (59), Jeff "Zack" Conway (60). So sad
    11 years 21 weeks ago