Do It With Drupal Seminar in New Orleans

New Orleans

I just got back from [Do It With Drupal] -link archived-, a three day seminar held in New Orleans. IT WAS AMAZING! I was able to interact with roughly 200 developers from Canada to Sweden, who spoke the same Drupal talk. TONS of information was absorbed. I was able to get up to date on what's going on, and reap the rewards of being a part of an open source community. A growing list of Drupal questions were tackled that were directly affecting projects at the Space Foundation. I was able to put a face to those who make my life wonderful when building websites with Drupal.

Drupal

What is Drupal? Drupal is an open source project that is three things:

  • A content management system
  • A development framework
  • A growing community

We're using Drupal at the Space Foundation as the platform to replace all our websites and to evolve and connect them together. It's already making a huge difference on websites such as the National Space Symposium, Space Foundation Education Programs, [Strategic Space Symposium] -link archived-, and the [Global Space Development Summit] -link archived-, all produced in about six months. We're working on replacing the [Space Certification program] -link archived- now, and soon the Space Foundation core website itself.

I had a few plaguing Drupal questions that weren't fully answered in forums or chat channels over the past months. Speaking with experts at the Do It With Drupal conference blew those questions wide open (often with more questions, giving a great place to start research). All of them were touched. Here's what I have:

What are the weaknesses and bottlenecks of Drupal?

I feel Drupal is an overwhelmingly fantastic platform in zillions of ways, but here are the big weaknesses picked up at different sessions and conversations:

  • Drupal sites are slow compared to other sites, with steps that can be taken to speed things back up.
  • The built in search feature performance decreases and/or gives out after the website hits a certain scale. The quality of search could also use improvements. Others have used [Acquia's hosted search services] -link archived- to nail the issue at a cost.
  • It has sharp learning curve for developers. More options and flexibility also means more complexity. It takes a while to get in the game when getting into serious development. From my perspective things moved forward quickly after climbing some cliffs.
  • People say it's difficult to create unit tests to see how much traffic the website can handle.
  • Working on a local environment and pushing stuff to a live website can cause brain splitting headaches.

How do I prevent hackers from hacking my Drupal websites?

From Greg Knaddison's session about Drupal security:

  1. Know about releases. Most attacks focus on out-of-date websites, AFTER patches for vulnerabilities have been released.
  2. Have a method for updating the website(s).
  3. DO IT.

Greg gave some great examples of how people hack Drupal websites. I'm reading up on it all now in his book he awesomely gave out at his session titled, "Cracking Drupal: A Drop in the Bucket". There's some awesome stuff in here for IT people as well. I'll have to get with the IT guys for beer soon to share some great stuff. Thanks Greg! :)

How do other Drupal themers go about theming their Drupal websites?

Many create their Drupal themes from scratch (Space Foundation does this) as more fine control is possible. More developer heavy organizations start from pre-built themes. The most talked about one at the Do It With Drupal conference was NineSixty (960 Grid System). Others people start from include Acquia Prosper created specifically for [Ubercart] -link archived-, Zen, and [ginkgo] -link archived-.

Is it "OK" to override Drupal's primary/secondary navigation theme function, and what's the best practices?

Yes. Four Kitchens, a Drupal based development company that creates very large websites, does it all the time. A function called [your_theme_here]_links() would be placed in the template.php function, and called instead of the standard links template in the theme's page.tpl.php file (or wherever else that links function is called).

One thing to keep in mind though is accessibility. Drupal's built in links function makes unordered lists out of the primary and secondary navigation, and it's easily accessible that way to users, search engines, and visually impaired. This should be kept on the brain when making changes.

What's the best way to migrate data from old non-Drupal websites into Drupal?

The standard Drupal geek answer is, "There's a module for that". The migrate module will be helpful to grab data from another database, and import into nodes of a Drupal site. It even has a book keeping-like feature that keeps track of what it has imported. Pretty cool! For the Space Foundation, this will be very helpful when pulling in data from the current [Space Certification program] -link archived-'s website into it's upcoming makeover release.

How are others managing their client expectations and project timelines?

When organizations such as MTV.co.uk, the New York Senate, The Economist, and Four Kitchens were asked, "When will [any feature or site here] be finished?", answers were often similar to "this month" with a wink or shrug. The big question that other project managers were pushing was, "What can I do to deliver the most business value to the organization right now?" That often means pushing back completed website deadlines and delivering quality features to a website in increments. SCRUM management was also highly discussed at the conference, a very customized, company-by-company solution that seemed to match some of what the Space Foundation marketing team follows at a glance (not sure to what depth yet, but very interesting and encouraging). I still have a lot to learn in the management area, but look forward to growing more here (at least for myself if anything).

Is it possible to create custom maps of hotels, galaxies, and other non-standard maps in a Google Maps kind of way?

Yes (anything is of course). I'm still working on the how, but openlayers is a great option for displaying any tilesets with geographical data. MapBox is a set of tools for making GIS solutions work. [Here] -link archived- and here and [here] -link archived- are interesting reads for generating custom tilesets.

How do I film, upload, manage, and sell video for an event online?

With National Space Symposium coming up, video is on the table. Lullabot was putting the answer to this question into action as they organized the [Do It With Drupal] -link archived- conference. Kaltera is what they use, and I picked up some info and swag from a helpful Kaltura person there. Brightcove is another video platform to check out.

How do I optimize the speed of a Drupal website?

Caching is key. Look into memcached, Mod_expires, CDN, [Proxy Cache] -link archived-, [OpCode Cache] -link archived-, [Query Cache] -link archived-, and [Varnish] -link archived-. Something like Apache SOLR will speed up search. Pressflow is an enhanced derivative of Drupal that is also worth looking into that runs faster. [Mercury] -link archived- runs Drupal in the cloud making things very scalable on an as-needed basis.

How do some Drupal websites handle millions of visitors per day?

Everyone handles this differently. Some are using [Mercury] -link archived- for a quick solution that is evolving quickly. Other cloud hosting is used to deliver content to millions. All are using caching as seen in the above question. Load balancers are definitely in the mix. I'm still doing a lot of research in this area.

How do I roll out features from a local test server to a live Drupal website without losing my mind?

Features module is HUGE. It's a module, that creates feature modules... (crazy isn't it?!!). Seriously though, it's going to make transferring view changes, and other groups of configuration stuff (known as features), from a local machine to a live website without the headaches. The process before this was a serious headache.

