DrupalCamp London - a weekend without tents
I had the privilege of attending DrupalCamp London on the weekend of March 2nd and 3rd. I wasn't really sure what to expect but was hoping it would be like a mini DrupalCon. I was not disappointed one little bit. It was very well organised, the talks and BoFs were fantasic and there was a great atmosphere. The best bit for me was that it was more intimate than a DrupalCon and I found it easier to get chatting to a variety of people.
Saturday sessions I attended:
Keynote: David Axmark, MySQL co-founder
An entertaining walk through of the history of MySQL. Even though MySQL has always been open source, they set out to make money from it from day one. This was a fascinating insight into combing open source with commercial reality.
Drush Make Driven Development - Steven Jones
I've been using Drush Make for a while, but it was good to get an overview and pick up some new tips. If you don't use drush make, it allows you to define the modules and patches you want in a make file and running a command to build a site. You do not need to store contributed Drupal code in your source control, which saves duplication.
My Vagrant Love Story - Joe Baker
A light hearted and hilarious talk on why Joe fell in love with Vagrant. Joe gave a great overview of Vagrant and walked through the setup of a simple Vagrant box. If you are not using Vagrant, it is a tool for development environments that are configurable and portable. One of the main benefits is that every person in your team uses the same Vagrant box and therefore has the same dev environment. No more "it works on my machine".
Wake up and smell the CoffeeScript - Rob Knight
Manage your assets with the Scald Module - Sylvain Moreau and Olivier Friesse
The Scald module is an asset management system for Drupal. It is similar to the Media module but has some differences. One difference is that it can store tweets and Facebook status updates as assets. The interface for the Drupal 7 version looks great and looks like the sort of thing my clients would love.
Make your cheap VM fly - Greg Harvey
Greg took us through the VM optimisation techniques Code Enigma use. Greg is a fabulous presenter and made it all look very interesting. The main take aways are:
- Use Percona as it is faster than MySQL and more stable than Maria DB
- Use Ngnix as it is faster than Apache and has no .htaccess file (Apache has to read .htaccess for each page load)
- Only use Varnish if you have over 4GB of RAM, otherwise you will do more harm than good
- Use APC - its a no brainer
- Use New Relic or Tracelytics
Fun with Form API - Joe Schindelar
Joe took us through the basics of the Form API and why it is so incredible. I didn't learn anything new here, but wasn't expecting to. However, I did thoroughly enjoy Joe's talk. I have seen him present on Drupalize.me and he is always top class.
Drupal 8 UI changes - Lewis Nyman
Another one of the days entertaining talks. Lewis kept the crowd happy and laughing with his witty talk. He presented the modules that are in and out of core for Drupal 8 and many of the UI changes.
Sunday sessions I attended:
Keynote: Step 4: Distributions could help, if we do them right - Robert Douglass
Robert's keynote was all about distributions, why companies build them. He read through one of Dries' blog posts from the days of Drupal 5. Yup, we have had distributions since Drupal 5. They are a powerful feature, but only now is the Drupal world starting to really unleash their force. There are some high profile distributions available, such as Commerce Kickstart, OpenPublish, Open Atrium, Drupal Rooms etc. I have just finished a project with Dennis Publishing, who use a private distribution to run their many Drupal websites.
He moved on to the somewhat controversial topic of an App Store. He started off comparing the elegance of Google+ and Facebook when it comes to handling images to Drupal. Robert explained that we used to have a generic image module that did most things out of box but now we have abstracted everything. It now takes nine steps to build a image gallery and there are many different ways of doing it. That is great for clients who employ site builders to build some specific. Not so great for someone who just wants a working image gallery. You COULD make it as awesome, but it would require a lot of work. The point here is that Drupal provides toolkits, not finished products. This is where distros and apps can help.
The idea with the App Store being that if a customer is using a distribution, they could visit the AppStore and buy an app which is a finished product of some sort. For example, a fully working, one click install, no configuration required image gallery.
Robert contrasted that to Wordpress where you can buy a fully working, great looking, one click install image gallery plugin for $20 which includes commercial support. Robert showed a slide with how much money a single image slider plugin had generated. Robert then made the point, we are all in this to make money. Passion goes a long way, monetary incentive can go further.
This lead on to a BoF, which I attended (notes at the end).
zip-BDD-do-dah zip-BDD-ay! - Andrew Larcombe and Graham Taylor
Andrew started off with an overview of what BDD is and why you would want to use it. Graham then took us through a demonstration of Behat and it explained it very clearly. I have already used Behat, but still found the overview very useful. Capgemini have Behat integrated with both Jira and Sourcelabs. With the Jira integration, the business can add the test to a Jira ticket, and it will run the test without the test code being committed. With Sourcelabs, a secure tunnel is created between your local machine and Sourcelabs and the test is run. Sourcelabs records the test and you can watch a video of it going through the browser. It will take snap shots along the way, so you can see exactly where the test fails. Great stuff!
Architecting Drupal Modules - An agile guide to choosing the right architecture for your module - Ronald Ashri
Ronald took us through how you should architect modules from an agile point of view. It is about using principles, guidelines and patterns to define your architecture, not recipes. The main point is, don't think about the Drupal way of solving a problem initially. Instead, use solid OOP principles and then apply them to Drupal.
Ronald has written a blog post covering much of this on, you should check it out.
App Store BoF
There was a BoF on Sunday afternoon to follow up to Robert's keynote. The start of the discussion was centred around how we can build a common App Store with a consistent user experience. When installing a Drupal distribution (or even a standard Drupal install), a customer would shop for "apps" to install. These apps would work out of the box with no need to time consuming configuration. App developers could commit to a central repository.
There was discussion around the fact that Drupal provides toolkits to build web sites and applications. It does not provide a finished product by itself. Modules are built by developers for developers and site builders with an awesome level of collaboration. An app will not change that, but will instead offer finished solutions to non-technical (or low technical) customers.
Robert talked about Wordpress a lot, which has some commercial plugins. These plugins offer finished product to non-technical end users. Robert made the point that there are software vendors who sell their software to markets such as Wordpress and Joomla, but will not touch Drupal as it stands because of the lack of a marketplace to sell them.
One of the main benefits of distributions and apps make it easier for all of us to sell fully working products to end customers. It was mentioned that this is where the mind shift is because it is about much more than making Drupal by developers for developers. Ronald Ashri talked about making a distribution for tours to sell to travel agents as the next step from Drupal Rooms. Robert pointed out that this is the key difference - Ronald is talking about an entirely different audience to site builders. His audience would be travel agents. And this is where there is a massive opportunity to expand Drupal's market share.
We did talk about technical issues and there are many. If you look at Features as a method for exporting configuration and creating "Apps", we currently get conflicts between Features. These need to be resolved on a case by case basis by an experienced Drupal site builder or developer. For this to be a true app model, they need to work out of the box without conflicts. In the end, the group decided not to focus not this yet as it is viewed as a technical issue that can be resolved. More important is ensure that the community does not get split over the concept of paid for apps.
On the topic of compatibility of Features, since the BoF Alan MacKenzie pointed out Kit. According to the project page, Kit is a specification, it is a set of guidelines that facilitates building compatible and interoperable Features. This could go along way to helping the community create fully working one click install apps.
If you would like more information, see Drupal App Store BoF on the Open App Standard group. I'm sure there will be a lot more debate within the Drupal community about this.
What Drupal event would be complete without a healthy dose of socialising? After all, Come for the software, stay for the community. From the official party in the The Slaughtered Lamb to chatting in the corridors, I had great fun with old and new faces.
Thanks to the volunteers
Massive thanks to all the volunteers who spent a lot of their own time making this event happen for all of us. Everything ran smoothly and without a hitch. It was a great weekend of camping with Drupal without the need for tents!
If you liked this, you'll love my book, Master Drupal Module Development.
"..the must have drupal developers book"
Feeling stuck with Drupal 8 module dev?
Get the free 7 lesson course that will help you get started today without feeling overwhelmed.
- Create Drupal modules with just a few commands using the Drupal Console
- Create custom pages
- Create custom blocks
- Create admin forms
- Demystify routers and controllers
- Bonus material