Drupalcon 2010 Trip Report
Drupalcon 2010 was held in San Francisco the week of April 19th. As the name implies, the focus of this conference was on the open-source Content Management System known as Drupal.
The conference was well run and the sessions I attended were of uniformly high quality. I’ve been to a few tech conferences such as Usenix, OSCon and eTech, but this was the most focused one I’ve ever attended. To get to hang out for 3 days, with 3000 people, all focused on Drupal, was fun, educational and motivating!
I attended a number of sessions, primarily focused on the Systems and Performance related tracks. A summary of my session and keynote notes (taken using Evernote) are presented below.
In summary, I received great value from Drupalcon2010 in San Francisco and am looking forward to attending Drupalcon2011 in Chicago next year! The things I learned will serve me well as my use of Drupal continues to increase, both in my professional and personal life.
My overall understanding of Drupal has increased and in particular, I’m looking forward to applying the performance techniques as needed. I’m also much better prepared for the imminent Drupal 7 release.
Session Notes
(NOTE: In some cases, notes from multiple related sessions are presented as a single topic below.)
A full list of conference sessions, many including links to the presentations is available:
http://sf2010.drupal.org/conference/schedule
Drupal 7
This session provided an informative overview of the newest version of Drupal. It was presented by Angie Byron, who serves as the Drupal 7 co-maintainer (along with Drupal creator Dries Buytaert).
As of late April, Drupal 7 is in alpha release. It is not ready for deployment, but is very ready for final testing! Drupal 7 does have a firm release date. When the number of critical bugs is down to zero, it will be released. That date could come as early as July, but Drupal 7 will most likely be released this fall.
After a demo showing some of the new features as well as the upgraded look and feel, Angie ran down a partial list of new features, which include:
- CCK (Content Construction Kit) is now part of Drupal Core
- Image handling is now part of Drupal Core
- Improved admin capabilities
- New administer permissions
- Site admin users expanded; no longer need to be user 1
- Improvements to admin interface
- Modules can be installed from within Drupal
See the Drupal site (http://drupal.org) for a complete list of changes coming in Drupal 7.
Drupal Architectural Overview
I’ve been designing, installing and using Drupal sites for about 18 months and this session served as a bit of glue to tie together many of the component parts of Drupal.
The Drupal Hook system, involving events and listeners, was reviewed and now makes more sense to me.
The key components of the Drupal API were reviewed; there’s a clarity that comes when someone verbally explains something you’ve been reading about and working with for some time. A good presentation can bring things together.
Following the API review, a walkthrough of how Drupal processes a page request was shared. Very informative.
Drush
The first session began with introductory material, such as installation, but soon moved on to exploring the many and varied ways drush can be used to manage Drupal sites.
I’ve been using Drush a little since the beginning of the year, but armed with the knowledge and confidence gained from the conference, I’ve used it quite a bit since returning to work.
If you’re a Drupal admin, consider downloading and updating modules via the command line, vs. the standard Drupal GUI method. Much faster, and much more in line with the shell tools typically used every day.
Views
These sessions served as a review and reinforcement of what I already knew about using Drupal Views as well as introducing me to some new ideas.
For beginners, there was a list of modules required to work with Views as well as some optional modules that are designed to extend Views functionality, such as the Views Rotator and Views Accordion.
A common use of views is to create image galleries. I’ve integrated Gallery 2 into a couple of my sites, but that was a bit of work; I’m wondering if a light-weight Views-based image gallery might work better in some cases.
Related, Views can be used to easily introduce a rotating image display onto a site. Details left as an exercise.
One new idea involved using View Attachments to embed a menu into the body of a page. Further learning regarding Views Attachments is in order.
Another aspect of the talk concerned using Views to create RSS feeds. This has relevance both to the RESS site as well as the Open Cirrus Portal.
Something that may be useful in the future is the fact that Views supports searching within a view.
Overall, this session was useful; it gave me the confidence to whip out two new views, from scratch, when I returned to work after the conference!
Drupal Performance
The first Drupal performance session outlined a number of tools to measure performance.
General performance improvement techniques apply to Drupal as well:
- Measure
- Change
- Test
- Analyze
- Repeat
Following are some of the top tips for improving Drupal performance; many of these techniques apply to web server performance in general.
- Minimize database traffic
- Cache as much as possible
- use memcached if traffic warrants
- look at Cache Router module (enhanced caching compared to Drupal core)
- Make sure mod_expires is enabled (Apache)
- Consider alternatives to native search (Apache Solor or Google custom)
- PHP accelerators may help, depending on your site’s performance profile
Another session outlined specific steps taken by a site to address performance concerns. Many of their findings were very similar to those outlined in the first talk. These are additional steps they took to meet the needs of their site.
- Reduce number of installed modules
- The session_expire module can help (I’ll be reviewing this for possible use myself)
- Use custom 404, not rendered by Drupal
- Don’t log items like jpg, css, javascript
- Don’t log watchdog entries to the database; use syslog instead
One of the messages of the performance sessions is that while many techniques can be considered standard, knowing which ones will help your site can only happen after a period of testing, measuring and analyzing.
Keynote Presentations
Dries Buytaert: The State of Drupal
“The state of Drupal is strong.” That’s the short version of the keynote presented by Dries Buytaert, Drupal creator on the opening day of Drupalcon2010.
Other interesting items from his talk include:
- Drupal 8 will switch to GIT (from CVS)
- In pursuit of the “giant global graph” RDF is now part of D7 core
- MS Sql works with drupal
He reviewed the concept of the Innovator’s Dilemma as it applies to Drupal, and suggested we have a choice. Drupal either barely survives or becomes a dominant web platform. He believes that the key to Drupal’s success is the culture of sharing and collabortion. This rings true in my experience.
Tim O’Reilly: Open Source in the Cloud Era
After listening to this keynote my thinking about cloud computing has expanded and it’s safe to say I have a whole new view of the term.
Cloud computing is what’s happening when you’re using your new iPhone or Android phone. All of the heavy lifting is being done “in the cloud.” In some sense your phone is simply a very capable data terminal. As a quick example, consider the mapping applications currently in use. It’s in the cloud that your location data, the location of stores in that same area and so on are tied together and presented to you in real-time.
The White House and Drupal
David H. Cole, Sr. Advisor, Office of the CIO, Executive Office of the President, moderated a panel session on the topic of Open Source in Government. He opened with a few remarks including including the phrase “open source, open government.” This was backed up in tangible form by the announcement that the White House will contribute a couple of modules back to the Drupal Open Source community.
He also reviewed the WhiteHouse.gov site and listed the key modules they used to provide the site’s functionality.
::