For the growing universe of developers turning to Drupal as a solution for mission-critical or highly ambitious applications, the question is less and less "can we build it?" and more and more "how do I scale it?"
For those of you considering attending DrupalCon Copenhagen this August looking to answer those kinds of questions, I humbly submit that in addition to immersing yourself in the inspirational slipstream that is the Drupal community, you come a day early — and get your employer or client to find a little extra budget ;) — to attend the Scalability and Performance Workshop on Monday August 23rd:
This training is going to cover the practical details of setting up a Drupal server that's ready to handle internet-scale traffic — a top to bottom build with nothing left out or glossed-over — and answer your questions about best practices and processes for building high performance and high scalability sites. I am extremely proud to be helping with this workshop, along with the rest of the "Dream Team" of Matt Westgate, Robert Douglass, David Strauss and Narayan Newton.
This is a group that has built and launched sites that are collectively by now running into the hundreds of millions of pageviews. We've been there. We've made the mistakes. We've vetted the cutting edge technologies. Spending a day with us could save you weeks in getting your next big project up and running.
Not only will the day be packed with real hands-on work, it should also be a lot of fun. We're not quite the Harlem Globetrotters, but we're pretty close. I can personally promise some good laughs and interesting connections to go along with the firehose of know-how.
Hope to see you in Copenhagen!
The 2010 Design 4 Drupal conference in Boston at the MIT Strata Center was a smashing success, spaning two days packed with great sessions and great folks.
The video footage has been posted for those who missed it. The talk that Floor and I gave was an updated version of the talk we gave at Drupalcon SF wtih the added component of a compelling demonstration by Floor Vahn about using Adobe Fireworks and the greybox method to increase the pace of production to lightening speeds.
As with many facets of Drupal, and coding in general, there are multiple ways to accomplish the same task. A good exmple of this was with the recent additions to the Lullabot team. The expanded team brought together three skilled developers and an amazing designer each with their own methods of site building. On one side we have Jerad Bitner and myself, who for the past few years have been building sites exclusively with Panels module. On the other side we have James Sansbury and Jared Ponchot who also build beautiful sites using the more recent Context module.
Our first collaboration was the redesign of Lullabot.com, since this project was initially designed and scoped by James and Jared, the decision to use Context module was already in place. I was in no rush to learn Context, when I knew the same result could be achieved with Panels. Lucky for me James and Jared are both excellent resources for answering questions and giving great examples. Now that the project is complete I have a better understanding of Context module. This article is intended to identify the similarities, differences, pros and cons of using each module to build a Drupal website.
I'm on the customer development team at Pantheon. We're working hard on improving Pantheon and will have a lot to announce at Copenhagen. But we also have to learn about what Drupal developers use for their server setup.
We're specifically looking to talk with people who haven't spent a lot of time yet using Pantheon. We want to learn what you dislike about server administration and love about your current development process.
If you can talk to us this week, we'd love to schedule a 15-20 minute skype call. Email me at Paul@ChapterThree.com if you have the time free.
This would be extremely helpful for us as we make crucial product design decisions.
Previously I've written about setting up APC and memcached on your desktop (or in my case laptop) using Acquia's handy stack installer (aka "DAMP"). This is another quick post in that vein.
The other main caching system I work with on a daily basis is the mind-blowingly-fast Varnish httpd accelerator. If you haven't checked it out yet, get on board (srsly; good MacOS instructions from Nate@lullabot here). I'm more than happy to maintain the Varnish integration module on drupal.org, but I've been bugged by my inability to take this work with me on airplanes and other offline places.
See, DAMP ships without the required socket support needed to "talk" to the Varnish control terminal. I'm not saying this is Acquia's fault. They can't put the kitchen sink in there, and most regular users will never miss the socket extension. Those of us who might, well, we can help ourselves, right?
Right! To get rolling, grab the source and untar it. As of this article, we're working off PHP 5.2.13, but this should be pretty solid advice for any 5.2.x release.
cd php-5.2.13
./configure --with-sockets=shared
make
cp modules/sockets.so /Applications/acquia-drupal/php/ext/
Then add the following to the bottom of your /Applications/acquia-drupal/php/bin/php.ini:
[sockets]
; Sockets are useful!
extension=sockets.so
Restart your DAMP application and hit up your friendly local phpinfo() and you should see a section for sockets. Enjoy talking directly to network interfaces! :)
Angie Byron wrote a nice article on Drupal.org that explains something about how to form_alter CCK fields. At the very end it says:
No, you didn't read that wrong. Sometimes you need to set both ['value']['#value'] and ['#value']['value']. And other times you need to change the field value in $form_state['values']. It seems to be that one controls the value displayed on the form, and the other affects the value sent to the database. You need both to avoid NULL values and "Value is required for field blah blah blah" errors.
If anyone can shed some light on what the heck is going on here, that would be awesome. ;P
We hinted at it when we announced our Acquia-partnered training classes in Washington DC. Now you can officially add our San Francisco Drupal training classes to your calendar. There are two classes in August and one on Drupal Theming in September.
Drupal for Site Builders | Sign Up!
Drupal Panels for Site Builders | Sign Up!
Beginning Drupal Theming | Sign Up!
As always, please visit http://chapterthree.com/training for more information or follow us on Twitter @chapter_three. If you'd like to arrange for a private training based on one of our current curricula or have us one design one specifically for your needs, please email training@chapterthree.com.
That's right, our upcoming Drupal Module Development Deep Dive workshops week in Washington, DC is now officially sold out. Congratulations to those of you who were fortunate enough to register in time. To those who didn't register, better luck next time (insert sad trombone sound here).
But wait! Speaking of next time, we're continuing our new Deep Dive tradition with another full week of workshops in Portland, OR from August 2nd through 6th. This Drupal Theming Deep Dive week will focus on all things Drupal Theming. We guarantee to turn you into a Drupal theming expert in one week! If you register by this Friday, July 9th you'll save mucho bucks with the Early Bird Discount, so go check it out and register today.
If you're not on our mailing list or following us on Twitter, you might have missed the Independence Day weekend sale going on in our store. Today (Monday) is the last day to get 25% off all Lullabot Drupal and jQuery tutorial DVDs and high-definition video downloads.
Spend some time this summer turning yourself into a Drupal superhero!
This entry is to let Google know that a MacBook Pro with serial number W89420K47XK has been stolen. Last known whereabouts: Dallas, TX.
So… Drush. Are you using it yet? If not get drushing!—or whatever you call it. If you're not familiar with it, Drush is a command line interface for Drupal sites. It's the bees knees, if you ask me. You can use it to enable/disable modules, run update.php, get a SQL dump of your site, and all sorts of other magically delicious things.
The problem is, it just keeps getting better. I almost can't keep up with it! The recent release of Drush 3 includes all sorts of goodies, and every day I seem to find more and more. I'm going to take a quick look at a few of them that I'm most excited about.
One of the awesome new features in Drush 3 is the ability to run Drush commands on a remote server. So, I can run commands on a remote site without having to manually connect to that server. In order for this to work, you'll need to have Drush on the server as well as your local machine, and you probably want them to be the same version as well. You'll also need to be able to ssh to the server using key authentication. Check this out:
drush username@myserver.com/path/to/drupal#mysite.com status
One of the things Drupal core does not do well at all is provide an easy way to switch on a WYSIWYG editor. There is no editor out of the box and setting it up requires some custom configuration of several Drupal core settings, installing and configuring several contributed modules, and also installing one or more external libraries, like the TinyMCE library. The Lullabot book, Using Drupal (O'Reilly), devotes a whole section to describing one way to configure a WYSIWYG editor.
The ProblemsIt's complicated because there are lots of inter-related parts:
And all of that gets you only to the point where you can edit text. If you want to allow users to upload images and insert them into their text, you also need to identify which of several possible methods of image handling you want to use, and install and configure the modules needed to manage that.
I don't know if you've had a chance to see it yet, but we've just launched on Monday the United Nations Global Pulse site at http://UNglobalpulse.org. First and foremost, this site acts as a web presence for the Secretary General's "Voices of the Vulnerable" report on the impacts of vulnerable populations and economic crisis.
The site also uses the OpenLayers module and MapBox tiles to accomplish its second goal: show these crises and the response of UN teams grouped by different projects (side note: big thanks goes out to Development Seed for their work on MapBox).
Because the report was announced in a general UN meeting that was picked up by the press, the Global Pulse team needed a very scalable server stack that could deploy quickly, so they chose Pantheon. In addition to being able to handle the jumps in traffic, Pantheon includes Apache Solr. The site runs Solr search because it is a great way to allow for a topic, document type & region-related faceted search.
We were really honored to work with the United Nations on such an important project. We'd love for you to explore the site, and let us know what you think. Find us on twitter @Chapter_Three.
Our long-time colleagues at Advomatic have just rolled out a service that Pantheon users have asked for since we first announced the project. They are the first hosting provider to offer direct end-user support for the high-performance "Mercury" stack, which is now available on all of their fully-managed hosting plans.
We're thrilled to be working with them on this and it's a big step forward for Pantheon. You can read the press release here, and you can learn about Advomatic's hosting service here:
http://www.advomatic.com/hosting/mercury
This means that you can now get all of the performance benefit of Pantheon without having to do any of the work to get your server up and running and keep the system up to date. Advomatic manages everything for you. They also offer 24X7 support, a 100% network uptime SLA, and very flexible hosting plans. They even offer an extended support for Pressflow/Drupal maintenance: no more worrying about security updates!
Have any questions? Send Advomatic an email.
Sam Boyer (sdboyer) has been a long time inspiration to and awesome resource for me when it comes to Git. It's really no wonder that he was chosen as the Git Migration Lead by the Drupal Association.
Here are some of his plans and where you can help participate:
If you have a bunch of VMWare Fusion virtual machines running, you can suspend them programmatically using vmrun and rsync them to a mounted volume. Then, with the copy completed, you can resume the virtual machines.
#!/bin/bash BACKUPDIR=/Volumes/Backup/VMs /Library/Application\ Support/VMware\ Fusion/vmrun list | tail -n +2 | while read VM do echo "Suspending $VM" time /Library/Application\ Support/VMware\ Fusion/vmrun -T fusion suspend "$VM" echo "Suspended $VM" DIR=`dirname "$VM"` echo "Rsyncing $DIR" rsync -av "$DIR" "$BACKUPDIR" echo "Resuming $VM" time /Library/Application\ Support/VMware\ Fusion/vmrun -T fusion start "$VM" echo "Resumed $VM" doneNote: this hung on Windows VMs until I updated VMWare Tools to the latest version on the guest. The above is currently working on Fusion 3.1 for RHEL5 and Windows 2008 R2 Server guests.