How many modules are too many modules on a Drupal website?

That's hard to say. NYSenate.gov has 131 modules installed (at the time of writing), with an additional 19 custom modules made by their team! It's running fine. They do a lot of server side caching and load balancing to make Drupal only deliver what is needed, making running a lot of stuff more doable.

How do I publish content to multiple websites at once?

The Space Foundation has a growing need for this functionality as we rebuild our websites. The feeds module, and some custom elbow grease make this process possible.

Is Ubercart (the Drupal shopping cart) really the "one cart to rule them all"?

After using several shopping cart solutions in the past, [Ubercart] -link archived- at a glance looks like it will take longer to setup at first, and kick other carts in the pants right out of the box. It's attractive visually to start, and makes adding products with repetitive atributes (e.g. large, medium small) a snap. It's also evolving very quickly thanks to a great community of developers, and a core developer who uses it daily with his clients.

Why consider an external search service like Acquia hosted Apache SOLR?

Drupal has a built in search feature that works fine. However it gets laggy and dies after a website gets to a huge size. Search relevance is also limited in some ways. Acquia's hosted Apache SOLR takes a lot of load off of a website and gives relevant search results. I've heard that this service is fantastic. It's also "expensive" as others have mentioned.

How does Open Atrium compare to basecamp?

The Space Foundation marketing team uses basecamp to manage tasks and milestones and LOVES it. [Open Atrium] -link archived- is an Druplish open source competitor for use as company intranets. Would I recommend that we switch to it now? No, not yet. However, I'll be keeping a pulse on the project's progress. It's very attractive, easy to setup, and customizable. Since it's based on Drupal, we can also build custom pieces for it to fit our needs if desired.

How does Drupal work in the cloud?

[Mercury] -link archived- is a very exciting project that currently runs using Amazon's Elastic Compute Cloud. It's a solution to large scaled web projects. Point, click, then BAM!: Instant virtual servers are launched, ready to host optimized Drupal websites. This will be in my toolkit for when we need to handle huge spikes of web traffic. It's not a replacement for our hosting needs that are well covered with, but could supplement them on special occasions, cheaply.

What are some cool modules, theme engines, and projects I can't live without?

Thousands of modules are available for download at drupal.org. It can be difficult to sort through all the stuff to find the gems. Here are the latest and greatest items I picked up at the conference:

  • Features module: Configure a site locally, export and upload views, fields, etc. as a "feature module" to a live live site.
  • Panels module: Create customized layouts for multiple users.
  • Migrate module: Migrate an old website to a new Drupal website with relative ease.
  • Feeds module: Import feed content and save as nodes
  • Sections module: specify themes per url path
  • Ninesixty theme: grid based theme to start from
  • Geo module: Allows for storage of geospacial data including points, lines, and polygons with useful content editing features.
  • Geocode module: Convert information you already have into geographic information
  • Openlayers module: Integrates Openlayers JavaScript with Drupal websites, giving access to interactive maps
  • [Ubercart] -link archived- project: A set of modules for making shopping possible in Drupal.
  • Drush: Enhanced command line interactivity with Drupal websites
  • Project module: It's what Drupal uses for dropal.org/projects/*
  • Ctools (Chaos tool suite): A set of APIs and tools to improve the developer experience
  • Update status module: Good for disconnected intranets that need the update features of connected Drupal websites (and other uses)
  • Salt module: "Salts" passwords for further encryption
  • Browscap module: Increased security, browser statistics capturing
  • Pressflow: An enhanced derivative of Drupal that provides improved performance and scalability.
  • [Apache SOLR] -link archived-: Improved search solution, Acquia provides this service as well.
  • Amazon Auto Scaling: Manage Amazon EC2 instances, launching and closing them as needed.
  • [Mercur] *-link archived-*y: Run Drupal in the cloud.

What did I miss? Additional feedback from Drupalers is welcome!

Canada talk at Pat Obrians

Photo by [Todd Holden] -link archived-

I did get a little time late nights to hang out in the French Quarter area with fellow Drupalers. I learned a lot about Canada (curling fights, [radio3.cbc.ca] -link archived-, and Corner Gas)! It turns out that designer/developers in Sweeden have the same client challenges we have in the US. New Orleans also has a local drink called the "hurricane". It tastes awful anywhere you go, but their local beers are great!

Fritzels

Photo by [Todd Holden] -link archived-

One location I visited two nights in a row was Fritzel's European Jazz Pub. They played live "traditional" jazz from 1920's and earlier. I was purely amazed by the talent there, and recommend it to everyone! It knocked my socks off.

Now to apply this stuff! I'm looking forward to it.

Posted: 2009-12-14

Topics