Drupalaton 2015 - the memories
"The advantages of variables in Drupal 7 is they're all loaded into memory. The disadvantages of variables in Drupal 7 is they're all loaded into memory".
With this, Károly Négyesi ('chx'), opened his Storing Data with Drupal 8 workshop at Drupalaton to a standing room only crowd - half whom chuckled knowingly, with the rest following shortly after once they'd had a little time to think about this technical juxtaposition.
It is this pull no punches attitude which made chx's workshop, for me at least, the highlight of the event - I like to know what is wrong, why it is wrong, and what we can or are doing to fix it. It was different when I'd asked the Hungarian, now living in Vancouver, to keynote our local DrupalCamp Brighton held back in January. In a departure from his normal techie talks, chx delivered a highly enjoyable and enlightening session talking about the profession of programming and how computer game music was the best type of music to listen to when coding. Here at Drupalaton though, we were back to the nitty and gritty of Drupal's internals.
Chx proceeded to give an excellent overview of the different subsystems of Drupal and how they'd changed from version 7 to 8. Drupal 8 brings together a lot of pieces which were fragmented in Drupal 7 - for example Drupal's Entity API where most of the functionality existed in a contributed module. By bringing it all together into core Drupal and providing APIs it improves maintainability through common knowledge, translation, access, performance and testing. He went on to cover the improved data stores in Drupal 8, for example the state API to store information such as when maintenance updates were last run using cron, a private tempstore for functionality like autosave data and the new quick edit functionality, and a shared tempstore for things like views.
After an intense hour and a half and a short break chx for a moment thought he'd lost half the audience but most soon filtered back in once their brains had a little more time for the coffee to take effect! The workshop continued with much information about how to use these new APIs, and how all configuration was now in YAML files then loaded into the database at runtime. In previous versions of Drupal, many settings were stored in the database and work-arounds such as using the Features module were used to extract settings. These approaches had varying results - as someone coming from an Enteprise Java world where storing settings in files is the norm I for one am very excited about this as it provides far more easier development, deployment and versioning. Features still exist in Drupal 8, but for their original purpose - to create exportable features of functionality.
Contributing to Drupal can be tiring!
After the workshop I made my way to the only air-conditioned room for what felt like miles around and managed to catch this picture of chx resting - with lots of talk recently about 'Headless Drupal' I thought the angle was quite funny.
I'd gone there to do some more work on Drupal 8 Rules - the fifth most popular module for Drupal which enables people to create functionality through the user interface, for example to send an email when someone adds a comment, or to apply a certain tax rate for a certain product in a certain country.
Although I'd previously worked on a few core issues for Drupal 8 like splitting up the 'password strength' and 'password matches' code and cleaning up some unused variables, I'd not really found an area I could focus on, but then I attended Drupalaton last year where there was a whole day of Rules, with a morning workshop bringing people up to speed on Rules in Drupal 8 and an afternoon spent focusing on how you could get involved and contribute.
For me, the workshop format is what makes Drupalaton so special - most other DrupalCamps have half-to-an-hour long sessions where you get an overview of something but don't really get time to delve in deep. I wanted to learn Drupal 8, and helping Rules out where I could to me seemed like a pretty good way of learning it. Since then I've helped update a few Rules Actions, Conditions, and Events to Drupal 8 and although I haven't done half as much as I've wanted to, it feels great to be learning lots and hopefully helping progress things a little bit.
After spending the afternoon learning more about exporting, importing, and deploying configuration management in Fabian Bircher's workshop (slides and a great blog post from Fabian here), it was time for the yearly Drupalaton Cruise Party.
The cruise party is an excellent chance to chill out, see a little more of Central Europe's largest lake, talk Drupal, and enjoy a most wonderful sunset!
The next morning, after I'd managed to complete 30 lengths of the swimming pool and a 20km cycle for the second day in a row (yes, I know, shocker, but the Sun makes me a different person than I am in the dreary rainy grey UK!) it was workshop time again - this morning's being 'From User Story to Behat Test' with Pieter Frenssen.
I'm almost as excited about using Behat as I am about Drupal 8 - after many years of discussions about how functionality X worked, or whether feature X and function Y was included in the original quote, this way of defining requirements provides an excellent interface all project stakeholders can be a part of, with a solid technical backing enabling tests to be performed against sets of Plain English user stories.
The workshop was to go through setting up Behat with Drupal 8 which was great as I'd spent some time recently getting it set up but lacked in-depth understanding of the setup which Pieter's workshop helped enormously with so now I'll be using it on all my projects. There's plenty of info online about Behat so I won't go into more details here.
The afternoon was spent discussing using Drupal as a prototyping tool with Kristof Van Tomme László Csécsy and finding out about Pretotyping. This is of particular interest to me as I continue my work on abilit.es - a topic for another blog I think!
In the evening the lovely Drupalaton organising team arranged a Grill Party - this didn't happen last year but was great as was right next to the hotel and means we weren't dispersed across many different places.
As well as great food a few people had been working on some lyrics and provided lots of entertainment with a fab Drupalaton song!
So long Drupalaton, till next year!
Drupalaton Day Zero: Drupal 8 shipped - you didn’t miss the boat already?
“Shit, shit, shit!” exclaimed the guy sitting next to me, bashing his fingers away on his laptop in the reception area of Hotel Helikon, an ageing family summer fun destination perched on the southern shores of lovely lukewarm shallow Lake Balaton in Hungary where I had arrived a day early for the yearly Drupal event Drupalaton.
You wouldn’t have noticed the extra sweat on my forehead in the sweltering 36 degrees heat, but these words made me nervous, for these weren't the words I was expecting to hear come from Daniel Wehner, the person who has the most commit mentions in Drupal 8. Had Drupal 8 broken horribly? Had some big problem just been found? No - well, not exactly. It was to do with supporting a beta-to-beta update path - more on that in a moment, for the moment let’s bring everyone up to speed.
Patch me in!
“But Steve, wait a code-damn minute there - what’s a ‘Commit mention in Drupal 8’ when it’s at home?" I hear some of you say! It means you were involved in some way in something that ended up being part of the core package of the next version of Drupal, version 8. What is Drupal? It’s a piece of software which currently powers over a million websites around the world. Everyone from those who accidentally became a Drupal developer whilst looking for a solution to help their tennis club to those in charge of running the United States use Drupal to communicate with their community via the web - see more examples over at this showcase of Drupal sites.
Drupal is a Free Software project (you may have heard it incorrectly referred to as 'Open Source'). This means anyone in the world is free to participate in the project - you can use it, study how it works, make changes, and share those changes if you want. A commit mention means you might have fixed a bug, reviewed some code, or been involved in some way with helping an issue move along the process until it has been deemed reviewed and tested by the community (“R.T.B.C.”) and thus ready to be committed to the codebase of the Drupal project. OK, now let’s get back to Hotel Helikon!
Getting on the Island
Later that evening after I’d unpacked and had a little wander around, I chatted with Daniel out on the island which, by daylight every inch of the hotel's small private enclave surrounded by the lukewarm shallow water of the lake is covered with holidaying families. Once a year, by night, the island becomes a hotbed of Drupal chat, especially this time as we are so tantilisingly close to release which has been worked on for four years now since the release of Drupal 7 in 2011.
“BDFL!” Daniel suddenly exclaimed. I thought for a moment - I didn’t recognise the acronym at first, thinking it may have been some internal subsystem only a few people knew as seemed the way with previous versions of Drupal to 8 which is now far more easier to approach using standard industry practices. This BDFL meant “Benevolent Dictator For Life”. It’s how the Drupal works currently, with that BDFL being founder of the project Dries Buytaert, whose own company Acquia recently announced that even though 8 wasn’t released and would be “ready when it’s ready”, they were ready to support customers who wanted to use Drupal 8. I guess this means they would value some kind of beta-to-beta upgrade path.
Grow the island communities
From the perspective of being one of the people who supports that upgrade path whilst also being asked every five milliseconds “When is Drupal 8 going to be ready?” I can imagine it’s probably quite stressful. Acquia aren’t the only ones of course, from a value perspective it means more adoption, certainly an easier life for me as I now partake in Brighton’s Homebrew Website Club to help keep the ball rolling on my migration of my own purkiss.com site to Drupal 8, although now I’ve thought of a few more pet projects I’d like to get up and running now I can actually base my efforts on the solid, well-thought-out foundation Drupal 8 provides me with.
Whatever the case, I leave my peers up to discuss and my readers to join in appropriately if they want. All I know is these decisions could be influenced by me if I wanted as it’s a Free Software project and if I cared enough about a certain topic I could get involved however I fit best and change it, not enough people understand or make use of those freedoms. Whilst Drupal is the largest community of contributors and over 3,000 people have commit mentions in Drupal 8, that’s a tiny proportion of those who use it, many whom make and create a lot of value and some of whom make a shed-ton of money out of it. Of course many more than just commit mentions make the community what it is, however the adoption rate at which Drupal has been taking that percentage is getting smaller every day.
An enormous amount of money comes back into the community in one way or another, but we are quite a way away from being able to simply visualise a piece of software in our minds and it suddenly spring up into existence in front of us without any human expense of effort. We may be able to one day do that - especially if we continue to freely innovate - but for the moment we have what we have, and every little piece takes human resources; at least until we replace them with running code.
As the Drupal project and community grows we need more people to be involved in building and supporting the very foundations which support us as a whole, and if that means rambling on in a lengthy, potentially edgy blog post in order to perhaps gain just one more person as a contributor then, until I am able to express myself in a better way, I’ll be doing that. I gained Daniel’s permission to blog about our discussions, I think it’s important to open up our processes deeply so people can see where they can potentially help out and become part of the thing we commonly refer to as Drupal.
As for the BDFL topic, I think it has obviously shown to work out well so far for Drupal, as for whether it’s a long-term solution well that’s also obvious to humans ;) Seriously though, I have no issues with the current situation until something proves me otherwise, I still believe we have a way to go before we are able to dissolve the fine leadership Dries provides to the community he has successfully fostered for the last fifteen-or-so years now.
Dries always seems open to discussion and is the most patient person I’ve ever met, certainly holds a role I would stress out in five minutes doing. I don’t see it working any differently for the moment at least - perhaps it would take a fork to even prove something like that. Forks are a Good Thing as they show in the long run what works and what doesn’t, providing the ultimate freedom of expression in an interdependent community such as Drupal.
As Daniel and I furthered discussion, he said something which resonated so much with me my virtual self almost shocked itself to spring into eternal existence. Sadly it didn’t, but it now has this quote emblazoned in its tiny, tiny virtual mind: “We should sell the community not the CMS.”
As an independent consultant who sometimes still writes code for certain things (only 8 commits in Drupal 8 so far though!) but works with people far better than himself in the community to deliver world-class software it’s something I’ve been doing but had not heard it in this simple, switch around way before. I invest in visiting the community and see what wonderful things they are building and his words to me, meant when you sell the CMS, you sell a product. There’s expectations put on that product often not knowing how those expectations will pan out. When you sell a community, you focus on promoting the people in that community, and as a Free Software community, provided you join in in some way, you too can benefit from the output.
Let’s just get the issues with the notion of selling Free Software - and people - out of the way. I’m not saying ‘Selling out’, just ‘selling’. Making a sale is an exchange of value between two or more parties, for example “you’ve sold it to me, I’ll use Drupal for my voluntary community project web enabled systems, thank you kindly!”.
It’s been working for me ever since I made the decision last year to not work through agencies after having to deal with yet another bad implementation of a CMS. Drupal is far greater than this, and so is my life. Since then I’ve had nothing but win/win/win results and although my cashflow has taken a dive as longer projects take time to bear fruit, it’s temporary one I'm almost out of and I’m kinda enjoying hacking on some bad code to pay the rent but even there I believe I’ve managed to turn the situation around and have an interesting offline mobile project in the pipeline. Along with the great work we’re doing with CRM (topic for another post!), it’s all about working together and supporting each other, and you don’t get that from talking about Drupal as a CMS.
As for did you miss the boat with Drupal 8? Not if you start now. Don’t wait for Drupal 8, in fact don’t use Drupal. Be part of it. Trust the community of peers and do what you can to help the project move along, and if you don’t know what that is then that is most likely a good place to start looking.
Is it that time already?
I didn’t imagine for a minute it would take this long to just describe day zero but I believe it’s of valu - in the next part I will move onto the workshops of the week, i.e. the ones I went to ;) This will cover why Drupal 8 Rules Configuration Management and Data Storage, manages client expectations with Behat, and why sometimes hospitals may seem a good prospect, but only if there’s air conditioning!
Oh, and a boat party and an outside grill with live music. It's not all serious talk on the shores of Lake Balaton you know ;)
Dropping in on the Brighton Homebrew Website Club
Last night I attended the first meetup of the Brighton outpost of the Homebrew Website Club - I had planned on staying in and blogging about my recent Hungarian adventures at Drupalaton but very glad I popped my trusty Respect Your Freedoms-certified Libreboot X200 laptop into my lovely new Drupalaton tote bag & made the short but always eventful trip across the Laine/Lanes border from purkisshq to 68 Middle Street and made progress on upgrading my website to Drupal 8, here's why:
- focused time meant I actually did what always seems to get put back in the queue, and owning my own data and code is important to me in the long term
- time-boxing an hour meant I had no choice other than to prioritise, for me that was fixing an issue I had with getting DrupalVM running.
- collaboration apart from attending the business day at our DrupalCamp Brighton event I haven't been to 68 Middle Street much since I wrote a blog post about Atomised Web Design where I kinda rip into one of the space's founders & organiser of the Brighton Homebrew Website Club Jeremy Keith (@adactio). Four-or-so years on, and thanks in big part to the stern work of MortenDK, Drupal 8 is a whole load better so I don't feel so bad for my not-so-humbledness of old, plus I couldn't miss an event on a topic I'm so passionate about - Freedom!
Show & Tell
Not realising the openness of the space I may have been my usual loud self when chatting to a fellow fashionably late attendee as we walked around the corner of a bar to the main venue space where there were lots of people sitting round tables with one up showing what they'd been working on. There was a wide range of people and interests, with most discussions being around what software and services people were using to control their internet communications.
It came to my turn - I didn't want to even attempt to connect my laptop up to the projector as I didn't really have that much to show so just waved my latest blog post about What is Drupal? around on the laptop and explained that ever since I attended Léonie Watson's DrupalCamp Bristol Keynote: The metamorphosis of accessibility I have been deeply affected by how far behind we still are in terms of providing any sort of acceptable web experience for everyone, and as I started blogging again I wanted to make sure my creative efforts would be accessible and enjoyable. I wrote a description of the photo in my blog post but noticed the correct tags weren't there for accessibility - WAI-ARIA, ARIA Live Announcements API and TabManager are built-in to Drupal 8.
Other people were using a wide range of tools and languages to build their sites, it will be interesting to see how they achieve some of the things I'm going to be doing with developing purkiss.com over the next few months to explain more about what I do, in terms of delivering Drupal projects by working with the community as well as other parts of how I approach my life experience.
Once updates were all done it was time to get down to business. Fellow Drupaler & DrupalCamp Bristol organiser Oliver Davies had mentioned the other day that I just needed to change nfs to rsync in the settings.yml file and that worked. I should've seen that but wasn't thinking - NFS is Windows, I'm using Linux ;) So by changing just one setting I had a whole virtual machine with a fresh, working install of Drupal 8 up and running on my 7-year old technology but freedom-respecting laptop - so much for Drupal 8 is complicated enterprise-only!
Next was reading up on a production-ready version of the virtual machine which I could host on DigitalOcean. Once I learn more about the sysadmin side of things and feel more confident, I'd prefer to host it from home as there don't seem to be any suitable distributed options I know about / could use which fully respect mine (or yours) freedoms - surely there's business to be made there?! I'm also looking at a more home-grown solution from the UK - VLAD, but for the moment I'm going with what I know is working for me and once I'm a little more confident and can inspect a working system I'll see where I can go from there.
I'd just started to get into the production-ready issue when the preverbial bell rang and we were out of time! I made my way up to the Brighton Farm weekly new media freelancers meetup where, amongst many other interesting conversations, I discovered the Cubieboard, which according to the FSF is all good for Freedom apart from the WiFi controller, but as I don't plan on hosting wirelessly this sounds like a good option to investigate for self-hosting.
I'm looking forward to the next Homebrew Website Club meeting in a couple of weeks, certainly managed to achieve movement and am looking forward to getting off the Drupal 7 island into the wide open waters of Drupal 8!
What is Drupal?
Drupal is people. Drupal is figuring out people. Drupal is figuring out how to make things better. Drupal is about feeding yourself and your family. Drupal is about feeding other people's families. Drupal is about going to places you'd never considered going to. Drupal is about laying in the lake and watching the stars at night. Drupal is about making money for your business. Drupal is about making things easier. Drupal is about accessiblity for all. Drupal is about opportunity for all. Drupal will tell you what you need to know. Drupal is there for you to tell and show. Drupal is the push and the struggle. Drupal is the hook. Drupal is about taking those moments to really get your teeth into something you're passionate about and feel like you're maybe making a difference. Drupal is about escapism. Drupal is firing up the laptop and tethering before you get on the plane so you can git clone the latest dev release to take a look through the code until you're sleepy just to show off a bit more Drupal to fellow passengers who may take a glance but also learn something at the time. Drupal is about sharing your costs. Drupal is there to learn how to share. Drupal is there to provide a path to follow. Drupal is about sharing your thoughts and visions. Drupal is finding out where the line is when you didn't even know there was a line. Drupal is finding out the magic of everyone. Drupal is about survival. Drupal is tolerance. Drupal is about sustainability. Drupal is opportunity for all. Drupal is forcing you to face up to your conditions. Drupal is understanding. Drupal is a battle, an upheal struggle. Drupal is simple. Drupal is about sharing. Drupal is about caring. Drupal is hugging. Drupal is your voice. Drupal is special. You are special.
Drupal is your True Pal.
Case Study - NickJr. Colour CMS & API - Feedback sought!
It's been an embarrassing amount of time since I last blogged or did anything to my site so I've started to create some content, but before I submit it as a case study on Drupal's site I'd love to have some feedback, it's been years since I wrote case studies so a little rusty. Is it of interest? Does it help? Does it answer the right questions? Are there any questions you'd like me to answer?
Viacom’s Nick Jr. is a digital television channel aimed younger children, home to popular shows including Dora the Explorer, Angelina Ballerina, and PAW Patrol. 'Colour' is a section of the Nick Jr. website where, daily, tens of thousands of users interact with predefined line-art drawings using paint brushes and stickers. They can then, if they wish to, send pictures they create to their friends via email. The mostly Flash-based front-end currently connects to a legacy back-end system which is being replaced with Drupal.
Completed Drupal site or project URL
Why Drupal was chosen
Drupal's core and contributed modules along with customisable web administration interface provided all the functionality required out-of-the-box and is already used widely throughout the organisation.
Describe the project (goals, requirements and outcome)
The goal of this project was to provide a bespoke back-end CMS based on Drupal to replace the legacy system, along with introducing new functionality enabling Send to Gallery and Pic of the Week features. The CMS needed to as simple as possible for content managers to use, and the whole system had to be able to cope with the tens of thousands of users using the API on a daily basis.
The site was to be delivered as a Drupal install profile so it can be adapted and re-used – an initial step towards creating internal Nickelodeon-specific distributions of Drupal, further lowering costs and time-to-market for future projects with similar requirements. Purkiss built a similar system a few months prior for Universal Artists uView Augmented Reality App and have extensive experience integrating Drupal with 3rd party services so were ideally placed to deliver this type of Drupal project.
First we set up the install profile with Shiny, the administration theme which comes with Drupal Commerce Kickstart, to be the main theme to the site. Shiny is a great theme for this kind of system where there's really only one main display the content managers interact with – it's easy on the eye with good typography and spacing.
We then re-created what functionality was required from the legacy system using Drupal Services – the calls for saving images, retrieving images for a show, etc. There was a major difference here as the legacy system stored all the data in flat XML files with no user data linked. Drupal is a relational database system so we have user accounts, content types and taxonomies – this proved to be an exercise in both education of the client as to the benefits of hooking into the Drupal API, along with re-architecting of the current content model and workflow.
We used a Features-based approach to development with each of these features, along with the install profile, having their own private Git code repository in the cloud in order for issue tracking and maintenance to be easier.
The features we delivered were as follows:
- NickJr Colour Image – stores the user’s image along with a Canvas ID which refers to the line art used, a taxonomy field to link to the associated show, and two flags – one to show if the user has sent the image in to Nickelodeon for consideration to be included in the showcase, and one to denote whether it is in the associated show’s showcase.
- User Profile Fields – extra profile fields to store the user’s name and age.
- Redirect after login – redirects to the front page view after logging in.
- Pic of the Week – Views Bulk Operations Component – one rule to set and one to unset an image as Pic of Week
- Showcase – one to set and one to unset an image as to be in a Show's Showcase
- NickJr. Colour API – the Services settings for the custom API endpoints.
- Shows Taxonomy – with Pic of the Week field
- Always harmonize views filters – Allows views to use both contextual and exposed filters for views
- Front Page – Displays all images, defaults to only show images Sent to Nick
- Showcase – Displays images in showcase, all if no show_id sent through
- User Profile – Displays users images on their profile page
Project timescale and budget was for an incredibly tight 10 days which we delivered in, however were subsequently hired for a further 7 days to re-factor the API and provide a few final additions to the administration interface.
Out-of-the-box, Drupal Services module provide a standard set of API calls so you can do things like create a user, a node, etc. so all the functionality required was there however required a number of calls to the API to achieve the desired workflow. It was decided to spend extra time creating custom API endpoints which would hide this functionality, reduce the number of API calls required, and make it easier for future users of the API.
The downside to this approach is the technical debt introduced when diverting away from the *.drupal.org infrastructure of support, i.e. core and contributed modules. In this instance the code was simply wrapping existing API calls and the client has access to technical resources so the decision was to take on the technical debt in order to produce a more tailored outcome.
We used the extra time to create a RESTful API which abstracted away from Drupal Services out-of-the-box API endpoints along with coding an auto account creation system to link up user data from the front-end without users having to enter their email address, a requirement of Drupal’s user account creation. We documented the API using Drupal’s inbuilt help module and passed the system over to the client, helping them through building the system from the Drush make file.
The resulting system is a clean, simple-to-use CMS with RESTful API handling thousands of users on a daily basis. Content managers have a separate role with very restricted access so can only do what they need to do on the system.
We really enjoyed delivering this project, however alert anyone thinking of building similar to allow extra time, especially if it is their first Drupal experience - no matter how good specifications are, issues usually arise in one form or another. Also often once people do start using Drupal and see the possibilities available, requirements change and it is good to allow for those to be taken into account.
Purkiss helps organisations onboard Drupal through consultancy, development, training and support. For more information about Purkiss services please visit http://purkiss.com
Why these modules/theme/distribution were chosen
- boolean_formatter – makes the user interface a little nicer by providing icons for boolean fields such as ticks and crosses
- CORS – required for connecting to the front-end
- EVA - we used an Entity Views Attachment to display users pictures on their profiles
- features - features allows you to export configuration settings to code
- filter_harmonizer - Views Filter Harmonizer fixes an issue when using multiple filters on views
- mimemail - used to send images via email
- rules - as described above, used for redirecting user on login and for custom views bulk operations
- services - used for the RESTful API
- shiny - an administration theme we are using for the entire site
- smtp - for sending email
- strongarm - for storing variables in features
- views_bulk_operations - to enable easy workflow, such as adding an image to a showcase
- views - so we can display the data we want easily
As the API is specific to the client and used mostly existing functionality we had no code to contribute. The only custom code was for automatic account creation and there are existing modules which provide similar functionality which we used the code from but is too specific to this install to re-use externally.
This is however the second time we’ve been asked for this sort of system, and with the growth of mobile apps we are currently working out whether it would be possible to create a distribution which will help get most of the way there - at least have relevant modules and perhaps an example scenario based on the simple image requirements for this project.
drop.coop podcast episode 1 - Drupal Drop In Sprint London Saturday 26th January 2013
Audio & Video tracks also available on Archive.org
drop.coop podcast episode 1 - Drupal Drop In Sprint London
- Robert Castelo
- Stefan van Hooft
- Pedro Cambra
- Steve Parks
- DrupalCamp London in March - a marriage made in…
- drop.coop - Europe vs. U.S. ways of doing business
Drupal Association Election 2013: Why I am withdrawing my candidacy, and who I'll be voting for
It is that time of year again when the Drupal community (1/4 of a million people last time were eligible as they had logged into their drupal.org account at least once in the year previous, although only 655 voted, roughly 0.25%) have the opportunity to choose who sits on the Board of Directors of the Drupal Association, a U.S.-based educational non-profit organization that tasks itself with fostering and supporting the Drupal software project, the community and its growth.
Well, I say that time of year again, but actually the first of these community elections, where Donna Benjamin and I were voted in, happened less than a year ago back in February. The election has been brought forward in order to align the yearly goal-setting which was made before we were elected, so we had no say over the 2012 goals, and however strange it feels as we haven't had our full year to show what we have done before the community is asked to vote again, I believe we can use this to our advantage.
For a period of a few months, the Drupal Association will potentially have four community-elected Directors, which is one of the reasons I've decided to withdraw my candidacy for re-election. If I am re-elected, we will only have three, going back to two in February 2013 when Donna's and my terms finish. Why is this so important? Read on...
At the moment there are twelve seats on the Board. Two are empty, and one is nearly or is free as it is currently held by someone who had made it clear they couldn't make the meetings - I've certainly never met nor heard from them. That leaves us with seven - Dries Buytaert, Danese Cooper, Angela Byron (webchick), Tiffany Farriss, Jeff Walpole, Vesa Palmu, and Cary Gordon. These elections are for Donna and my positions, which only last a year, and you are eligible to vote if you have an account on drupal.org, logged in during the past 12 months, and created your account before 31 August 2012 when the election was announced. The remaining three positions are to be chosen using a nominating committee.
As for the make-up of the Board, Dries and webchick are both Acquia; Danese is Open Source Strategist for Bill & Melinda Gates Foundation and on Board of Open Source Initiative; Tiffany runs Palantir.net along with husband George DeMet; Jeff runs Phase2 Technology; Vesa runs the recently formed Wunderkraut (previously four companies); and Cary Gordon, who runs the Cherry Hill Company - "a Los Angeles based boutique system integration and development shop serving libraries, education, non-profits and NGOs", has history in running many, large, music concerts, and used to be Events Director for the Association.
Donna runs a small Drupal business in Australia, and I have been freelancing building web sites for the past eleven years. The last seven of those I have been focusing on Drupal, and the last few of those years I have been trying to build a business as building web sites myself doesn't fill me with enjoyment - it is something which paid the rent after I was made redundant back in the dotcom days where I was consulting on, and winning, web site projects which had six figure budgets.
Then there is also an Advisory Board, although my only contact with them personally was during DrupalCon Denver where we had a strategy session together late in the evening after the open Board meeting - our Board meeting ran late during DrupalCon Munich so at 9.20pm it was decided to can the planned strategy session.
Learning Drupal the Hard Way
In order for this story to make sense, I have to delve into some history. I'd love not to have to, and believe it or not I've tried to make it as brief as possible.
What makes me get up in the morning and work late into the night is creating value by connecting people with people, people with technology, and technology with technology - after all, my core process is "fostering connections". I discover who and/or what needs to be connected for mutual benefit, I connect, I check the connection is working, then I go elsewhere and rinse and repeat.
In 2005 after a few years of helping people on the business network Ecademy find out more about free software, for free, I came up with a concept of how I could make money out of my talents as a connector, and in turn others could make a living out of whatever their talents were, simply by raising the intangible free software into the tangible world via a scalable variation on coworking spaces, which were beginning to crop up at the time. I coined the rather long title of Organic Open Source Cafe Coworking Concept and was so sure that everyone else would "get" the idea they would be throwing money at me to build them all over the world!
I had a mentor through Ecademy at the time, and one particular day when I was stressed because no-one was throwing pots of money in my direction, he recommended I needed a break. He was doing a talk in Toronto that weekend, so I thought where better to chill out than above the clouds, and promptly booked my tickets. Ecademy itself is a Drupal site, however I wasn't using Drupal myself (I had settled on XOOPS after working my way through the *nukes) and had the same view of Drupal as many still do - I thought it was just too damned hard to even bother taking a look.
I loved the "go for it" attitude in Toronto and decided to return home, pack up, and come back to Canada for a while, see if anyone there would throw me pots of money. The first few months were fantastic and I met many luminaries of Free Culture, including Lawrence Lessig (creator of Creative Commons), Eben Moglen (founder of the Software Freedom Law Centre), and John Terpstra (co-founder of the Samba project). We spoke at length about my concept and got some great responses and feedback. I then met a girl who I didn't realise hadn't been on "meds" for three years, in fact I didn't even know what "meds" were.
Without getting into the ins-and-outs, let's just say it didn't get much better from hereon in, apart from one thing which happened which was one of the XOOPS websites I made for a client, the now defunct LinuxVAR.co.uk, was relaunched in Drupal, which really pissed me off, so I finally cracked open Drupal and was hooked straight away - I couldn't understand why they weren't shouting about how good it was!
At the time I couldn't be seen to be interacting with anyone else, so I learned Drupal just by downloading modules and reading the code. I was quite adept to this as when I first learned how to code at the age of nine I spent most of my time in my bedroom on the computer playing around with code. I couldn't control my parents arguing, but I could control this amazing virtual world I had in front of my eyes. Having spent my childhood buying floppy disks of Public Domain software pre-Internet, I didn't know there was this whole "community" side to it, but I did realise soon that it could do everything the software I had previously been selling for £70k+ per licence, and all for Free.
Thanks to a good friend, I finally managed to "escape" the bad relationship and return back to the UK. I ended up going bankrupt a few months later, but shortly before that I tried my first piece of community interaction, I posted a little module I'd written for displaying your LinkedIn profile in a box. Five and half years on, still no response. OK, so it was probably posted in the wrong place, but how was I supposed to know?
After bankruptcy I picked myself up again and managed to build a good business because I knew Drupal. A year later I managed to pick up a great project for Mazda, and I used that money to move myself down to Brighton where I soon set up a local Drupal user group, and last weekend we had our second successful DrupalCamp, with everyone from career-changers to schools, charities, and multinational corporates turning up and joining in. The rest is history.
Although I've been in the Drupal world for many years, I still feel like an outsider sometimes, and I know many others feel the same - we have the Drupal "echo chamber". I remember once picking up webchick on a point during DrupalCon Denver when she said "100% of the community want this function on drupal.org" - I pointed out to webchick that it was actually "everyone you asked", as I'd asked everyone in the Drupal party the previous night and none of them even knew there was anything going on with drupal.org. Many people don't even know drupal.org is there or what it does.
Even when I'm lucky enough to be sitting in the back of a car with UID1 himself (although I learned recently that he was actually UID2 originally as it was his mate who installed Drupal first before he asked to swap UIDs!). Those who submitted code seemed to be the ones who were looked after the most, but I know from my previous experience of many years working in software houses that it takes more than coders and designers to make a successful project, it takes project managers, sales people, marketers, etc. to provide an all-round offering. If you leave geeks to do marketing they will do their best, but a better option is to get them connected to people who are experts in their field.
The Simple Solution
Drupal wasn't, and isn't built by money, it is built by people with passion. And some with money, no doubt, but the extremely long tail of the Drupal community is what makes it work and keep on growing. At the moment that works with code, but it doesn't successfully reach out to many non-code focused people. Marketing people, sales, project managers, etc. all mostly work outside the issue queues and in companies - they still work in a proprietary way, and that doesn't scale. The trouble is, if it's not on drupal.org, it's not on the same system which successfully created the software and the coding community.
The result of this is we've made a wonderful modular piece of software, we just haven't built the modular business model on top of it yet.
This is what we are beginning to fix with DrupalBAM - Branding and Marketing Committee. This is not a committee to create any chains of command, it is simply to put a system in place so those who want to join in and contribute to the project can. As webchick said during the Governance BoF in Munich:
"Things like committees and charters, they're scary words, even though it's not that scary, it's just putting people where an individual used to be in a lot of cases, or putting five people where a hundred people used to be"
We are essentially open sourcing Drupal's branding and marketing processes. This means working on big ideas, but also attending to the details at the same time, like helping get through the marketing-related issue queues. Because we are now "on the system", we can do things in parallel, and anyone is free to join in and help. It is going to take time for people to get onto the system and used to what little flexibility we have on the current system, but already it is working and we are seeing results.
As more people use the system, more issues will be resolved, more different ideas will be shared, the easier Drupal and *.drupal.org will become to use, and we will have a more rounded and fair community, with more people having an input, and more people helping out.
At the moment people are shouting "just do it" but not telling people what they want them to do, and even when they do they seem to make it as hard as possible to do. The amount of times I've looked at issue queues and run away, yet within five minutes of talking to someone it all became clear - that isn't scalable quickly though, unless we all start making short video tutorials, but better to make it easier in the first place to join in. As Jared Spool said in his DrupalCon keynote, you either have to raise the level of knowledge of your users or lower the complexity of your software.
Much work had been done on marketing before, but in many different places and having many of the same conversations - I know because I spent a ton of money going around as many Drupal events as I could in order to learn as much as I could about the business side of things as I have had little help from "official" bodies who are supposed to provide support and help for those who want to build a business, but the Drupal CXO people were all sharing ideas, and I was listening intently.
Why we need more representation on the Board
When I could finally afford to go to my first DrupalCon it was only a couple of years ago in Copenhagen. I had just been to an event here in Brighton entitled "Connecting Innovation" where Ken Thompson did a workshop and a talk on "Virtual Enterprise Networks". I read the book and the model Ken had created and used with clients including NASA seemed to match pretty much how the Drupal community looked to me - lots of companies, freelancers, and people across the world all coming together to create something bigger than the constituent parts.
I was really excited as I'd spoken to many people who had trouble finding work even though I kept hearing of this "Drupal Talent Gap", and the only way to get work seemed to be either be great at business, or work for a company. For many, Drupal is about Freedom, and the thought of doing a 9-5 is pretty abhorrent to many I spoke to. Drupal is also different in that the person you want to help you could be the opposite side of the world, it's such a big project it's impossible to know everything about it.
As I mentioned in my previous nomination back in February, I saw someone I knew was on the Drupal Association Board and asked if there was anyone I could speak to about this method which meant we could all collaborate on the business side only to get a response of "They're all very busy working for very large corporations", which of course threw me a bit. It didn't give me a great impression of the Drupal Association, and instead of pursuing that, I spent the next eighteen months working out the starting point for this so I could do it myself.
Eventually I worked out the first and most important part was to create a live skills heatmap so we could see who's available where and when, and what skills they have. That can be companies and individuals, and would enable us to work more like the film industry does when they come together to produce a film. It also mimics the natural world much more, for example starlings where no one single one knows the whole journey but together they do.
I began this year pursuing this and it was my intention to go round the events so I could talk to potential members and clients. It didn't turn out quite like that because at the second event, CXO Process event in Amsterdam, I bumped into Vesa Palmu and upon asking him about the elections which were going on he said there had only been a couple of people nominate themselves. After my previous experience with the DA not wanting to talk to me I thought "Well, they would have to if I was on the Board, right?" and as it was deadline that night I decided to nominate myself. Amsterdam can be trouble sometimes!
The next day a Drupal friend had made me a graphic "Vote Steve!" image and within a week I was voted in. I got a fair amount of backlash for the "Vote Steve!" thing, but I'd personally never heard of an election without a campaign, and at the time it seemed like a bit of fun. I'd helped many people out over the years with Drupal, and well-known in the community, and as it was a community position I felt "well, if I didn't have a community of supporters, I wouldn't really be a good representation of the community, would I?". Sure, we want people from under-represented countries, but as mentioned above, we have three further seats on the Board available which could help there, plus we could always consider opening up more seats.
It was a strange start to my Directorship, but within a month or two we had already managed to take the work we'd been doing on marketing and with the help of the Board we created the committee and charter. Ben Finklea was chosen to head it up as he had 'made it happen' in Denver at the marketing BoF, and whilst others had done much groundwork before, it was Ben who took the lead over the final hurdle and got everything and everyone in place to make it happen.
Admittedly I went into the Board with guns-a-blazing, however I realise many issues arise due to lack of, or no communication, and have grown to highly respect each and every person on the board. They have all made remarkable contributions to the Drupal project, and we have a wonderful opportunity to broaden the reach of the Board and we should be focusing on that.
Looking to the Future
DrupalBAM is just one solution, we need to focus on improving our own communication tools. We seem to have to use a different web conferencing each week - when this is such an integral part of how we collaborate it is essential that we invest in our own, free and open source, scalable systems. I've started a discussion on improving web conferencing tools if it's something you're interested in.
Biggest of all IMHO is helping move the Commons 3 project along and get it onto gdo so "normal" people can collaborate easier. There's some prototypes here and I believe Acquia are helping, but we shouldn't always look at other people to help, we need to work out ways to fund these sorts of initiatives ourselves and share the load.
The Drupal Association needs to focus on improving the tools we use, and working on stuff which a business couldn't necessarily make money out of but is of great use to the community. There is one candidate who is on the infrastructure team, and although I thought at first that wouldn't be a good fit, I'm actually thinking it might be the perfect fit - providing we don't just focus on the devs but the community as a whole - I'm sure that's their plan anyway.
Looking Even Further into the Future
The trouble with everything being on *.drupal.org is that then provides one central point of failure, one point of control. Absolute power corrupts absolutely, so it's something we will need to look at and try to solve. Exploring possibilities of the federated web is where we should be looking to next, but hey, let's get past this period of growth first before we worry too much about that.
Finally - Why?
Because if we don't massively and quickly improve our communication both internal and external, we may end up thinking the Drupal Association is something like this:
We have something special here with Drupal. My most memorable moment is at an OpenAtrium BoF in Chicago when most people were from universities and government institutions, but there was one guy sitting next to me who was built like a brick s******e - I asked him what he did and he said he helped prisoners on their 12 step programme when they come out of prison - he'd just downloaded OpenAtrium and was using it, thought he'd pay his few hundred dollars and come along to DrupalCon to find out what else he could do with it.
Drupal changes lives for the better, let's not lose that by voting in people based on whether we like them or not - read through their nominations and think about how they can help us grow and help us navigate safely across the chasm from innovators to early adopters and get in ship-shape ready for Drupal 8, which in real terms is not that far away when you consider how much catching up we have to do in certain areas. A manual process needs to be backed up with systems in order to scale.
When I decided to nominate myself for re-election it was because I didn't know who was going to put themselves up for nomination, now I am happy that there are many there who have far much more experience, passion, and energy than me to do what is needed in order to move successfully forward through the launch of Drupal 8.
These last few months have been an incredible journey, but it has cost me much in terms of cash and health. My 71 year old mother who has been through many illnesses was in hospital yesterday as cancer has spread to her other breast. She's out now and recovering, but again it is a reminder to me that life is short and I need to focus on getting my own life in shape and be happy again, and perhaps one day find or make a bucket of money so I can build a network of community spaces as I mentioned above ( offers of help welcome ;).
I will still be a Director until Feb 2013 unless I get chucked off ;) I hope you choose our new Board members wisely - I'm sure you all will, especially if you managed to get this far ;)
BTW, Vote Matthew Saunders, he has by far the most appropriate experience along with the passion to see it through and will serve us well. As for the others, well, I already mentioned the infrastructure side. Other than that, look at who's ideas are scalable, we have less than a year until the potential release of Drupal 8.
Stephen B. Purkiss
Council web team join in Digital Festival fun as Brighton hosts its second Drupal Open Source Camp this weekend
Members of Brighton and Hove City Council's web team will be joining over 70 'Drupalers' this weekend for sessions and workshops presented by other members of the Drupal community. The council are currently migrating their website over to Drupal, an Open Source platform for building websites and applications which runs over 2% of the web, everything from Data.gov.uk to The White House website.
Steve Purkiss, local Drupal Trainer and Consultant, is organising the weekend's free line-up of activities along with other members of the local group. Steve founded the Brighton Area Drupal Association and was recently elected Director of the US-based nonprofit Drupal Association in their first ever community elections. Steve helped oversee the council's migration to Drupal and remarked:
"It is great to see the council and many other local enterprises adopt Drupal as their open platform of choice for building web sites and applications. Creating immersive web experiences and making the most of the latest technology requires continual innovation and by working to a common goal on a common, free, and open source project, we affect the bottom line and innovate faster.
Drupal's culture of helping others as well as ourselves fosters great communities, and creates more jobs and opportunities for local people and suppliers. Its motto 'Come for the code, stay for the community', really shines through on a weekend like this, we welcome anyone to come along and see it in action for themselves!"
Drupal is one of the largest Open Source communities and many 'DrupalCamps' are held around the world every week, providing space for not only sessions and learning, but also act as 'pop-up' co-working spaces where those involved with the project get together and work on improving the software, as well as working on non-code areas such as organising and tidying up case studies for the http://drupal.org web site.
With Open Studios on Friday 14th September; fifteen sessions over two tracks covering business, beginner, and more advanced topics on Saturday 15th; and an un-conference style day on Sunday 16th where attendees host their own sessions on topics of interest, there are plenty of opportunities to discover more about Drupal and see just what it is that makes this open source project such a resounding success.
For further information and free tickets to the weekend's events visit http://BADCampUK.net
BADCampUK organising, Drupal Marketing Research and DrupalCon Videos #WIDT
(first published earlier today on What I Drupaled Today)
Today (probably yesterday by the time I hit send!) has been a long day of organising our Brighton Area Drupal Association BAD Ass Drupal Weekender which is happening a week Friday, plus crunching videos from DrupalCon BoFs and continuing discussions on the Marketing of Drupal, more on that topic later!
I decided to call it BADCampUK because I wanted to echo the community element of what I saw happening over the other side of the pond in the legendary BADCamp. I've learned a lot since we put on our first proper camp back in April of this year where we had 80 people turn up, mostly that we have a very long way to go before we could really claim to be anything on the scale of the original, in terms of both size and sponsorship for people to attend. Luckily Brighton is an hour away from London where we have much good Drupal talent so it wasn't too expensive for many to come, but we realise there are many others who would like to attend where we could be of much more help.
We had many from much further away too, and the whole weekend was inspiring - so much so we decided it would be best to hold our second BADCampUK during September when the Brighton Digital Festival is on. There's over 100 events, currently the Reasons to be Creative conference is underway and people are traveling from all over the world to attend to see the very latest in technology and design. The month of celebration kicked off with a digitally explosive digital fireworks display by creative coder extraordinaire Seb Lee-Delisle.
With the next Drupal Association Global Training Day on 14th September I managed to book our local coworking space The Skiff which is a non-profit and where we hold some of our meetings. It's a really cool space, but I can see we could easily need far more space next year. One discussion is to hold them at the local Universities so we can grow interest amongst students, we'll be investigating that option for our next one.
We are still a small but growing fast group of Drupalistas here in Brightoncisco on the sunny(!) South Coast of the UK (a city with over 2,500 'new media' businesses & freelancers according to WiredSussex) with our pebble beach, promenade and piers and pints. Unfortunately we recently lost a couple of good members to other parts of the country and world, however we are also starting to see quite a few new members beginning to join in the fun, some whom have worked with Drupal for many years but not participated much in the community aspect. This, I am sure is also down to the post-local DrupalCon effect - wish I'd been transported to one the first minute the word "Drupal" entered my head! It's great to see the group grow, and after our meeting Monday night we now have a plan for almost the next year in place, which is great because I'm great at getting things going... ;)
Which brings me swiftly to the next topic of the day, and that is really all about topics of discussion over on the Marketing of Drupal group on groups.drupal.org. Some of the people are used to how Free/Libre Open Source Software works, some aren't as much. I, for one, have not typed as much on gdo in the last seven years as I have typed in the last week and a bit since Munich.
With the benefit of hindsight, some of it I think has been admittedly not well-thought out, and for those I apologise if any offence has been taken. I do though think it is good to get these things out because more communication on what's happening outside the star dot drupal.org sphere is a Good Thing. It will take a while for me, and others I am inviting to join in our conversations, to understand the full extent of what has been built over the last twelve-or-so years here and I ask you not for your patience, but to help guide us so we can grow and become of great value to the community as a whole by bringing more perspectives, skills, expertise, resources, and maybe cakes into the commons.
We have been answering the following questions about Drupal in the marketplace, and we invite you all to have your input. I know many out there will probably wonder when I'll shut up, but I also know many are also gaining value out of opening up these discussions and re-asking them now:
- What is it that Drupal does so well?
- Who are our "mindset" competitors that we need to overcome?
- Who are Drupal's competitors and what do they do particularly well?
- Who is Drupal's target group? What are their demographics? Psychographics?
Last but not least I converted and uploaded a couple of the videos I took at DrupalCon Munich:
- One for those interested in the forthcoming [London DrupalCamp](http://archive.org/details/DrupalconMunich-Bof-Drupalcamp-London-GetInvo...)
- One for those who organise, or want to organise local groups/camps/sprints/etc. - [Community Leaders Unite!](http://archive.org/details/DrupalconMunich-Bof-CommunityLeadersUnite)
What did you Drupal today? You don't have to say, but it would be rather jolly if you did! Post yours here:
DrupalBAM Branding and Marketing - Setting the 'ends' before working out the 'means'
(first published earlier today on What I Drupaled Today)
After tidying up the DrupalBAM ('Drupal Branding And Marketing') group homepage and structure last night I saw the conversation had started to flow so today, after getting my own personal chores and meetings out of the way, I caught up on the conversation.
I wasn't sure what I was going to see, sometimes in the community these sorts of discussions can easily go off-topic, run on forever and never get anything done, or not pick up at all. Luckily none of those had happened and a good discussion is getting going. This said, I saw the discussion was talking about the means and not the ends. "More developers", "grow grow grow", etc. are all ways of doing something, but you need to work out what that something is first, and to me, growing more developers is not an ends but a means resulting from the way we've done things so far. I've met many great developers who simply cannot find work because they're not in a particular supply chain and/or they don't/can't do 9-5 in an office in London. A better way is to work out at a higher level what the 'ends' are - for example "to be able to find a great drupal developer with ease", and to find means to support that, preferably from existing community efforts which we can support, grow, and bring closer to the community.
If we solely focus our means on growth and more developers then I believe we are only solving an ends which comes from companies who want to grow the amount of staff they have, and that's not what Drupal is about - we do that and we end up potentially putting a lot more strain on those who do lots to support the community and who don't get paid for doing it.
Have a read of my post "Ends not means please!" on the DrupalBAM group and please post and have your say, whatever your role in the community is do please make sure your voice is heard and tell them what you think about it all.