Drupal Planet Feed https://purkiss.com/drupal-planet-feed.xml en DrupalCamp London 2017 - 5th and best yet! https://purkiss.com/blog/steve-purkiss/2017/03/07/drupalcamp-london-2017-5th-and-best-yet <span>DrupalCamp London 2017 - 5th and best yet!</span> <div class="field field--name-field-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/styles/max_325x325/public/2017-03/dclondon_2017.png?itok=unoSkjby" width="300" height="100" alt="DrupalCamp London logo" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Tue, 07/03/2017 - 21:15</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Two days back and I find myself still exhausted from an exhilarating <a href="http://drupalcamp.london/">DrupalCamp London 2017</a>!</p> <p>To me this felt like the best one so far, with a number of contributing factors - the new entrance and layout to the our host City University I believe was a major contributing factor with all but the keynotes on one subterranean floor which meant much less wandering from floor to floor between sessions and far more opportunities to chat with fellow attendees it being all in one space. Crowded at times for sure, but much better than spread over multiple areas - this is one thing I've learned about Drupal events, the more close together everything is the more interaction it creates.</p> <p>With Drupal 8 development fully in swing and growing in functionality at a pace no previous versions experienced due to the adoption of semantic versioning (i.e. 8.1, 8.2 and 8.3 very close as we speak) there's also a lot to catch up on, and being from an OO background before my Drupal days I find the sessions far more interesting. Many of my camps of late I have spent in the sprint rooms or the <a href="https://en.wikipedia.org/wiki/Birds_of_a_feather_(computing)">BoF (Birds of a Feather)</a> sessions, however this weekend I went to quite a few sessions which I'll provide summaries of below.</p> <h2>Friday - CxO Day</h2> <p><img alt="Photo of DrupalCamp London 2017 CXO Day audience and presenters taken from the back of the room" border="0" data-entity-type="file" data-entity-uuid="211e4135-1ead-4cd9-8259-efbc359852d5" hspace="5" src="/sites/default/files/inline-images/dclondon_cxo_day_0.jpg" vspace="5" class="align-right" />Billed as an event primarily aimed at Drupal service providers I attended the first few CxO days however as the ticket price increased and as a veteran of many events I felt I knew most of the attendees already (I'm a networking junkie!) I had decided to skip last year's CxO Day and sprinted instead. This year though they had a much more affordable ticket price for freelancers and charitable foundations/NGOs (they may have had it previously too but I must've missed it) so I decided to attend as I thought the audience would also be a little more diverse with the new tickets. One of my current clients is an NGO, so thought it would be great to meet more as they do operate quite differently to for-profit businesses and it's good to understand where their needs differ.</p> <h3>Organisational Stupidity</h3> <p>The day started off well with an inspiring session on the 'stupidity paradox' from City University Professor of Organisational Behaviour <a href="https://twitter.com/andre_spicer">André Spicer</a> where he outlined the trouble with organisations wanting to hire the best people but not providing the best environments for them to excel in. One of the examples he covered was the Ford Pinto issue they had where the petrol tank was badly placed and caused explosions. When it first happened an employee had a hunch there was something serious but due to peer pressure of other work colleagues saying did he really want to take it further up through all the management levels and so on, he had decided not to however of course it turned out there was and it caused untold amounts of mayhem.</p> <p>Having been independent for the past 16 years I don't have much love for the corporate infrastructure so found these stories quite amusing and pondered what better ways there are to organise. I've been investigating cooperative infrastructures for the last few years and find they have many issues too, most seem to be around decision-making at scale. A third way - and the way Drupal works - is <a href="https://en.wikipedia.org/wiki/Commons-based_peer_production">Commons-based Peer Production ('CBPP')</a>where both individuals and organisations alike collaborate on products. This works well with the production of software, although does suffer from a few issues around influence however due to the openness of the framework the opportunity is there to make changes if you want to, and of course forking of projects as a last resort is always possible although not favoured, especially with a community the size of Drupal! CBPP is not perfect though, especially when it comes to issues around the <a href="https://en.wikipedia.org/wiki/Tragedy_of_the_commons">'Tragedy of the Commons'</a> - something which I am trying to address by creating a <a href="http://platformcoop.net/">'Platform Coop'</a> where community members can collaborate on initiatives and issues at a commercial level - hop on over to <a href="https://drupaldynamics.com/">DrupalDynamics.com</a> if you'd like to get involved.</p> <h3>A tale of Drupal woes</h3> <p>We then moved on to the second session from <a href="https://twitter.com/iamreevo">Paul Reeves ('reevo')</a> who took us through his Drupal journeys, focusing most on his time at mega-corp Viacom working on their various media sites, mostly the MTV UK ones. Paul seemed very nervous but I don't know why, he'd presented before at a CxO event and sure knows his Drupal stuff!</p> <p>Paul detailed how over the years they had adapted Drupal for their needs and created a system they called 'NOAH' (Node Object Affinity Hub) as content they created went out to a number of different websites and systems, for example the text snippets of info you see appearing at the bottom of the screen when a song is playing.</p> <p>When Paul presented previously in 2013 I asked whether they had collaborated with any industry peers on this functionality as to me it seemed something which was fairly generic and could be useful to others and of course would help share the workload of building and maintaining something of this size in terms of complexity and functionality. Paul said they hadn't but would like to - after all, it's Viacom/MTV's content that provides their competitive edge, not the code they use for their systems. Sony understood this years ago and that's why we have the Drupal Views module as they wanted functionality their non-technical people could use and decided to contribute the outcome back to the Drupal project, and views is now part of core as of Drupal 8.</p> <p>Sadly it seems this sharing didn't happen and seems to be a major contributing factor as to why MTV UK and Viacom's other brands are now moving away from Drupal. I feel bad as I've said for many years we need to help people at the industry level to share more - it's only by sharing code that Drupal is what it is now, and to build and maintain such functionality as NOAH provided is not an easy task, especially with a team of four or five people as Paul had. Neither I or anyone else has successfully created a comfortable environment for sharing at the industry level yet. <a href="https://www.acquia.com">Acquia</a> have their 'LSD - Large Scale Drupal' initiative however that's pretty closed so I don't know what goes on much there. There's also the <a href="https://www.drupal.org/project/thunder">Thunder Drupal distribution for publishers</a> and a sprinkling of others including the interesting <a href="https://www.drupal.org/project/farm">FarmOS</a> however I do believe that with Drupal 8's more OO architecture and adoption of many tools to make distribution creation and maintenance easier such as composer, configuration management and continuous deployment, we have the opportunity to re-visit a re-address this area by creating more industry-specific distributions. Linux has various distributions, but Drupal's can be geared towards business functionality as that's where the value is with Drupal, it's built-in business experience from many years of real-world implementations as opposed to other systems where functionality is made in order to sell licence fees - most Drupal functionality is built because someone needed it.</p> <p>I was a little disappointed as the session ended as I go to Drupal events to be uplifted about Drupal, not to be disappointed that we failed in a situation, and although it's good to present these retrospectives, perhaps it was the time slot being the first Drupal-related session and just after an inspirational session that made me feel like that. I also thought it wasn't a great intro to Drupal for anyone who had attended from 'outside' of the community, especially with the new tickets for charities and NGOs. I realise the event is billed for Drupal service providers, I do feel as it's on a Friday it's going to attract those interested in adopting Drupal and although the camp organisers said they'd changed the line-up due to feedback from previous years, the people providing the feedback aren't necessarily the 'customers' you want to follow the needs of 100% - a point which was covered in the next session.</p> <p>When asked what he'd do differently if given the chance, Paul did point out collaboration as a key ingredient, as mentioned now we have better tooling hopefully we will be able to change these sorts of scenarios in the future. I still see a lot of duplication when it comes to areas like local councils - unfortunately the mix of business pressures in terms of competition and ability to sell hours of time, along with no independent bodies funding core Drupal initiatives it is not an easy nut to crack - again something I'm trying to address partially with <a href="https://drupaldynamics.com/">DrupalDynamics</a> - we will see. As economic pressures mount, hopefully the want to share and lower costs the idea will become more attractive to industries.</p> <h3>What to build next?</h3> <p>The third and final session of the morning was by <a href="http://www.benfinn.uk/about.html">Ben Finn OBE</a>, who gave a presentation on how he calculated which were the most important features to create for the music software that he created then sold for millions. I found much of the content very interesting, including the part I mentioned earlier with regards to who you listen to - often the loudest ones aren't the ones who actually make you money. I did find it a little hard to work out how to apply his methods of calculation to our Commons-based peer produced software where we are not selling licence fees - it is an entirely different minefield of a multitude of options and it would've been good to get his thoughts however I realise this is not his area of expertise. It did make me happy I'm no longer working in the proprietary software world and do have control over the features I want, although I left the session wondering what actual value the talk had to the Drupal world - I realise they wanted to make the talks more diverse, to me this was a little too diverse. Interesting nonetheless.</p> <h3>A Trip Down Memory Lane</h3> <p>After eating the substantial lunch (food is *always* good at the CxO day!) I felt a little deflated and tired from the very early start so I decided to skip the afternoon and take a short walk down the road to <a href="http://exmouth.london/">Exmouth Market</a> where I lived 17-odd years ago back in the dotcom days when I worked for a J2EE software company which basically did the same as Drupal but proprietary and in Java. We had the first modular web app software with modules covering content management, commerce and collaboration along with a web management interface where you could create your own content types... sounds familiar ;)</p> <p><img alt="A montage of views of Exmouth Market, a small street in EC1 full of shops, restaurants and bars" border="0" data-entity-type="file" data-entity-uuid="6513f238-48a0-4ff9-a1f2-03f41519effe" hspace="5" src="/sites/default/files/inline-images/dclondon_exmouth_market_0.jpg" vspace="5" class="align-right" />Exmouth Market is one of these little havens in the middle of a city which you wouldn't necessarily know but is a small community unto itself. I walked past my old flat (pictured, above the tattooist), which was next door to a blue plaque commemorating <a href="https://en.wikipedia.org/wiki/Joseph_Grimaldi">Joseph Grimaldi, the first 'clown'</a> and visited my old local <a href="http://www.cafekick.co.uk/">Cafe Kick</a>, having a little giggle on the way at the sign next-door for 'Barber Streisand'. It was nice to see an old friend too as the Portuguese lady who runs the kitchen there is now approaching her 20th year of service. We remarked on how things had and hadn't changed, I sipped my drink, then went to check in at my hotel only to return to Cafe Kick later to meet up with my colleague so we could catch up on the next day's session we were running and on old times as although he lives in London it's been two years since we last met in person back at <a href="http://montpellier2015.drupaldays.org/">Drupal Developer Days Montpellier</a>.</p> <p>Happy hour at Cafe Kick is 4-7pm 7 days a week, so with £2.50 beers fun times ensued although I noticed a considerable difference in the clientele this time round with it mostly being students as opposed to city workers as it mostly was when I lived there, and the music was far more commercial then the cool tunes I had been used to in days of old - I'd discovered <a href="http://www.manuchao.net/">Manu Chao</a>, <a href="http://www.stgermain-music.com/">St Germain</a> and many others there!</p> <h2>Saturday - The Main Event</h2> <p>After a disturbed night of sleep and a much needed Full English at the <a href="http://www.thistle.com/en/hotels/united_kingdom/london/thistle_city_barbican/index.html">Thistle Barbican</a> (the closest hotel to the venue, just a short 5 min walk - book on their site for a free breakfast!) the camp 'proper' kicked off with a keynote from <a href="https://twitter.com/nmdmatt">Matt Glaman</a> who works for <a href="https://commerceguys.com/">CommerceGuys</a>, creators of the awesome <a href="https://www.drupal.org/project/commerce">Commerce suite of modules</a> and associated native e-commerce functionality for Drupal. I say awesome as, unlike some others, I believe native commerce is the way to go for Drupal so fully support their efforts - I prefer my clients to invest their budgets in virtualising their business models as opposed to continually paying for external integrations often into SAAS products which may change their APIs at any time or disappear off the face of the earth if their business model changes or doesn't work. Integrations may be more lucrative for the supplier but costly for the client in the long run - integrated is the way forward - IMHO of course and based on my previous experience with winning clients back in my J2EE days which not many also experienced so guess I see it from a different angle.</p> <p>I was a little hesitant at first as this keynote was different than many others previous but I was extremely glad they did make this choice as Matt really hit the spot talking about his journey from delivering beer to delivering Drupal. Coding had been a hobby of his and something he didn't even think he could make a living out of, let alone one which enabled him to live anywhere he liked and travel the world in the process. It was a refreshing change from the 'normal' keynote we have at 'camps and 'cons and gave a really good insight into the Drupal community and how it can help people of all walks of life build a future doing something they enjoy. It's certainly helped me massively over the last thirteen years since I first encountered Drupal through the now-defunct ecademy.com business networking community which ran a heavily customised version of Drupal, and his talk provided a great intro to those who may have only just joined the community perhaps as part of their jobs. Too often people don't really understand the community and this was the perfect intro so a big thanks to all who made it happen, and of course to Matt for coming along and sharing his journey with us!</p> <h3>The Future of Content and the Unknown Consumer</h3> <p>First session of the day for me was from <a href="https://twitter.com/richardjones">Richard Jones</a> whom I know well from the <a href="https://groups.drupal.org/brighton">Drupal Brighton Group</a> I'd set up many years ago when I first moved to Brighton. Richard always seems to be doing a talk somewhere on Drupal and has provided much support to the Brighton group over the years and I was interested to see his latest talk 'In Real Life'.</p> <p>Richard covered the multitude of devices which now deliver content as opposed to just the website and how we can prepare and cope for these - mostly down to understanding that content is separate from design, something many from a print background need to understand more as you never know where or how your content is going to be consumed - by a talking box in your kitchen or as one interesting example he showed where a billboard in Piccadilly Circus showed a kid pointing at aeroplanes as they flew above, listing out the actual flight details as they went past, as seen in the video below:</p> <div class="video-embed-field-responsive-video form-group"><iframe width="854" height="480" frameborder="0" allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/RYOUvIeSqsw?autoplay=0&amp;start=0&amp;rel=0"></iframe> </div> <p>Richard's talk was entertaining and informative, and anything which helps make people think twice and again about putting anything other than content in their content is a Good Thing in my books!</p> <h3>The Empty BoF</h3> <p>In the coffee break between sessions I went along to a BoF session as it was entitled 'How we can help other projects' and being run by the organisers of the camp. As they had just become - and the first DrupalCamp to do so - a <a href="https://www.drupal.org/association/supporters/partners">Premium Supporting Partner of the Drupal Association</a> I thought I'd go along and see if they'd be able to help out with the <a href="https://drupaldynamics.com/">DrupalDynamics Platform Coop</a> I'm creating to support the community. There's many areas I'm going to need assistance with apart from just gathering members - all the operational sides of building a cooperative and advice on legal sides of things, and so on.</p> <p>Sadly the BoF had been cancelled and removed from the whiteboard but not the website so I sat in an empty room for a while, but eventually caught up &amp; understood with the hectic day it was just not possible to squeeze the BoF in too and we agreed to catch up in the future to chat about it.</p> <h3>Change your life with Xdebug</h3> <p>Second session of the day for me was a practical session on getting Xdebug set up with <a href="https://twitter.com/ed_crompton">Ed Crompton</a>. Despite having spent many years previous to my Drupal days using debuggers, I've never managed to successfully get Xdebug working on my machine. I've been close many times but just didn't manage to get everything hooked together right so I was determined I wasn't going to leave the room until I did, not sure if Ed appreciated that but with his help and that of his colleague we finally figured it out so big thanks to Ed &amp; co, now I don't have to keep all those variables in my head lol ;)</p> <h3>More than a CMS: Native Drupal CRM &amp; BPM</h3> <p>After lunch it was time for the session I had organised for my friends who've been building native CRM &amp; BPM functionality in Drupal for 7 years now but have little coverage in the community for a number of reasons. They're not a VC-funded operation and although they've tried before to work closer with the community to incorporate their work they've been knocked back for various reasons unknown as what they've built could seriously place Drupal in a league of its own. Sure, Drupal provides content management functionality but it's a platform, and when it comes to CRM functionality it shines, especially with Views as they provide a great interface for creating reports. Again I guess I see many of the benefits due to my previous experience with integrated functionality - we used to win deals all the time as our competitors used to propose a number of different packages plus integration costs whereas we could provide a set of common modules and only charge for the business-specific functionality to be built on top, thus providing a complete 100% solution instead of having to maintain a number of different packages and relying on other people's business models for your core business model. The integrated approach IMHO is far better and enables clients to virtualise their core business models, then connect to any beneficial third party software as and when they so wish.</p> <p>I believe Drupal trying to compete just in the CMS marketplace is not a winning formula in the long run and doesn't really market what Drupal does well, providing sovereignty over code and content, and a platform for functionality which is integral to the operation of today's web-based businesses. With integrated content management, commerce, and CRM/BPM, Drupal stands out in a league of its own. There are many far more polished CMS systems out there, but none which include the sort of functionality Drupal can provide organisations of all levels, and the more we support those integrated projects like the modules <a href="https://twitter.com/yautja_cetanu">James</a> and his team at <a href="http://freelygive.org.uk/">FreelyGive</a> have been working on, the better Drupal the product will become. That takes a bit of forward-thinking though, and many of the business people just go for what's already proven and easy to implement - to me that's never been the way Drupal the project works and as I'm in this for the long term I'm more than happy to provide what support I can to such efforts, hence organising this and a few previous sessions we've delivered.</p> <p><figure role="group" class="align-right"><img alt="James and I presenting native Drupal CRM &amp; BPM at DrupalCamp London 2017" border="0" data-entity-type="file" data-entity-uuid="a04e5114-d8ed-42f1-ac20-e41e078367e9" hspace="5" src="/sites/default/files/inline-images/dclondon_native_crm_bpm_0.jpg" vspace="5" /><figcaption>Photo courtesy @wmortada<br /> https://twitter.com/wmortada/status/838028390225620992</figcaption></figure></p> <p>I provided a short introduction and James then gave his talk, which sadly had changed since I'd last seen it as he'd spend the previous day with his commercial manager (I had suggested his time would be better spent networking with the CxO attendees that day as many agencies were there who could be potential implementers but hey, I can only do my best to advise!) and to me seemed to be a bit OTT on the sales side saying how much money there is to be made providing this functionality to clients and not enough of the 'meat' of what it is they've actually built, with only a couple of screenshots at the end which, to be honest, aren't great as it's software developed by developers and lacks the more polished design of functionality that's out there in the community and being used by many people like many of the other CRM options there are in the Drupalsphere.</p> <p>This was a shame as having now worked with James and his team on a number of commercial projects I've had nothing but amazing feedback from clients who much prefer the integrated nature as opposed to them having to fiddle around with often huge external CRM systems and not being able to get exactly the information they want, or having to go through often manual workflows of exporting data in CSVs, manipulating in spreadsheets then importing into other systems in order to gain the management insights they need. Instead with native CRM functionality the exact information you need is there, in realtime, when you need it, and Drupal's built-in functionality of content types, fields and views make it super-simple to customise to your exact requirements. They have implemented systems with over 200k contacts using this system and built an amazing event ticket system as many of their clients have particularly complicated needs where for example one person is in charge of organising the tickets and others pay deposits and so on. Due to the integrated nature those contacts who then later want to perhaps change their details can do so and the system will acquire the details and create full user accounts for them on the site.</p> <p>In Drupal 7 they've had to do some pretty complicated code to create a 'userless user' but what they have built means you can build systems which simply cannot be created using the other CRM offerings as they all depend on a 'contact entity' as opposed to this system which uses the notion of a 'marker entity' which stores the data about contacts. James did detail a number of systems like this they've created, such as one where they have thousand of people camping and need to be able to organise which part of the camp people are going to be in based on a number of factors - a process which used to take two to three months which now only takes a couple of weeks with their system in place.</p> <p>I've signed James up to do another talk on this at <a href="https://seville2017.drupaldays.org/">Drupal Developer Days Seville</a> in a few weeks which as a previous attendee he knows is more developer-oriented so will bring out more of the 'meat' one would hope. I think I put it down to they're just really keen to get more people involved and it's hard to know how in the Free/Libre Open Source Software world without talking about how it can make them money. Drupal 8 will hopefully make things a lot easier as it provides a much easier architecture to work with, so they now have the <a href="https://www.drupal.org/project/decoupled_auth">Decoupled Auth</a> project along with <a href="https://www.drupal.org/project/contacts">Contacts</a> providing the base for their work. James has shared a google doc of the plans for a Drupal 8 MVP to make things more visible and easier to use for other community members so looks like it won't be long before things will move which is great.</p> <p>Ever since I first met them a few years back when I recorded their <a href="https://archive.org/details/DrupalSciencecamp-CrmInDrupal-CivicrmPartyAndMore-RobertMumford">Native Drupal CRM session at DrupalCamp Cambridge in 2012</a>, then hosted their 36-hour BoF at our DrupalCamp Brighton I've been a big fan of their work - it's how Drupal should be built and is a shining example of the amazing things Drupal can achieve as a platform and so much more than just a CMS. Sadly it's not always the best technical solution that wins (I always cite the <a href="https://en.wikipedia.org/wiki/Atari_Jaguar">Atari Jaguar</a> as an example of this - the first 64-bit games machine you've never heard of!) but the one which is marketed the most, the latter is where I've been trying to help, and hopefully my work with <a href="https://drupaldynamics.com/">DrupalDynamics</a> will also provide more support too in the long run.</p> <p><a href="https://www.slideshare.net/stevepurkiss/more-than-a-cms-native-drupal-crm-bpm">Click here to view the slides from "More than a CMS: Native Drupal CRM &amp; BPM"</a></p> <h3>Native Drupal CRM BoF</h3> <p><img alt="Photo of the CRM BoF we held at DrupalCamp London 2017" border="0" data-entity-type="file" data-entity-uuid="6042dac2-cff6-4d6d-a2ce-24bb2fd641b6" hspace="5" src="/sites/default/files/inline-images/dclondon_crm_bof.jpg" vspace="5" class="align-right" /></p> <p>The guys had booked a BoF session for the coffee break after the next session so I hung out with them for a debrief and although the feedback I had from a couple of people I knew was good, that's kinda what your friends are going to say. I guess the perfectionist in me is saying that - one person did turn up to the BoF, but of course it would've been nice to have a room full of people ;)</p> <p>All in all I'm glad they did give the presentation - getting anything noticed in Drupal is not always an easy thing, especially when you're covering an area as big as CRM. It's also a continuous effort - you've got to keep at it and be present as much as possible. I've built a number of communities up over the years and it does take a huge amount of effort, but I believe it pays in the long term as the more people you have using your stuff, the better your product becomes and the more help you get.</p> <h3>Freelancers BoF</h3> <p>To finish off the day I went to the Freelancers BoF <a href="https://twitter.com/farez">Farez</a> organised. These BoFs have become a regular thing and we generally discuss the same things but this time I took the opportunity to hand out sets of the profile cards I'd designed along with my awesome illustrator I met back in Brighton, <a href="http://www.lucyirving.com/">Lucy Irving</a>. I love her work and she seems to understand my ways of thinking, and more importantly puts up with my crazy rants (as you obviously do too if you've made it this far lol!) - I highly recommend her work if you need anything done!</p> <p><img alt="Photo of the DrupalDynamics profiles - Dynamo, Blaze, Tempo and Steel" border="0" data-entity-type="file" data-entity-uuid="da47d6f9-6fbe-4a7b-85ce-16c4c4880f7c" hspace="5" src="/sites/default/files/inline-images/dynamicards.jpg" vspace="5" class="align-right" />I explained the four different characters and how they are associated with four different frequencies - <a href="https://twitter.com/drupaldynamo">Dynamo</a> - Spring energy always asking the question 'What?' which I am, is all about the ideas, promoting other people's products and services, and good at starting things but not so good at finishing hence the need to work in flow with other profiles. Then there's <a href="https://twitter.com/drupalblaze">Blaze</a> - Summer energy who's all about connecting with people and is always asking the question 'Who?'. <a href="https://twitter.com/drupaltempo">Tempo</a> - Autumn energy and all about the 'When?' and 'Where?' and is concerned with the timing of things, very down to earth - total opposite of my Dynamo energy - my sense of timing is awful at best! Finally there's <a href="https://twitter.com/drupalsteel">Steel</a> - Winter energy and all about the system and the details.</p> <p>I first discovered this system through ecademy.com which I mentioned previously was my first experience of a Drupal site where I met Roger Hamilton who has his system of 'Wealth Dynamics', essentially all based on the <a href="https://en.wikipedia.org/wiki/I_Ching">I Ching</a>. There are numerous profiling tools out there, but this is the only one I've found which really lets people discover what their 'flow' is. For example, although I can code and have done for many years, I am definitely not the person you want sitting in your office all day coding. I thrive when I'm promoting other people's products and services, and whenever I do projects like this the result is always far greater than even I expect so that's why I'm continually working towards focusing on that as a business model, along with my <a href="http://www.nickheap.co.uk/articles.asp?ART_ID=210">'core process'</a> - another tool I discovered through my ecademy connections and came out as 'fostering connections', which totally described what I do both in terms of technology and people.</p> <p>I believe this profiling is something essential to us being able to collaborate at scale with others around the world. When you work closely with people, perhaps even in the same office, in time you get to know what the person is like but with the disparate nature of our community we often don't get the chance to do that and this helps us discover quickly who we could be teaming up with in order to achieve results. Many in our community, especially freelancers, do *everything* whereas if we teamed up and stayed in our flow we could collaborate and be able to sustain our lifestyles without the usual thing that's happening that people end up giving up and going back to employment or long contracts because they can't survive on the feast and famine environment they create by trying to go it alone.</p> <p>So anyway, I gave the cards out and explained about the <a href="https://drupaldynamics.com/">DrupalDynamics</a> project and how the previous incarnation worked well with matching skills tags (see <a href="https://gitlab.com/drupaldynamics/website/issues/2">this issue on GitLab</a> for more background and forward thinking on that) and how we can promote our services and collaborate on products there but I'm not sure I managed to explain myself very well as people were still asking about how we could continue the conversations after the event - I guess we will see, I'm going to be continuing to build the system at pace now anyway! It happens at every freelancer BoF we have, also all the marketing meetings over the years. ATEOTD the *.drupal.org infrastructure is good for sharing code and is the reason Drupal is what it is today, but when it comes to collaborating at scale and having discussions of a less technical flavour it's really hard to get traction on there, so instead of just talking about it for years I'm going ahead and building it, but this time with a business model attached so I can sustain it!</p> <p>If you want to find out your profile, register on the <a href="https://drupaldynamics.com/">DrupalDynamics website</a> and follow the one-time login link which will then show you a link to <a href="https://www.geniusu.com/">GeniusU</a> where you can take a free test to find out which profile you are then paste your GeniusU profile link back into your DrupalDynamics link so we know which profile you are. The free test only takes a few minutes and I believe it can help anyone improve their life by knowing what their 'flow' is - many don't follow their flow as it doesn't seem like work when they do (like me typing now heh!). The GeniusU also has more products but you don't have to buy anything it's just I can't link the test up unless I pay loads of money which I haven't got for a partnership so I'm hoping in time we will have enough members to attract more interest from Roger's crew to build a partnership. These four profiles are only one part of the education, there's much more to it and I hope others will join me on my journey through it as I've learned a lot about how I'm going to build my legacy - I also think many of their members would benefit from Drupal systems so plenty of opportunities to be had on all counts! Their community reminds me much of Drupal - doing something good but often misunderstood, meets regularly offline and sits around tables collaborating on projects, and so on.</p> <p>Finally on this topic I thought I'd explain why I decided to make these profiles a required field and thus a requirement. First, it's free so doesn't preclude anyone joining, and second to be honest I'm tired of trying to collaborate with people, wondering why things aren't moving as I had imagined, then finding out it's simply because I didn't know what frequency they are, for example a few days after I submitted the CRM session I finally managed to get James to do the test as he hadn't wanted to as I'm sure many others out there feel but seriously just do it. Turns out he's Steel energy and I watched Roger's video on 'Your Losing Formula' which I've embedded below where he says the last thing Steel wants to do is go out and meet everybody I just need to analyse everything! Also Steel is metal energy and chops down my Dynamo wood energy, so every time we brainstorm my ideas just get shot down every time. The worst thing about this is it's not personal - it's just the different energies, so whatever you think about this system just give it a go as I've as much belief in it as I have of Drupal and I've been in both communities for 13 years now but this is the first time I've brought them together. I've been to many Drupal events around the world and tried my hand at many different parts of Drupal wondering where I 'fit in' but it was only last year when I was looking back and realised this is where my life experiences fit in, bringing the WealthDynamics to Drupal, hence the name <a href="https://drupaldynamics.com/">DrupalDynamics</a>, so do <a href="https://drupaldynamics.com/user/register">join me on this journey of discovery</a>!</p> <div class="video-embed-field-responsive-video form-group"><iframe width="854" height="480" frameborder="0" allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/7HQUBwEWcpw?autoplay=0&amp;start=0&amp;rel=0"></iframe> </div> <h2>Sunday Sessions</h2> <p>After the big night out on Friday I didn't stay that long at the Saturday social so missed out on lots of singing and dancing I see, but was up bright and early for <a href="https://twitter.com/HornCologne">JAM</a>'s keynote. Jeffrey's a well recognised figure in the community having presented at seemingly every Drupal event there is so it's always good to see what his latest topic is about, this time it's diversification and raising the level of services you're providing clients. So not just talking about Drupal - in fact not necessarily mentioning Drupal at all - but the value you're providing for clients instead of just coding websites. He went through a number of examples like <a href="https://roomify.us/">roomify.us</a> which provides hotel booking systems all based on Drupal, and a QA tool <a href="https://probo.ci/">probo.ci</a>. The gist of the talk was to help raise what we talk about with clients so we're not just moving things around a page of a website which many can do, but focusing on what our specific areas of expertise are. It's the generic platform nature of Drupal and its ability to provide any number of solutions which enables us to do this, and fantastic as we are only on this earth once AFAIK so we might as well be the best we can. So thanks once again JAM for another interesting and inspiring talk, you rock the Drupalsphere!</p> <h3>Configuration deployment in Drupal 8</h3> <p>Although I understand the concepts of the configuration management system, and indeed it's very similar to how we used to do things back in my Java days, I haven't used it that much yet in complicated scenarios so I went along to this session to find out more. <a href="https://twitter.com/gambry">Gabriele Maira</a> took a great approach to splitting up the various use-cases of configuration and made sensible separations between different parts of configuration, for example often you'll want things on development but not in production, there's parts you don't want clients to be able to change, and so on. The <a href="https://drive.google.com/file/d/0ByHewtGL2_TlWFNCVkVoWFpvNjA/view">slides for Configuration deployment in Drupal 8 are already online</a>, however things are moving fast in this area as best practices are still being figured out so doesn't mention the new <a href="https://www.drupal.org/project/config_filter">Configuration Filter</a> module created recently as a result of <a href="http://nuvole.org/blog/2017/feb/27/introducing-config-filter">Drupal MountainCamp</a>, or another interesting effort by <a href="https://twitter.com/andrewl">Andrew Larcombe</a> - <a href="https://www.drupal.org/project/environment_config">Environment Config</a>, which both go to help the workflow in their own ways.</p> <h3>Dependency Injection and Service Containers</h3> <p>Another session where I've used the functionality but don't feel I'm totally confident in it (although now I do!). When I was helping the <a href="https://www.drupal.org/project/rules">Drupal Rules module</a> upgrade some actions and conditions I learned a lot about dependency injection and a little about service containers so it was great to have a brush-up on these by <a href="https://twitter.com/Ashish_Thakur">Ashish Thakur</a>, who gave a detailed walkthrough of the work he's been doing on this not only in Drupal 8 but also Drupal 7 as well - crazy stuff!</p> <p>By far my most favourite part of Ashish's talk though was his introduction when he referenced the previous day's keynote and explained that he was from the mountains but now lives where he wants to near the beach, and it's Drupal that's enabled him to do that. Awesomesauce!</p> <h3>Closing Keynote - Danese Cooper</h3> <p><img alt="Photo from closing session" data-entity-type="file" data-entity-uuid="a9a02871-55b5-4ca4-95ce-ecd4664aca2d" src="/sites/default/files/inline-images/dclondon_youngest_attendee.jpg" class="align-right" />After lunch the closing session was upon us where the organisers gave out some key stats like how much coffee we drunk, details of a £5k spend in the bar at the Saturday social, and the youngest attendee being only 5 months old!</p> <p>Once the stats were done the final keynote was upon us and freshly flown-in from Frisco was <a href="https://twitter.com/divadanese">Danese Cooper</a>. I've had the pleasure of meeting Danese previously during my time back in 2012 as the first community-elected Director of the Drupal Association (if you're reading this before 18th March 2017 <a href="https://www.drupal.org/association/blog/its-time-to-vote-community-elections">go vote in the latest round of the Drupal Association community elections</a> <strike>now!</strike> when you've finished reading this!) and whilst I'm more of a fan of copyleft due to wanting to know what code is running inside of my body if I get implanted with tech in the future, I'm in total admiration of her stern work over the years moving the Open Source world forward.</p> <p>A veteran of the Open Source industry, Danese presented an enlightening talk on the history of Open Source with a fleeting mention of the <a href="https://en.wikipedia.org/wiki/Richard_Stallman">founder of the Free Software movement Richard Stallman</a>, and asked us all to stop arguing about the <a href="https://www.gnu.org/philosophy/open-source-misses-the-point.en.html">difference between Free Software and Open Source</a> as apparently it's all the same, upon which I was seemingly in a minority of one who didn't join in the round of applause from the audience. I'm not sure RMS would've joined either, and I do tend to agree that we all want to not confuse or alienate community members old new and forthcoming. With my love of copyleft licenses as I believe that's the way in which the organic world works where freedom is inferred as opposed to restricted if placed into other products ("here, you bee, you can take my honey but you other bee, no you can't") actually think my beliefs go further than the Free vs Open argument, something I call "organic software". That's a much nicer term, but a much longer conversation than this blog so I'll be ending it here and saving that can'o'worms for another lengthy post. Just always be aware of who is being paid by whom to say what and how they could benefit from those words.</p> <h2>Final Thoughts</h2> <p>Well if you've made it here then thanks for reading, I hope it's given you a little more insight into last weekend's proceedings and the things I'm working on at the moment, and I look forward to posting more updates soon!</p> <p>Finally as always a massive thank you to all involved in organising, attending, speaking etc. at the weekend, your hard work is much appreciated and I look forward to catching up again next year, same time same place, right?!</p> <p>Peace.</p> <p><img alt="Photo of a rainbow shining over the DrupalCamp London venue, City University" border="0" data-entity-type="file" data-entity-uuid="c6a92b9f-85ed-490d-8495-65919e7c7ee8" hspace="5" src="/sites/default/files/inline-images/dclondon_rainbow_0.jpg" vspace="5" class="align-center" /></p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/events" hreflang="en">Events</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> <div class="field--item"><a href="/tags/drupalcamp" hreflang="en">DrupalCamp</a></div> <div class="field--item"><a href="/tags/events" hreflang="en">events</a></div> </div> </div> <section> <h2>Comments</h2> <a id="comment-13"></a> <article data-comment-user-id="0" about="/comment/13" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1488934421"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Alex (not verified)</span> on Wed, 08/03/2017 - 00:30</span> <span property="schema:dateCreated" content="2017-03-08T00:30:50+00:00" class="hidden"></span> </p> <a href="/comment/13#comment-13" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/13#comment-13" class="permalink" rel="bookmark" hreflang="en">Wow thanks Steve, this means…</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Wow thanks Steve, this means a lot and i will share with our other organisors :) im still lagging from the crazy busy weekend! See you soon.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=13&amp;1=default&amp;2=en&amp;3=" token="Ou6y29anVjWqLTSkfLj1VBJgcbZCKOzE9EDLesNaUnY"></drupal-render-placeholder> </div> </article> <a id="comment-14"></a> <article data-comment-user-id="0" about="/comment/14" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1489041475"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">reevo (not verified)</span> on Thu, 09/03/2017 - 00:15</span> <span property="schema:dateCreated" content="2017-03-09T00:15:53+00:00" class="hidden"></span> </p> <a href="/comment/14#comment-14" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/14#comment-14" class="permalink" rel="bookmark" hreflang="en">Great write-up!</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Yes, I got an attack of the nerves! I can usually blather on for hours (really!) but it was a tricky talk to give, as the overwhelming majority - and probably most interesting - of my Drupal experience is with my former employer, so I wanted to avoid too much detail about internal politics and decisions. That and I didn't want to come across as a bitter ex - I'm really not :)</p> <p>Viacom has always had a very strong engineering culture, with a heck of a lot of talented people, and this was, I think, a major contributing factor to their decision to stick with their in-house platforms. The PHP framework developed by the team in NY is impressive, mature, and has been constantly modernised over the years. On the other hand, we (in the UK/Intl team) were running on D7, which, when compared side by side, seemed ancient and monolithic. Our D8 upgrade was long overdue, but a combination of our fairly aggressive D7 rollout strategy and a change in the structure of Viacom itself meant that we just didn't have the capacity to evolve fast enough. </p> <p>So, I'd hoped to give a few cautionary tales and really wanted to steer my talk towards microservices vs monoliths, and why I think D8 has so much more potential to succeed in large organisations, but ended up ripping out the more technical bits for fear of losing less technical members of the audience, which unfortunately left the slightly more negative stuff unresolved. </p> <p>Anyway, I'm glad there was enough inspiring stuff over the weekend to mask the slight funk I created on Friday morning :)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=14&amp;1=default&amp;2=en&amp;3=" token="skGpcZFoOquSlGTFo25a2VqyLi62sXtq0hba2qkOIow"></drupal-render-placeholder> </div> </article> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=71&amp;2=comment&amp;3=comment" token="G5ShwSxymiQjhwboVPPPD3c_EjNM6JxcEGuGL63s568"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2017/03/07/drupalcamp-london-2017-5th-and-best-yet" data-a2a-title="DrupalCamp London 2017 - 5th and best yet!"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2017%2F03%2F07%2Fdrupalcamp-london-2017-5th-and-best-yet&amp;title=DrupalCamp%20London%202017%20-%205th%20and%20best%20yet%21"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Tue, 07 Mar 2017 21:15:00 +0000 Steve Purkiss 71 at https://purkiss.com The End Of The Web CMS Brass Era? https://purkiss.com/blog/steve-purkiss/2016/11/18/end-web-cms-brass-era <span>The End Of The Web CMS Brass Era?</span> <div class="field field--name-field-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/styles/max_325x325/public/2016-11/1903-ford-rc.jpg?itok=2ebs1j9M" width="325" height="240" alt="Photo of the Ford Model A car" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Fri, 18/11/2016 - 16:02</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Growing up in Essex with my father and most of my friends families working in some capacity for the Ford Motor Company, I tend to gravitate towards the automotive industry whenever I hear people saying we need to look to history in order to see the future. I'm always skeptical about taking this too literally as circumstances change and many new factors are involved - hence why I'm more afraid of an autonomous car controlled by code I'm not allowed to see than a driver whom I can; however sitting here on the eve of the <a href="https://www.gnu.org/philosophy/open-source-misses-the-point.html">Free/Libre Open Source</a> <strong>project</strong> <a href="https://drupal.org/">Drupal</a>'s first anniversary of its latest <strong>product</strong> release, <a href="https://drupal.org/8">Drupal 8</a>, I find it hard not to draw parallels between these two industries as I ponder what the future might have to hold.</p> <h2>Brass Era Cars</h2> <p><figure role="group" class="align-right"><img alt="1911 Ford Model T Touring" data-entity-type="file" data-entity-uuid="eb80f923-a084-48f0-ae44-eb9422602c8d" src="/sites/default/files/inline-images/1911_Ford_Model_T_Touring_0.jpg" /><figcaption>1911 Ford Model T <a href="https://commons.wikimedia.org/wiki/File:1911_Ford_Model_T_Touring_2.jpg">via Wikimedia Commons</a></figcaption></figure></p> <p>According to Wikipedia, 1886 is regarded as the <a href="https://en.wikipedia.org/wiki/Car">birth year of the modern car,</a> and the <a href="https://en.wikipedia.org/wiki/Brass_Era_car">'Brass Era'</a> is an American term for the early period of automotive manufacturing, named for the prominent brass fittings used during this time for such things as lights and radiators. It is generally considered to encompass 1896 through 1915, a time when these vehicles were often referred to as horseless carriages.</p> <p>Within the 20 years that make up this era, the various experimental designs and alternative power systems would be marginalised. Although the modern touring car had been invented earlier, it was not until <a href="https://en.wikipedia.org/wiki/Panhard" title="Panhard">Panhard et Levassor</a>'s <i><a href="https://en.wikipedia.org/wiki/Syst%C3%A8me_Panhard" title="Système Panhard">Système Panhard</a></i>, first built in 1891, was widely licensed and adopted that recognisable and standardised automobiles were created. This system specified front-engined, rear-wheel drive internal combustion engined cars with a sliding gear transmission, and was to become the standard layout for automobiles for most of the next century.</p> <p>Initially the high-wheel motor buggy (resembling the horse buggy of before 1900) was in its heyday, with over 75 makers, but were only gradually abandoned, in favour of the more advanced runabouts and tonneaus along with other more expensive closed bodies - and killed off by the Ford Model T, first produced by Ford in 1908.</p> <h2>Brass Era Web</h2> <p><figure role="group" class="align-right"><img alt="Drop 1.0 - the first version of Drupal!" data-entity-type="file" data-entity-uuid="222399c3-d283-476e-9373-9ee2cb36c009" src="/sites/default/files/inline-images/drop1_0.jpg" /><figcaption>drop.org, which <a href="https://drupal.cheppers.com/">later became Drupal!</a></figcaption></figure></p> <p>The <a href="https://en.wikipedia.org/wiki/Web_browser">first web browser</a> was invented in 1990 by Sir Tim Berners-Lee, with <a href="https://www.quora.com/When-was-the-first-web-content-management-system-CMS-released">the first content management system ('CMS') appearing around 1992</a>. <a href="https://en.wikipedia.org/wiki/Drupal">Drupal was started in 2000</a> at a time when there were many CMSs, and although the <a href="https://en.wikipedia.org/wiki/List_of_content_management_systems">list of CMSs available</a> is still considerable, there's no doubt that there's a few who dominate the market, with WordPress taking the lion's share; Joomla and Drupal in a battle for 2nd and 3rd spot. If however you only look at larger installations, for example usage in government and education, you'll find Drupal has much larger market share.</p> <p>Because you can package up functionality in install profiles and distributions much like the Linux operating system, it enables the roll-out of hundreds or even thousands of similar sites, for example <a href="http://buytaert.net/drupal-8-turns-one">Nasdaq's Investor Relations Website Platform</a>, <a href="https://www.getopensocial.com">OpenSocial's collaboration platform</a> and the <a href="https://www.drupal.org/project/agov">Australian Government's aGov distro</a>. A kind of mass-market production line, one might conjecture.</p> <h2>The Parallels</h2> <p>So we have new modes of transport (the car, the web), which quickly have models of manufacture designed for them (Système Panhard, CMSs), of which many different types are made (high-wheeled motor buggies, CMSs), but were gradually abandoned in favour of more advanced runabouts and tonneaus (WordPress, Joomla, Drupal) along with other more expensive closed bodies (SharePoint, SiteCore, Adobe Experience Manager).</p> <p>The Model T was produced in 1908, 22 years after the birth of the car; Drupal 8 development began in 2011, 21 years after the birth of the web browser. Ford's Model T was not only successful because it provided inexpensive transportation on a massive scale, but also because the car signified innovation for the rising middle class and became a powerful symbol of America's age of modernisation. I'm writing this on a Drupal 8 site which I had the freedom to download, install, and use for free with no license fees, has so far involved me writing no code, and costs me <a href="https://m.do.co/c/c133f1c749c8">only $10pcm to host on DigitalOcean</a>.</p> <h2>From Innovation To Standardisation<img alt="Composer logo, an illustration of a conductor" data-entity-type="file" data-entity-uuid="883dfc36-743a-47e1-8e22-03aa1f41d2a8" src="/sites/default/files/inline-images/composer-logo.png" class="align-right" /></h2> <p>During the Brass Era, development of automotive technology was rapid, due in part to hundreds of small manufacturers competing to gain the world's attention, with key developments including electronic ignition systems, independent suspension, and four-wheeled brakes.</p> <p>In Drupal 8 we've seen <a href="https://symfony.com/">Symfony</a> adopted and many modules included into core such as WYSIWYG and Views, making Drupal 8 a great ignition for any web system; <a href="https://en.wikipedia.org/wiki/Composer_(software)">Composer</a> increasingly used as Drupal's independent suspension to keep all those dependencies nicely balanced; and as the web calls for speeding up not slowing down, Drupal 8 has the most <a href="http://wimleers.com/article/drupal-8-dynamic-page-cache">advanced dynamic cache system</a> of any CMS, even capable of caching logged in users.</p> <h2>Nearing The End</h2> <p>We're now 26 years into the Web - with the Brass Era ending 29 years into the Car does this mean we're nearing the end of the Web CMS Brass Era? What exactly constitutes 'Brass' in terms of Web CMSs?</p> <p>I draw parallels between Brass and the multitude of modules/plugins and themes for these CMSs. For example, WordPress has many, but they have a much different ecosystem than Drupal's modular architecture which means you can start small and build as your needs arise. WordPress has many paid-for plugins which if you try to get them working together <a href="https://www.lullabot.com/podcasts/drupalizeme-podcast/wordpress-vs-drupal">you might encounter issues</a>. Drupal 8's modular system and object-oriented architecture is designed so you can build 100% the system you need, not 90% made up of what someone else thinks you need which has to be nice and shiny in order to grab your attention because they have so many competitors for their shiny lanterns they have for sale.</p> <p>With WordPress you quickly get into a situation where you have to start writing code to do anything - that's untested, untried code which you'll be tasked with supporting and maintaining. And who is writing this code which operates your core business? With Drupal you've tried and tested modules to use for functionality, along with a 40+ member <a href="https://www.drupal.org/security-team">Drupal Security Team</a> keeping a watchful eye over any security issues which may arise. There's also strict <a href="https://www.drupal.org/docs/develop/standards">Drupal Coding Standards</a>, and an ethos in the community of working together on similar functionality where possible as opposed to having many plugins doing the same or similar functionality.</p> <p>I hear people saying "use the right tool for the job", but I don't use different cars for different day-to-day journeys, and most the people I hear it from are techies, not business people who are more focused on the bottom line and just want stuff to be done. Sure, for the edge-cases it's fine, however many businesses share common business functionality so the more that's in the open and shared, the lower the cost of making use of the web will be. Take for example hairdressers, or car dealerships, or life coaches. I see a future filled with many industry-specific Drupal distributions servicing vertical markets. At the moment it's too easy for digital agencies to sell individual solutions and not share, after all, their model is selling people's time, but it won't be long before enterprising entrepreneurs develop more of these distributions focusing on specific verticals, especially now composer support is taking shape more so it's easier to build and maintain these distributions.</p> <p>For too long many have essentially forked Drupal by downloading it and customising it to the requirements of just the one project at hand, whereas the beauty of Drupal is where you grow the capabilities of Drupal so it does what you want to do without writing code by using modules from core and the world of contrib land. There's <a href="https://youtu.be/OrpZzVMcQV8">a great session from the recent DrupalSouth on YouTube </a>explaining how a decision to "contribute more back" by releasing a module a week, either upgrading existing modules to Drupal 8 or tidying up code from client projects where there was functionality created which more than that one specific requirement needed so could be useful to others turned into a complete new approach to how they develop projects, and their goal for 2017 is to write no custom code at all. This is how it should've been from the start, but there are a number of factors as to why people haven't been approaching Drupal development like this, however going by the number of modules released over the last few weeks for Drupal 8 I believe people are beginning to understand that this entire project was built by sharing, not keeping things secret. I personally believe there needs to be more sharing, and I'd love to speak to any organisation willing to open up their website development project to the world so everyone can have the opportunity to advise on how best to develop it using the modules and methods available, and let's start sharing more so we can grow Drupal's capability more.<img alt="Drupal 8 logo" data-entity-type="file" data-entity-uuid="a4daaadc-0c49-401f-baa0-f0b514091155" src="/sites/default/files/inline-images/drupal8logo.png" class="align-right" /></p> <p>So I'm calling it - I believe we'll see Drupal 8 take a dominant lead in the CMS market space over the next three years and go on to be the platform of choice when developing anything for the web. When there's commodity functionality out there available for free, the justification to start paying out for development and/or license fees does not make much sense for the majority of users. Sure, there will always be other systems around - there's custom cars, Formula 1, rally, and so on, but many just want to get from A to B for the minimum cost and minimum fuss, and let's remember the majority of the web is still not using any CMS.</p> <p>With Drupal 8's ability to work with any device, it's not just publishing for the web but embedding itself in the core of how the internet works, so no matter what you want to do, whether you're the <a href="http://buytaert.net/drupal-8-turns-one">YMCA connecting to workout machines and wearables like FitBit bands</a> or simply <a href="https://www.greatagain.gov/">thanking your supporters</a>, Drupal 8 can do it!</p> <p>Question is - does this mean another 100 years before we see autonomous CMS appear? I do hope it's not that long before I can just think about what I want to build &amp; it appears magically in front of me!</p> <p>If you want to find out more about what Drupal could be doing for you, feel free to <a href="http://purkiss.com/contact">contact me</a>, and if you're reading this on 19th November 2016, Drupal 8's 1st birthday, there's a fabulous line-up of speakers and sessions for the free <a href="http://www.drupal8day.com/">Drupal 8 Day Virtual Conference</a>.</p> <p><em>Main image of Ford Model A by DougW <a href="https://commons.wikimedia.org/wiki/File%3A1903-ford-rc.jpg">via Wikimedia Commons</a></em></p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/op-ed" hreflang="en">Op-ed</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> <div class="field--item"><a href="/tags/drupal8" hreflang="en">Drupal8</a></div> </div> </div> <section> <h2>Comments</h2> <a id="comment-9"></a> <article data-comment-user-id="0" about="/comment/9" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1479834754"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Mike Herchel (not verified)</span> on Tue, 22/11/2016 - 14:54</span> <span property="schema:dateCreated" content="2016-11-22T14:54:47+00:00" class="hidden"></span> </p> <a href="/comment/9#comment-9" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/9#comment-9" class="permalink" rel="bookmark" hreflang="en">So I&#039;m calling it - I…</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p>So I'm calling it - I believe we'll see Drupal 8 take a dominant lead in the CMS market space over the next three years and go on to be the platform of choice when developing anything for the web. </p></blockquote> <p>I agree that Drupal is a better CMS, but WP is more popular because it's "Good enough", and you can set up a functioning website for &lt; $100, provided your use case is covered. </p> <p>With WP, I can download and install it, pay $50 for a theme that comes with example content and functionality, rip out or change the content, and voila -- I have a fully functioning website.</p> <p>With Drupal, you typically have to build out a theme from scratch -- even if a commercial theme will do. You also have to build out your content model from scratch, and integrate that into the theme. Most "mom and pop" places aren't going to want to spend that much money on a Drupal developer.</p> <p>There's a Drupal.org issue (<a href="https://www.drupal.org/node/2818085">https://www.drupal.org/node/2818085</a>) that proposes to solve this by allowing people to download install profiles during the installation process. I <em>really believe</em> if this were developed, Drupal would see tons of new "smaller" sites developed that would begin to shift the momentum to Drupal.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=9&amp;1=default&amp;2=en&amp;3=" token="vyc1qmhuDymXFj5qDjqj_ZYSn1Uhj93eGQ3_XlPo-tI"></drupal-render-placeholder> </div> </article> <div class="indented"><a id="comment-10"></a> <article data-comment-user-id="1" about="/comment/10" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1479835354"></mark> <footer> <article typeof="schema:Person" about="/u/steve-purkiss"> </article> <p><span rel="schema:author">Submitted by <span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span> on Tue, 22/11/2016 - 17:22</span> <span property="schema:dateCreated" content="2016-11-22T17:22:34+00:00" class="hidden"></span> </p> <p class="visually-hidden">In reply to <a href="/comment/9#comment-9" class="permalink" rel="bookmark" hreflang="en">So I&#039;m calling it - I…</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Mike Herchel (not verified)</span></p> <a href="/comment/10#comment-10" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/10#comment-10" class="permalink" rel="bookmark" hreflang="en">Mini Distros</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Thanks for your comment! You're right about how the current situation is in terms of cost, and the distribution/profile selector will help on the technical side, and what I believe will be the key is something I coined 'mini distros' a while back.</p> <p>I mentioned in my post about servicing verticals - at the moment it's easy money developing different solutions for each client but with the advent of Drupal 8 opening up development to a wider audience it's become a lot more feasible to create distributions which serve specific types of business - the aforementioned hairdressers, life coaches, etc. - most the themes for WordPress don't have much in terms of depth of functionality whereas Drupal could deliver a much more useful solution to someone's business out-of-the-box and offered on an OpenSAAS kind of way. Once development has progresses the innovation in particular verticals would make it a compelling offering, and by focusing on one vertical economies of scale mean you can get down to very low prices, much cheaper than WordPress is currently to cobble together a solution, in fact I think the price of WordPress is quite expensive, and even more so if you take into account the opportunity cost of what you're missing out on by not offering functionality specific to your industry needs.</p> <p>I guess what I'm saying is for me, Drupal 8 - including such offshoots as <a href="http://drutopia.org/">Drutopia</a> - is the beginning of something exciting. <em>Very exciting!</em></p> <p><em>Oh, and if anyone wants to co-operate on industry-specific distros do <a href="http://purkiss.com/contact">get in touch</a> ;)</em></p></div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=10&amp;1=default&amp;2=en&amp;3=" token="aMFSqcJuqpvz4JlBaHcijatXY1Y63RcKJnI8tqchiNE"></drupal-render-placeholder> </div> </article> </div> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=69&amp;2=comment&amp;3=comment" token="IQxni0p78o9ZSEWkihFEC7fFRbIcXcDos4BQLuUqJuM"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2016/11/18/end-web-cms-brass-era" data-a2a-title="The End Of The Web CMS Brass Era?"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2016%2F11%2F18%2Fend-web-cms-brass-era&amp;title=The%20End%20Of%20The%20Web%20CMS%20Brass%20Era%3F"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Fri, 18 Nov 2016 16:02:22 +0000 Steve Purkiss 69 at https://purkiss.com https://purkiss.com/blog/steve-purkiss/2016/11/18/end-web-cms-brass-era#comments Leapfrog the Drupal Learning Curve & Architect the Perfect Solution in 3 Simple Steps https://purkiss.com/blog/steve-purkiss/2016/10/09/leapfrog-drupal-learning-curve-architect-perfect-solution-3-simple <span>Leapfrog the Drupal Learning Curve &amp; Architect the Perfect Solution in 3 Simple Steps</span> <div class="field field--name-field-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/styles/max_325x325/public/2016-10/drupal-8-learning-curve.jpg?itok=0FdiTg5k" width="325" height="244" alt="Drawing of a Drupal 8 ship riding a wave over previous versions" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Sun, 09/10/2016 - 14:06</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><em>"Drupal has a steep learning curve"</em> is something I hear time and again, however I feel this is a misguided perception and something we need to work towards changing - especially now <a href="https://assoc.drupal.org/blog/megansanicki/drupal-associations-12-month-focus">focus is on the adoption journey</a>. Learning how to 'Drupal' is actually incredibly easy - the trick is to understand exactly what Drupal is and how to mould it to your needs - this is what I'm going to show you how to do in three simple steps.</p> <h2><strong>Step 1: Discover what Drupal <em>doesn't</em> know</strong></h2> <p>This is by far the most important step of the process, hence why I go into much further detail than the other two - skim if you so wish but I assure you the story is there for a reason!</p> <h3><strong>We've been here before</strong></h3> <p>As of writing, Drupal has been around for 15 years and has solved many problems associated with building a wide range of web sites and applications, embedding this knowledge in either the <a href="https://www.drupal.org/project/drupal">core Drupal distribution</a> or one of the <a href="https://www.drupal.org/project/project_module">35,000+ modules available on the drupal.org site</a>. Drupal's decision to only provide backwards-compatibility for content and not functionality means this functionality has had the ability to improve over time <em>and</em> make the most of innovation in technology, for example the recent big jump from mostly procedural programming to object-oriented.</p> <h3><strong>A note about the jump from procedural to object orientation</strong></h3> <p>This latest jump was a big one - Drupal was developed before object orientation was available in <a href="https://en.wikipedia.org/wiki/PHP">PHP</a> (the language Drupal is written in), and so developed its own system of '<a href="https://www.drupal.org/node/292">hooks</a>'. You use hooks to interact with Drupal core to override functionality in order to make Drupal do what you want it to do for you. You can think of hooks like the ones on a coat stand - the trouble here was as different modules and themes overrode hooks, like an overloaded coat stand with many different coats on each hook, it became increasingly harder to work out what hook was changing what and when in the process it was changing it.</p> <p>There are still hooks in Drupal 8, but these may disappear in future versions of Drupal as the migration to object-orientation continues. An added benefit is more backwards compatibility than before for future versions, so the change between versions 8 and 9 <em>shouldn't</em> be as pronounced as the change from 7 to 8 as we don't have to perform again such a big move as changing the fundamental way the entire code works. I believe there's plans to support backwards compatibility over two major versions from now on, so 9 will be backwards compatible with 8, 10 with 9, but not 10 with 8 - <a href="https://en.wiktionary.org/wiki/your_mileage_may_vary">YMMV</a>, etc.!</p> <h3><strong>Knowledge carried throughout generations</strong></h3> <p><figure role="group" class="align-right"><img alt="A drawing of people representing versions of drupal, with 8 being the new kid on the block, ageing as versions go back" data-entity-type="file" data-entity-uuid="8d0eb75b-271f-4e78-9734-b677270aab70" src="/sites/default/files/inline-images/drupal-versions.jpg" /><figcaption>Courtesy @sgrame: https://twitter.com/sgrame/status/774232084231680000</figcaption></figure></p> <p>The key point to understand here is what Drupal brings along with it as it progresses from version to version. Whilst the underlying code may change in order to improve and make the most of the latest innovation in programming languages, the knowledge, experience, and best practices gained and shared from its deployment to millions of sites is maintained in the API and module layer. It is unlikely what you are trying to build is unknown to Drupal in some way or another, it has dealt with everything from <a href="http://drupal.com/">simple brochureware sites</a> which look the same to everyone to sites such as <a href="https://weather.com">weather.com</a> where everyone who visits sees a personalised version of the site. As I often like to quip, I've never been asked for Rocket Science and even if I was, <a href="http://www.nasa.gov/">NASA uses Drupal</a> ;)</p> <p>This development process is fundamentally different to how other systems on the market work, with many other popular ones focusing on ease of use at the expense of progressive innovation, and is why you see Drupal have a larger share of the market on sites with complex requirements. The adoption of semantic versioning means there are now minor releases which include bug fixes along with both new and experimental functionality, and a new version of Drupal is released every six months. We are already up to version 8.2, and with <a href="http://buytaert.net/drupal-8-2-now-with-more-outside-in">current focus on 'outside-in'</a> it is becoming easier for people used to systems other than Drupal - or none at all - to use Drupal, however it is not easy to visualise your end goal and know how to get there, or there is a module or modules already out there which could help you along the way to achieve your desired outcome without having to code anew.</p> <p>To help overcome this out-of-the-box experience there are many ongoing initiatives to provide default content, make module discovery easier, build focused distributions, etc. but they will all take time. There is a way to approach development which means you don't end up going down the wrong path or developing functionality which already exists, it is to discover what exactly it is you want to build Drupal doesn't already know about and <em>focus only on functionality required which is specific to your situation and no other</em>.</p> <h3><strong>What makes you different?</strong></h3> <p><img alt="Characters from different nationalities" data-entity-type="file" data-entity-uuid="ccf86cf3-3b8d-46c2-85d7-d76508490e99" src="/sites/default/files/inline-images/different-nationalities-1124478_640.jpg" class="align-center" /></p> <p>I recently provided the architecture for a high-profile specialist travel site - a six-figure project which unfortunately as with many projects I'm involved in I'm under non-disclosure agreements, doesn't mean I can't talk about the approach I took though, and this is a particularly good example.</p> <p>As they were merging a number of existing systems I could've just looked at the existing data, however there is nothing to say those systems were designed well and we don't want to fall into the trap which I see many times where people re-create bad systems. Drupal is a very flexible system, many others require you to fit your data into how they work. So by asking the client to explain how their organisation worked and what was different about themselves as opposed to other similar organisations I discovered there were six distinct areas:</p> <ol><li><strong>Activity</strong> - their offerings were split into distinct activity types</li> <li><strong>Resorts</strong> - they operate their own resorts</li> <li><strong>Accommodation</strong> - each resort contains one or more different types of accommodation</li> <li><strong>Region</strong> - the organisation had their own definition of a region, some spanning more than one country</li> <li><strong>Departure Gateways</strong> - they fly out from a limited number of airports</li> <li><strong>Arrival Gateways</strong> - resorts are serviced by one or more local airports</li> </ol><p>Everything else on the system was something Drupal would have dealt with before in one way or another - number of rooms, features of accommodation and resorts, and so on. These could easily be achieved using fields, taxonomy terms, and everything else Drupal provides out-of-the-box.</p> <h3><strong>Design with the future in mind</strong></h3> <p>I also took the time to observe the operations of the organisation as I walked around their office. I noticed the majority of people were answering calls, so I asked what exactly they had to deal with on the phone - people wanting more information on particular deals, issues with accommodation crop up from time to time - all the usual a travel company would have to deal with but more so here as they owned and operated the resorts. The point here is there's a whole wealth of user requirements contained here which although weren't in the scope of this current phase of development, by having them in mind when designing a system it should make it easier to extend to accommodate their needs as and when budgets and time allow.</p> <p>If you only design a system for buying via the web you may find when a member of staff is trying to help a customer on the phone the process is unnecessarily complicated, or extending the system to cope with this new use case is particularly hard if you haven't taken this scenario into consideration to start with. Not to say it can't be done, and is easier to adapt now Drupal 8 is more object-oriented, but it's always good to have the future in mind - some of this you will be able to see, some you'll need to extract from key stakeholders, you'll be surprised sometimes with what you find out which you'll then be glad you asked. Here I knew the latest version of <a href="https://www.drupal.org/project/commerce">Commerce for Drupal 8</a> has the ability to set up different buying processes so it would be able to cope easily with phone orders if it were ever a requirement.</p> <h3><strong>Design for different rates of change</strong></h3> <p>It is feasible I could've used Drupal's built-in content types to build the system, but this would've limited the system to this particular use-case, making it harder to cope with different buying processes like the one mentioned above. It also did not sound right - an "airport" isn't a content type, it's an entity. It has content - facilities etc. but the thing itself is an entity. So I created six custom entities, and it sounded much better especially when you went to create a view - "list accommodation in resort". By simply teaching Drupal what was different about this particular organisation, we extended Drupal's "knowledge" and leveraged everything else it had to offer to deal with the functionality it does know about, like date ranges, durations, prices, and so on.</p> <p>Whilst the front-end of a website may go through many enhancements and refreshes, the core business model of an organisation - especially one such as this which is well-established and operated for many years, does not change as much, if at all. In this example they mentioned they may add new activities, and they offered packages which covered more than one activity but their current system couldn't cope with this, which is why activity was treated as a separate entity.</p> <p>By encoding the core business model of an organisation as high up the chain as you can with Drupal, you end up with a far more flexible system to cope with the faster-moving changes such as views to list out particular promotions, plus ensure longevity by enabling future development of those core parts of the system. I also wanted to make it a little more difficult for them to change any of this as this is critical to the operation of the organisation, so if changes were needed they would have to go through a harder process than changing a view, but there should be a good reason for any changes needed to the core business model so happy with the custom entity approach taken.</p> <h3><strong>Seeing the wood for the trees</strong></h3> <p><img alt="Forest Sunbeams Trees Sunlight Light Foliage" data-entity-type="file" data-entity-uuid="e1204c4c-8bf2-47d1-b6ea-980adac1b40f" hspace="10" src="/sites/default/files/inline-images/forest-56930_640_0.jpg" vspace="10" class="align-left" />It's not only when architecting systems you need to take this approach to Drupal - another small example is when I helped someone out a couple of weeks back who was having problems getting a product listing displaying exactly how he wanted it to using Drupal 7. He had tried a number of different types of <a href="https://www.drupal.org/project/views">views</a> (Drupal's user interface for manipulating database queries) but none of them would do what he wanted, which was to provide a faceted search facility, listing the results grouped by category. You'll see this functionality on most e-commerce sites these days, for example click on Televisions and it'll provide you a list grouped by manufacturer, or perhaps size - the point is it's not Rocket Science, it's been done before, it shouldn't be hard to do, so something else was causing the issue here. Sometimes it's hard to see the wood for the trees, so you need to take a step back and take a logical think about the situation.</p> <p>We delved into the problem and through a series of questions worked out the thing he wanted to do which was different was he wanted a number of fields to be displayed at the group level - the name of the group, an image, and a description. None of the various combinations of views he had tried provided the ability to display more than one field, and rewriting the field output in the view did not apply to group by fields. Although there are a number of ways to achieve this from different parts of Drupal, I implemented the simplest way I knew which was to output the taxonomy term ID as the field to group by, and overwrite the template in order to load the details of the taxonomy term so we could easily grab the fields we needed.</p> <p>I can almost hear others screaming at me to use display modes or some other functionality available as I'm sure there's other ways this can be achieved which are 'better', however as I spend most of my time dealing with back-end issues and not front-end and as we only had limited time and budget to solve the issue, this worked as a solution for the situation at hand so we went with it.</p> <p>The take-away here is to go with what solves the majority of the problem, the thing you see or can imagine seeing other people using, and focus on what is specific to your needs. Faceted searching, listing products, grouping products by category - all standard functionality and should be simple to achieve in Drupal. Outputting multiple fields for a grouping category title? Not so much.</p> <h2><strong>Step 2: Modularise Your Requirements</strong></h2> <p><img alt="Moog synthesizer to symbolise modularity of system​​" data-entity-type="file" data-entity-uuid="43ae5636-214c-45b3-95f3-a766a89bd1b7" hspace="10" src="/sites/default/files/inline-images/moog-1573329_640_0.jpg" vspace="10" class="align-right" /></p> <p>Drupal is a modular system, so you need to modularise your requirements by breaking them down as much as you can. Yes, what you're wanting to do has more than likely been done before, but maybe not in your exact combination - if it has then cool, you don't have to do anything as there's already a module/distribution/theme/etc. out there for you! Many times there isn't though, and every organisation has their differences, so you need to break your requirements down in order to deal with them successfully.</p> <p>In our example above where we have a faceted search listing out products grouped by category, by splitting it up into "faceted search", "list products", and "group a view by category" we are going to get much better results when searching for answers than if we search for "faceted search grouped by taxonomy", which is more specific to our use-case than the majority of uses. You're more likely to end up with someone else's specific situation who also has had issues solving it and may forever skip past the actual solutions you are looking for. Be as generic as you can with generic requirements, then be as specific as you can with the ones you identified as particular to your situation, in this example we could've searched for "override view field output" and it would've brought us results for how to override using views templates, which is how we solved the problem there.</p> <p>Once you align your vocabulary more closely with Drupal's generic, modular functionality, you'll enjoy much more success with your searches - it takes a little logical thought and remembering it's not Rocket Science! Far too many times I've seen sites where little or no research has been done as to what's already out there and people have essentially forked Drupal, creating their own monster significantly increasing the amount of work it takes to maintain and extend the site when it's not necessary.</p> <p>Every line of code you produce is technical debt - even if you decide not to use the module you find which does what you need or part of what you need, you can study the tried-and-tested code, copy it into your module and use as a base for your work. A good example is detailed in <a href="http://purkiss.com/blog/steve-purkiss/2016/10/07/short-screencast-intro-new-drupal-console-fieldinfo-command">my previous blog post about creating a Drupal Console command</a> where I found code which did some of what I wanted so I based my work on it because I knew what had already been written worked and there was no point in me writing it again.</p> <h2><strong>Step 3: Only Develop Specifics, Share Where Possible &amp; Grow Drupal!</strong></h2> <p><img alt="Pieces of a puzzle being squished by a pair of hands" data-entity-type="file" data-entity-uuid="fb01cee5-836a-426f-a7c5-b68a6320d617" hspace="10" src="/sites/default/files/inline-images/pieces-of-the-puzzle-592798_640.jpg" vspace="10" class="align-left" />If you find you have to develop specific functionality for your site, have a think about if it would be of use to anyone else, or whether you're going to be the only person in the world doing this specific thing. As mentioned above, every line of code you write is something you or your client is going to need to support your/themselves. If you publish a module to <a href="https://www.drupal.org/project/project_module">the drupal.org module repository</a> you not only have the possibility of others sharing the maintenance of the code but they may also provide enhancements, and stable module releases are covered by the <a href="https://www.drupal.org/security-advisory-policy">security advisory policy</a> which doesn't mean they secure your module, but if an exploit is found and reported the 40+ strong <a href="https://www.drupal.org/security-team">Drupal Security Team</a> are there to help. Even if you just <a href="https://www.drupal.org/create-sandbox">create a sandbox project</a> you may discover others find the code useful and provide feedback.</p> <p>If you're working for a client and they are worried about sharing code, or you're the end client and worry about losing competitive advantage, remember software is easy to copy and it's the rest of what you do which sets you apart from your competition. In our travel example above, it's the resorts they own which provide the value to the customer, not the software code which enables people to book a stay in them.</p> <p>Currently there is a lack of sharing code on the implementation side - there's a lot of factors for this including competition between suppliers, infrastructure ease of use or lack thereof, and a general lack of co-operation in some industries. The result is many people end up writing similar code when they could be starting at a higher level, collaborating with industry peers, sharing development and maintenance costs, and going towards pushing the Drupal project forward. The more we can do out-of-the-box, the better it gets for all concerned as projects cost less, launch quicker, and we can focus on code which isn't out there already which is specific to the organisation itself, so spending the development budget on genuinely useful code instead of code which could be freely available to us in the first instance. Remembering how much we started with for free may be of help creating impetus to share any code we develop.</p> <p>Although my site here doesn't do much functionally I haven't had to write a single line of code to be able to use the web to communicate my message to you, something I believe is <em>amazeballs! </em>Drupal can and does provide code for generic websites, however it's up to industries to collaborate and build their modules and distributions, and/or some enterprising people to build code and distributions for them, as we see in some areas such as e-learning and government.</p> <p>I'm honestly shocked when I hear projects haven't contributed any code back, especially larger projects lasting longer than a year - I worry about how much technical debt they've incurred and feel sorry they haven't helped Drupal to grow, it's only by contributing code the Drupal product itself has reached this amazing level of innovation. I understand there are reasons, however I never see it as "contribution", more akin to riding a bicycle - I can stare at it as long as I like but until I push my feet down on the pedal it's not going to take me anywhere, I don't call it "contribution", just how the bike works!</p> <p>I hope this post has been of help, do feel free to comment below, or <a href="http://purkiss.com/contact">get in touch with me</a> if I can be of help with anything specific.</p> <p><strong>Happy Drupaling!</strong></p> <p>Main Drupal 8 Learning Curve image courtesy <a href="https://twitter.com/sgrame/status/335290382290132992">@sgrame</a>. Other images attributed inline, the rest are public domain, found on <a href="https://pixabay.com">pixabay</a>.</p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/tutorials" hreflang="en">Tutorials</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> <div class="field--item"><a href="/tags/drupal-architecture" hreflang="en">Drupal Architecture</a></div> <div class="field--item"><a href="/tags/data-modeling" hreflang="en">Data modeling</a></div> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> </div> </div> <section> <h2>Comments</h2> <a id="comment-26"></a> <article data-comment-user-id="0" about="/comment/26" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1497776337"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Steve (not verified)</span> on Thu, 15/06/2017 - 20:04</span> <span property="schema:dateCreated" content="2017-06-15T19:04:24+00:00" class="hidden"></span> </p> <a href="/comment/26#comment-26" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/26#comment-26" class="permalink" rel="bookmark" hreflang="en">contributing code back</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Great article Steve. Have you written anything on how to contribute code back or do you know of well written guides (from the ground up) on how to do so.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=26&amp;1=default&amp;2=en&amp;3=" token="EmVUnj3z2YTfN-OcyU4E9A4MBsv14xGvLjouZVdNTnc"></drupal-render-placeholder> </div> </article> <div class="indented"><a id="comment-27"></a> <article data-comment-user-id="1" about="/comment/27" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1497776716"></mark> <footer> <article typeof="schema:Person" about="/u/steve-purkiss"> </article> <p><span rel="schema:author">Submitted by <span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span> on Sun, 18/06/2017 - 10:05</span> <span property="schema:dateCreated" content="2017-06-18T09:05:16+00:00" class="hidden"></span> </p> <p class="visually-hidden">In reply to <a href="/comment/26#comment-26" class="permalink" rel="bookmark" hreflang="en">contributing code back</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Steve (not verified)</span></p> <a href="/comment/27#comment-27" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/27#comment-27" class="permalink" rel="bookmark" hreflang="en">contributing code back</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Hi - thanks for your kind words, glad you liked the post!</p> <p>I haven't written anything about contributing code back but thanks for the idea ;) There's a great session from DrupalSouth which you should have a watch of - "Module a Week or: How I Learned to ... Love the Open Source" <a href="https://www.youtube.com/watch?v=OrpZzVMcQV8">https://www.youtube.com/watch?v=OrpZzVMcQV8</a> - they describe how they were going to contribute something each week but then it ended up changing their entire process - instead of creating new custom modules they worked more with their clients to adapt existing code to their requirements.</p> <p>Personally I have issues with the words we use - when I push my foot down on my bicycle pedal in order to make it move forward I don't call it "contributing", it's just how it works. The majority of issues I've encountered on projects over the years come from people working on their own instead of mostly on drupal.org - I think that's a lot down to the education of exactly what Free/Libre Open Source Software is and how it works. Most people are still in 'product' mode and used to being sold something whereas it's the commons - it's "Commons Based Peer Production" - you're not a "user", you're part of it!</p></div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=27&amp;1=default&amp;2=en&amp;3=" token="otqyAq8w5Pd0NDlWnsqJTdnPUTbkZ3076qwkZ7AXGc8"></drupal-render-placeholder> </div> </article> </div> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=51&amp;2=comment&amp;3=comment" token="NZvNRkn_WFkMqEEDEK-ISBkhxwnLVJxigiQBj683nV8"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2016/10/09/leapfrog-drupal-learning-curve-architect-perfect-solution-3-simple" data-a2a-title="Leapfrog the Drupal Learning Curve &amp; Architect the Perfect Solution in 3 Simple Steps"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2016%2F10%2F09%2Fleapfrog-drupal-learning-curve-architect-perfect-solution-3-simple&amp;title=Leapfrog%20the%20Drupal%20Learning%20Curve%20%26amp%3B%20Architect%20the%20Perfect%20Solution%20in%203%20Simple%20Steps"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Sun, 09 Oct 2016 13:06:20 +0000 Steve Purkiss 51 at https://purkiss.com https://purkiss.com/blog/steve-purkiss/2016/10/09/leapfrog-drupal-learning-curve-architect-perfect-solution-3-simple#comments Short screencast intro to the new Drupal Console field:info command https://purkiss.com/blog/steve-purkiss/2016/10/07/short-screencast-intro-new-drupal-console-fieldinfo-command <span>Short screencast intro to the new Drupal Console field:info command</span> <div class="field field--name-field-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/styles/max_325x325/public/2016-10/drupal-console-logo.png?itok=gOZvruBJ" width="300" height="114" alt="Drupal Console logo" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Fri, 07/10/2016 - 10:39</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>I am a big fan of <a href="https://drupalconsole.com/">Drupal Console</a>, the CLI built on top of <a href="http://symfony.com/doc/current/components/console.html">Symfony Console</a> for use with <a href="https://www.drupal.org/8">Drupal 8</a>. As well as the ability to generate skeleton code, Drupal Console has a heap of commands for a number of uses, routing, debugging, and now with the new <strong>field:info</strong> command you can gain an overview of what fields are on a site and where they are used.</p> <h2>A bit of background</h2> <p>I wrote this last month as a result of attending the <a href="http://www.eventbrite.co.uk/e/drupal-sprint-weekend-july-2016-london-uk-tickets-26464547173#">Drupal Global Sprint Weekend - London Outpost</a> which was focusing on Drupal Console. I'd been wanting to learn how Drupal Console worked for a long time, and as it's always easier when sitting around a table with other Drupalers I jumped at the opportunity and made my way up to the Big Smoke for the day. Big thanks due here to <a href="https://www.drupal.org/user/3555">Robert Castelo</a> for organising the sprint, and for keeping the Drupal lights on in London for all these years - I believe it was one of, if not the first, local Drupal User Group!</p> <p>I managed to get all the info I needed to set up my machine on the Saturday in order to contribute to the project and take on an issue from the <a href="https://github.com/hechoendrupal/DrupalConsole/issues">Drupal Console GitHub issue queue</a> - one was a feature request for this command which looked like something I could achieve, so decided upon that as my task. It ended up taking a couple of weeks to write and I'm extremely happy with the results, of course I learned much on the way too so I never see it as 'contribution' but more as 'free learning' for me! A big thanks here to the DrupalConsole team who provided me with a lot of help over on the <a href="https://gitter.im/hechoendrupal/DrupalConsole">Drupal Console gitter.im chat channel</a>.</p> <h2>Stealing code is a Good Thing</h2> <p>I discovered a Drupal module which had the basic functionality I needed for this command - <a href="https://www.drupal.org/project/field_report">Field Report</a> - which I then re-factored for use in Drupal Console and added the extras for the options. I even managed to contribute a patch back to the Field Report module to fix an issue they had, which was nice to be able to do as I'd used their code!</p> <h2>A quick retropective</h2> <p>I think the hardest part was getting the display to look nice, however as my first 'professional' programming was RPG (Report Program Generator, not Role Playing Games unfortunately!) for IBM AS/400s which originated from punch cards I was used to figuring out text-only outputs ;) Apart from that is was just a case of reading the Symfony Console documentation to understand how options and arguments work, and which one to use for particular purposes.</p> <h2>The field:info Screencast</h2> <p>And finally at last, here's the <strong>field:info</strong> screencast ~ enjoy!</p> <div class="video-embed-field-responsive-video form-group"><iframe width="854" height="480" frameborder="0" allowfullscreen="allowfullscreen" src="https://www.youtube.com/embed/LufH8XS9nMU?autoplay=0&amp;start=0&amp;rel=0"></iframe> </div> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/tutorials" hreflang="en">Tutorials</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal-console" hreflang="en">Drupal Console</a></div> <div class="field--item"><a href="/tags/drupal8" hreflang="en">Drupal8</a></div> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> <div class="field--item"><a href="/tags/cli" hreflang="en">CLI</a></div> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> <div class="field--item"><a href="/tags/tutorial" hreflang="en">tutorial</a></div> <div class="field--item"><a href="/tags/screencast" hreflang="en">Screencast</a></div> </div> </div> <section> <h2>Comments</h2> <a id="comment-7"></a> <article data-comment-user-id="0" about="/comment/7" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1476461506"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">rphair (not verified)</span> on Fri, 14/10/2016 - 16:40</span> <span property="schema:dateCreated" content="2016-10-14T15:40:13+00:00" class="hidden"></span> </p> <a href="/comment/7#comment-7" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/7#comment-7" class="permalink" rel="bookmark" hreflang="en">good incentive to learn Drupal Console</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Thanks to you, I saw this live at DrupalCon Dublin... which became my motivation to finally get Drupal Console working. In case anyone wonders why they don't see it on a stock install, I had to do "composer require drupal/console:1.0.0-rc5" which for me required a more recent version of symfony/dom-crawler ("composer require symfony/dom-crawler:2.8.12").</p> <p>I had always hoped something like this would be available in Drupal &amp; thanks for sharing. It's also a great preview for the things you can do in Drupal Console that are really hard to do any other way.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=7&amp;1=default&amp;2=en&amp;3=" token="gSITky6KmlYh8k3gzKegeQw5Ab0eMLcMkqN0j1ewtsc"></drupal-render-placeholder> </div> </article> <div class="indented"><a id="comment-8"></a> <article data-comment-user-id="1" about="/comment/8" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1476461571"></mark> <footer> <article typeof="schema:Person" about="/u/steve-purkiss"> </article> <p><span rel="schema:author">Submitted by <span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span> on Fri, 14/10/2016 - 17:12</span> <span property="schema:dateCreated" content="2016-10-14T16:12:51+00:00" class="hidden"></span> </p> <p class="visually-hidden">In reply to <a href="/comment/7#comment-7" class="permalink" rel="bookmark" hreflang="en">good incentive to learn Drupal Console</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">rphair (not verified)</span></p> <a href="/comment/8#comment-8" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/8#comment-8" class="permalink" rel="bookmark" hreflang="en">Thanks!</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Thanks Robert, I enjoyed that little Tour de Drupal in the pub! Glad you got into console, it's pretty awesome &amp; thanks for sharing the tip - as I showed you in my composer.json I just put "~8.0" for any Drupal module so when I do a composer update it'll grab the latest version - for console I guess something like "~1.0" will also do similar... YMMV etc.</p> <p>Happy Drupaling!</p></div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=8&amp;1=default&amp;2=en&amp;3=" token="roEwVhPI8x3guUlKO4gZlMfjatgWmh9ZcaE9ZvBUEwo"></drupal-render-placeholder> </div> </article> </div> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=50&amp;2=comment&amp;3=comment" token="8WGO8ImBirMqhXncJ2JSiB-Mre32O1REXwH0equKyUQ"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2016/10/07/short-screencast-intro-new-drupal-console-fieldinfo-command" data-a2a-title="Short screencast intro to the new Drupal Console field:info command"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2016%2F10%2F07%2Fshort-screencast-intro-new-drupal-console-fieldinfo-command&amp;title=Short%20screencast%20intro%20to%20the%20new%20Drupal%20Console%20field%3Ainfo%20command"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Fri, 07 Oct 2016 09:39:38 +0000 Steve Purkiss 50 at https://purkiss.com https://purkiss.com/blog/steve-purkiss/2016/10/07/short-screencast-intro-new-drupal-console-fieldinfo-command#comments Drop Guard - Automatic Updates for Drupal - The Road Test! https://purkiss.com/blog/steve-purkiss/2016/09/24/drop-guard-automatic-updates-drupal-road-test <span>Drop Guard - Automatic Updates for Drupal - The Road Test!</span> <div class="field field--name-field-image field--type-image field--label-hidden field--item"> <img src="/sites/default/files/styles/max_325x325/public/2016-09/drop-guard-logo_0.png?itok=HnuMRnPU" width="325" height="157" alt="Drop Guard logo and strapline continuous security for Drupal" typeof="foaf:Image" class="img-responsive" /> </div> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Sat, 24/09/2016 - 17:27</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Automating updates for Drupal has been a hotly debated topic for many years with a number of strong views expressed from all sides and some <a href="https://www.drupal.org/node/2367319">recent encouraging progress</a> but as of yet still no resolution.</p> <p>Due to Drupal's complexity, automating updates is not a trivial task however the importance of such functionality came to a head a couple of years back in October 2014 with the '<a href="http://www.linuxjournal.com/content/drupageddon-sql-injection-database-abstraction-and-hundreds-thousands-web-sites">Drupageddon</a>' where an exploit had been discovered in which users were told if they did not patch their system within just a few hours then it was likely their sites were toast.</p> <p>As Drupal adoption continues, the pressure to implement such functionality grows and a sprinkling of commercial offerings have appeared, most notably <a href="https://www.drop-guard.net/">Drop Guard</a> which grew from an internal tool built by German Drupal web &amp; mobile app agency <a href="http://www.brightsolutions.de/">Bright Solutions</a>. Bright created the <a href="http://www.erpal.info/">ERPAL</a> distribution of Drupal, an all-in-one e-business backroom platform, so they know their Drupal and I was eager to try out their service. It also looks like the Drop Guard site itself is built on top of ERPAL.</p> <p>As usual with Drupal there are a million-and-one things on my try-out list with more exciting stuff appearing each day, so I was excited when I saw a tweet from Drop Guard offering a free ticket to DrupalCon Dublin in return for an impartial review of their service - I wasn't planning on going but this meant I could just about justify attending, and I would finally get round to setting up automated updates for my new <a href="http://purkiss.com">purkiss.com</a> which I'd just started to build in Drupal 8.</p> <p>I replied within a few seconds and won the prize! Of course now I had to do the work, so for the past month and a half I've been road-testing their service and below is my report. I'm actually writing this in the extended sprints on the Saturday before DrupalCon - I had planned on writing it before but one thing led to another and I ended up having to do some client work, but as luck and Drupal small-world would have it, one of the first Drupalers I met this morning just happens to be working on building a new user interface for Drop Guard so not only did I manage to gain a little more info on the service and company, but also a sneak peek at what looks like a much more user-friendly interface to this important service offering.</p> <p>I must admit, my review would have been quite different if I hadn't seen those mock-ups, so I'm very glad I did - everything happens for a reason, etc.!</p> <h2><strong>What's the offering?</strong></h2> <p>Billed as "The update management system for automation and quality assurance", Drop Guard provides continuous security for Drupal, targeted at hosting providers, Drupal agencies, freelancers and non-profits - the latter of which they have <a href="http://www.drop-guard.net/blog/free-drop-guard-usage-announcement">recently offered a free of cost tier</a> for, which in my mind is a very Good Thing. For individual sites they currently have three pricing option - €9pcm plus tax for up to 30 contrib modules covered, €29 for up to 70, and €59 for up to 150, plus tailored offerings for agencies. </p> <p>All packages offer the same functionality underneath - fully controllable workflow for updates, automated patch detection and application - provided you set up everything as needed, which can be done through their integration into Continuous Integration ('CI') tools and options for Secure Shell ('SSH') deployments. </p> <p>Seamless integration with the major Drupal-specific hosting providers is also part of the offering, so all-in-all a good offer for the price, considering how much time is spent on these tasks plus the knowledge that if there's an urgent update and you're not around, or asleep, or without a connection, your site(s) are safe. I do wonder what will happen as more companies launch similar services, whether it will be a race to the lowest price until core decides to provide it for free? More on that later...</p> <h2><strong>A note on our value as a community</strong></h2> <p>I'm going to be particularly picky with my review because I believe there is a space for this kind of value-added service in the market but I think over the next couple of years the landscape will be very different with a number of offerings, so hopefully by providing detailed feedback I can provide more value than just a review saying "it's great".</p> <p>As an offering that has grown from the community I would very much like to see Drop Guard succeed and not be overtaken by something which comes along with bigger financial backing but perhaps no 'soul', and as a community I believe it's in our hands to support these kinds of community-grown offerings - if we just watch from the sidelines but don't join in their growth by helping out, recommending and of course using their service then we are not in a position to complain if they disappear.</p> <p>I also really appreciate the opportunity they have given me to attend DrupalCon as it means I can be around kindred folk enjoying the many DrupalCon goings-on and get to run my BoF sessions (shameless plug: <a href="https://events.drupal.org/dublin2016/bofs/does-drupal-need-platform-cooperative">Co-op BoF Tuesday 5pm</a>, <a href="https://events.drupal.org/dublin2016/bofs/freelancers-contractors-bof">Freelancers &amp; Contractors BoF Wednesday 5pm</a>, both Wicklow Room 3). I believe this kind of value sharing between companies and community is the way forward - "growing the pie for everyone" as I've heard time and again at various Drupal events. So hopefully my review will provide value to you too, please do feel free to comment using the form at the bottom of this article, it would be great to hear what your experiences, thoughts and opinions on the subject - don't be shy!</p> <h2><strong>Step 1: Creating an account</strong></h2> <p>So, on to the system itself - I was particularly interested to see how this worked as many projects I've worked on utilise CI, however apart from playing around with <a href="https://jenkins.io/">Jenkins</a> for a while some time ago, I'd not had a pressing reason to set anything up for myself - it had always been something someone else had done. I soon found out I was not going to be Drop Guard's 'usual' customer as for me when I read 'Automated patch detection and application' I naively had the impression I was just going to enter a few login details and Drop Guard was going to magically work everything out for me whilst I get on a plane to go lay on a beach somewhere. As usual though, there's a little more than that to do to set everything up, but once it is then yes, perhaps it's ok to go catch that plane!</p> <p>The account creation screen to me has a few too many fields to fill out in this current day and age where quickly lose interest - not that it has too many questions, but really all you need is an email address - the rest can be added later. For mission-critical required information, sure, but other questions seem more relevant to what Drop Guard want in order to profile you as a customer type, which don't seem to have any immediate effect on what I'm presented with after login, so I would say leave them out and let users choose once in the system. There's also a 'Promo Code' field, which to me just makes me feel like there's a promo code lying around somewhere I should be searching the net for. As I also found out later, it defaults to the account creation screen, so when you come back to the website you have to click the 'I have an account' in order to log in, I would say switch that - it's how most other sites work and if I want to create an account I have no problem in clicking a tab but it does get slightly annoying having to click every time I log back in.</p> <p>There's also a link underneath the registration form to their slack channel which slightly worried me as I'm not a user of slack due to its proprietary nature - as a developer of Free/Libre Open Source Software many of my answers come from searching the web for similar situations, and unless you pay slack a lot of money, that history is not available for search so although it's a nice user-friendly interface I would much prefer to see people adoption more open solutions such as <a href="https://www.mattermost.org/">Mattermost</a>. I presume here there are other options for support so carry on my journey.</p> <p>As previously mentioned I'm going to be picky, but it's what I felt, so it's what I'm going to type - also remember with a redesign on the cards things may have changed by the time you read this!</p> <h2><strong>Step 2: Adding a project</strong></h2> <p>Once you've registered and confirmed your email by clicking on the link that's sent to you, a screen is presented where you can set up your first project. There's only a few fields to fill out - a name for your project, the URL of your code repository (<a href="https://git-scm.com/">Git</a> only, but I'm unsure of any value supporting other code versioning systems, if they still exist) and a field for tags. This tags field threw me a little as there was no description as to how the tags would be used, I'm presuming they're if you have a number of sites then tagging is useful but I wouldn't necessarily have the field here.</p> <p>I was encouraged to see the link to the support chat, now I know I don't have to use slack to get in touch with Drop Guard if I need any help. Of course being me it's now a little annoying as I go from screen to screen as if these chat things auto-open I often think someone's there waiting for me to talk so I always end up clicking to minimise it!</p> <p>I experienced problems with the system not accepting my Git URL which, after a few conversations with the Drop Guard team turned out to be browser caching issues which I believe perhaps came from the heavy in-development phase the system was at the time, and all worked well after clearing my cache so if you do by chance experience issues. Saying that though, I've just tried to add another project and it's come up with the same error - 'Git username can't contain ":" and "@" characters'. I cleared all my caches (which is a pain now I'm going to have to log in to everything again!), so no doubt I'll be approaching the Drop Guard at DrupalCon to see what the deal is - <a href="http://www.drop-guard.net/blog/meet-us-at-drupalcon-dublin-2016">go see Drop Guard at booth #105</a> if you're attending!</p> <h2><strong>Step 3: Site config</strong></h2> <p>To enable access to your Drupal site, <a href="http://dgo.to/dropguard">Drop Guard has its own module on drupal.org</a> which you download and install on your site. This module provides you with a User ID and Access Token which you enter into this screen, along with the URL of your site. All very simple &amp; has my specific details so no screen shot for this step.</p> <h2><strong>Step 4: Update behaviours</strong></h2> <p>You now get to choose what type of updates you want Drop Guard to do anything with and how to handle them. I found this a little overwhelming to begin with and although there is a 'Reload best practices', I believe there could be perhaps three options available in order to provide different levels of security based on best practices. You could then delve deeper into the individual settings. I was encouraged that you can apply changes to different branches, this system really does cover all potential update workflows.</p> <h2><strong>Step 5: Events</strong></h2> <p>Once you've selected your update behaviours you now get the opportunity to attach actions to these events - request a URL, send an email, execute an SSH command, merge a branch, and create a task in project management system. You can add any number of these to each event depending on your particular workflow - for me at this moment I'm happy just being sent an email, but I can see how easy it's going to be to hook into my CI once I've set it up(!).</p> <h2><strong>Step 6: Integrations</strong></h2> <p>The last setup screen is if you want to connect to your project management system, which I don't have so can't really comment on the functionality other than to say I'm sure it's useful for those who do - the options at the moment are for Jira and Redmine.</p> <h2><strong>Step 7: Sit back and relax!</strong></h2> <p>And that's it, now it's time to sit back, relax, and let Drop Guard do the hard work for you! Although I'm only using it on a very small site it's still very useful as the Drop Guard system emails are far more descriptive than the out-of-the-box Drupal site ones so I can judge better as to whether I need to do something or not. I look forward to setting up continuous integration for my site and configuring Drop Guard to do a lot more for me. I guess I could start by just setting up a few SSH commands to run on specific events, we'll see if I have some time once I get back after DrupalCon...</p> <h2><strong>Conclusion</strong></h2> <p>I've really enjoyed testing the system out and communicating back and forth with the team and as mentioned look forward to integrating my own site more into the update system than it is right now and feel very confident Drop Guard will be able to deal with a number of different scenarios in any which way I want it to. That's if I manage to get to the bottom of my original issue of not being able to add a site - in this day where more of these types of services are appearing on what seems a daily basis, if I find one that works for me out-of-the-box first time, that's probably going to be the one I end up using. I do feel that you're kind of dropped in the deep end straight away and this could perhaps be split up a little more depending on the audience. In a way I felt that if you had all that knowledge already then perhaps you have your own system set-up so it's going to be a choice whether you pay for a system like this or continue down your own path.</p> <p>Currently I don't see the value differential between the various services, but then as said I'm not their typical client. If the aim is for hosting companies and agencies then they also have the added issue of eventually it being more cost effective in the long term to develop their own systems, but I don't really know enough about what's involved in running this service so can't comment any more than I know a site builder who's built a system that suits their needs, on their own, which manages hundreds of sites. Obviously not everyone's capable of doing that, but it's a case of hunting out that niche where this system hits a sweet spot and then developing your market from there. Or if the idea is to simply build the 'best' system then sell to some large hosting provider then I guess that's a way forward too.</p> <p>As well as creating a few simple options to ease people into the service I did wonder why they don't market the system on the code security side too - as they have access to your system it would be easy to see whether the code has been changed since they last checked - to me as a user knowing if my code has changed is kinda important and could be a good 'value add' service to market - hacked protection!</p> <p>It will be interesting to see this market develop, momentum is certainly gathering as I see a seemingly similar offering launched recently, plus more Drupal-specific agencies offering this service as part of their packages. With Drupal core also potentially offering at least some of this then companies in or thinking of entering this space will seriously need to think about what their USP is as there's nothing here which is 'secret sauce', it's all Free/Libre Open Source Software. Let's hope it doesn't become a race to the bottom in terms of price-point, and if it does then let's do it all in core because you can't beat Free.</p> <p>Once again I'd like to thank Drop Guard for this opportunity and encourage you to <a href="https://www.drop-guard.net/">try out Drop Guard for yourself</a>, and if you're lucky enough to be in Dublin for DrupalCon then <a href="http://www.drop-guard.net/blog/meet-us-at-drupalcon-dublin-2016">go see them at their booth!</a></p></div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/product-service-reviews" hreflang="en">Product &amp; Service Reviews</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> <div class="field--item"><a href="/tags/continuous-integration" hreflang="en">Continuous Integration</a></div> <div class="field--item"><a href="/tags/ci" hreflang="en">CI</a></div> <div class="field--item"><a href="/tags/automatic-security-updates" hreflang="en">Automatic Security Updates</a></div> <div class="field--item"><a href="/tags/drop-guard" hreflang="en">Drop Guard</a></div> <div class="field--item"><a href="/tags/reviews" hreflang="en">Reviews</a></div> </div> </div> <section> <h2>Comments</h2> <a id="comment-2"></a> <article data-comment-user-id="0" about="/comment/2" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1476179339"></mark> <footer> <article typeof="schema:Person" about="/user/0"> </article> <p><span rel="schema:author">Submitted by <span lang="" typeof="schema:Person" property="schema:name" datatype="">David Snopek (not verified)</span> on Mon, 26/09/2016 - 20:35</span> <span property="schema:dateCreated" content="2016-09-26T19:35:52+00:00" class="hidden"></span> </p> <a href="/comment/2#comment-2" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/2#comment-2" class="permalink" rel="bookmark" hreflang="en">What are the other recent offerings you&#039;ve seen launch recently?</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><blockquote><p> It will be interesting to see this market develop, momentum is certainly gathering as I see a seemingly similar offering launched recently</p> <blockquote><p>Just wondering what this service was? You alluded to their being a couple, I'm curious what they are, if you don't mind saying.</p> <p>Thanks!</p></blockquote> </blockquote> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2&amp;1=default&amp;2=en&amp;3=" token="8HyszN_uZaobqtd30DdLSRD9p71vJt7YwSHUzjLPUDo"></drupal-render-placeholder> </div> </article> <div class="indented"><a id="comment-5"></a> <article data-comment-user-id="1" about="/comment/5" typeof="schema:Comment" class="js-comment"> <mark class="hidden" data-comment-timestamp="1476179702"></mark> <footer> <article typeof="schema:Person" about="/u/steve-purkiss"> </article> <p><span rel="schema:author">Submitted by <span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span> on Tue, 11/10/2016 - 10:55</span> <span property="schema:dateCreated" content="2016-10-11T09:55:02+00:00" class="hidden"></span> </p> <p class="visually-hidden">In reply to <a href="/comment/2#comment-2" class="permalink" rel="bookmark" hreflang="en">What are the other recent offerings you&#039;ve seen launch recently?</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">David Snopek (not verified)</span></p> <a href="/comment/5#comment-5" hreflang="en">Permalink</a> </footer> <div> <h3 property="schema:name" datatype=""><a href="/comment/5#comment-5" class="permalink" rel="bookmark" hreflang="en">A few</a></h3> <div property="schema:text" class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Apologies, I realised I half-set up my rule to email me comments when posted but didn't get it working!</p> <p>I saw someone tweeting a lot @ people saying he's set up a new service offering this, did a quick search but can't find it now, will post if I do. It was the usual @ everybody with Drupal in their profile so immediately made it look like a low-quality offering IMO.</p> <p>Also a number of Drupal shops are offering this as part of their hosting offering, I saw Annertech is doing this, amazee.io are I believe hooked up to Drop Guard.</p> <p>I've seen a couple around, just did a quick google and found another - http://inet-design.com/fully-managed-drupal-hosting.html</p></div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=5&amp;1=default&amp;2=en&amp;3=" token="snLK4uT1j2VtGw-KzkfvzjF68wCrC45QPo-Mz5zLNL4"></drupal-render-placeholder> </div> </article> </div> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=49&amp;2=comment&amp;3=comment" token="EYSBuqNkTPlaRK1NSYbtsloNkP_0gUfu3_ifJvB-TkQ"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2016/09/24/drop-guard-automatic-updates-drupal-road-test" data-a2a-title="Drop Guard - Automatic Updates for Drupal - The Road Test!"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2016%2F09%2F24%2Fdrop-guard-automatic-updates-drupal-road-test&amp;title=Drop%20Guard%20-%20Automatic%20Updates%20for%20Drupal%20-%20The%20Road%20Test%21"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Sat, 24 Sep 2016 16:27:02 +0000 Steve Purkiss 49 at https://purkiss.com https://purkiss.com/blog/steve-purkiss/2016/09/24/drop-guard-automatic-updates-drupal-road-test#comments Drupal Debrief #1 https://purkiss.com/blog/steve-purkiss/2016/08/19/drupal-debrief-1 <span>Drupal Debrief #1</span> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Fri, 19/08/2016 - 17:30</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h3>News</h3> <ol><li><a href="https://www.drupal.org/node/2785631">Panels security issues causing issues</a></li> <li><a href="https://groups.drupal.org/node/513151">Gábor Hojtsy - We can add big new things to Drupal 8, but how do we decide what to add?</a> &amp; <a href="http://www.yoroy.com/pieces/vetting-drupal-product-ideas">Vetting Drupal product ideas</a></li> <li><a href="https://assoc.drupal.org/blog/rachfrieee/changes-drupal-association-events-team">DA events team ch-ch-changes</a></li> <li><a href="https://www.gitbook.com/book/drupal-media/drupal8-guide">Drupal 8 Media Guide gitbook</a></li> <li><a href="https://www.youtube.com/watch?v=pe54oVoEDwM">GSOC / Social API</a></li> <li><a href="https://www.drupal.org/node/2779729#comment-11523801">OH: "backdreditor"</a> &amp; <a href="https://www.drupal.org/node/2779729">Move features from dreditor into drupal.org</a></li> <li><a href="https://www.marcdrummond.com/posts/2016/08/18/composer-drupal-8">Marc Drummond - thoughts on Composer &amp; Drupal8</a></li> <li><a href="https://twitter.com/Drupal_Heroes/status/766155578901164032">Some numbers from the drupalaton sprints</a></li> <li><a href="https://twitter.com/dgtlmoon/status/766154088518221825">Abandoned entityreference module gains momentum</a> </li> <li><a href="https://twitter.com/carriehd/status/766061257518710787">"There are many other non-Drupal CMS platforms that allow you to do content modeling and structured content. @NoVAUXMeetup #novaux #uxdc"</a></li> </ol><h4>Of Recent Interest</h4> <ul><li><a href="http://buytaert.net/drupal-goes-to-rio">Drupal goes to Rio</a></li> </ul><h4>On The Horizon</h4> <ul><li><a href="https://www.ostraining.com/blog/drupal/drupal-82/">Drupal 8.2</a></li> </ul><h3>Events</h3> <h4>Recent</h4> <ul><li><a href="https://www.youtube.com/watch?v=gTPMbjKZS9U">Atlantic Coast Nw Drupal Meetup Video</a></li> </ul><h4>Forthcoming</h4> <h5>from <a href="https://www.drupical.com/">Drupical</a></h5> <ul><li><a href="mwds2016.eventbrite.com">Midwest Drupal Summit</a> - Friday 19th - Sunday 21st August</li> <li><a href="http://2016.drupalcampct.org/">DrupalCampCT</a> - Saturday 20th August</li> <li><a href="https://events.drupal.org/dublin2016/news/build-your-drupalcon-agenda-session-and-bof-schedule-live">DrupalCon Dublin schedule now online</a></li> </ul><h4>Related</h4> <ul><li><a href="https://fsfe.org/community/events/2016/summit/frontpage">Free Software Foundation European Summit</a> - September 2nd - 4th, Berlin</li> </ul><h3>Module Releases</h3> <h4>from <a href="https://twitter.com/drupal8modules">@drupal8modules</a></h4> <ul><li><a href="http://dgo.to/drd">DRD 8.x-3.0-alpha3</a></li> <li><a href="http://dgo.to/drd_remote">DRD Remote 8.x-3.0-alpha3</a></li> <li><a href="http://dgo.to/back_to_top">Back To Top 8.x-1.0-beta2</a></li> <li><a href="http://dgo.to/xls_serialization">XLS Serialization 8.x-1.x-dev</a></li> <li><a href="http://dgo.to/contact_storage">Contact Storage 8.x-1.0-beta7</a></li> <li><a href="http://dgo.to/formblock">Form Block 8.x-1.0-beta9</a></li> <li><a href="http://dgo.to/remote_stream_wrapper">Remote Stream Wrapper 8.x-1.0</a></li> <li><a href="http://dgo.to/smart_ip">Smart IP 8.x-3.0-beta2</a></li> <li><a href="http://dgo.to/coroporate_blue">Corporate Blue Theme 8.x-1.0-alpha1</a></li> <li><a href="http://dgo.to/mailhandler">Mailhandler 8.x-1.x-dev</a></li> <li><a href="http://dgo.to/config_split">Config Split 8.x-1.x-dev</a></li> <li><a href="http://dgo.to/user_permissions">User Permissions 8.x-1.x-dev</a></li> <li><a href="http://dgo.to/styleguide">Style Guide 8.x-1.0-alpha1</a></li> </ul><h3>#builddrupalwithsteve</h3> <h4>modules used so far on <a href="http://purkiss.com">purkiss.com</a></h4> <ul><li><a href="http://dgo.to/admin_toolbar">Admin Toolbar</a></li> <li><a href="http://dgo.to/eu_cookie_compliance">EU Cookie Compliance</a></li> <li><a href="http://dgo.to/smtp">SMTP</a> so can use gmail</li> <li><a href="http://dgo.to/google_analytics">Google Analytics</a></li> <li><a href="http://dgo.to/mollom">Mollom</a></li> <li><a href="http://dgo.to/honeypot">Honeypot</a></li> <li><a href="http://dgo.to/metatag">Metatag</a> (&amp; <a href="http://dgo.to/token">Token</a>)</li> <li><a href="http://dgo.to/pathauto">Pathauto</a> (&amp; <a href="http://dgo.to/ctools">CTools</a>) - <a href="https://www.ostraining.com/blog/drupal/pathauto/">OSTraining article on Pathauto</a></li> <li><a href="http://dgo.to/contact_storage">Contact Storage</a> (<a href="https://www.drupal.org/node/2784741">current issue with field definitions</a>)</li> <li><a href="http://dgo.to/simple_sitemap">Simple Sitemap</a></li> <li><a href="http://dgo.to/readme">README</a></li> <li><a href="http://dgo.to/addtoany">AddToAny</a></li> <li><a href="http://dgo.to/bootstrap_clean_blog">Bootstrap Clean Blog</a> (&amp; <a href="http://dgo.to/bootstrap">Bootstrap</a>) <a href="https://www.drupal.org/node/2776927">patch but also needs file upload option added</a></li> <li><a href="http://dgo.to/extlink">External links</a></li> <li><a href="http://dgo.to/video_embed_field">Video Embed Field</a></li> </ul><h4>Tutorials used:</h4> <ul><li><a href="https://www.webwash.net/drupal/tutorials/build-blog-drupal-8-content-types-and-fields">WebWash: Building a Blog in Drupal 8</a></li> </ul><h3>Helpful Links</h3> <ul><li><a href="https://www.drupalvm.com/">DrupalVM</a> - Drupal development Virtual Machine</li> <li><a href="http://drupalsun.com/">Drupalsun</a> - nicely designed Drupal Planet news feed</li> <li><a href="https://www.drupical.com/">Drupical</a> - Drupal events map</li> <li><a href="http://dgo.to/">dgo.to</a> - Short URL to Drupal resources</li> <li><a href="https://drupalconsole.com/">Drupal Console</a></li> <li><a href="https://m.do.co/c/c133f1c749c8">DigitalOcean</a> - please use this referral link to help with hosting costs!</li> <li>Have any ideas/questions about the show or need any Drupal?! - <a href="http://purkiss.com/contact">Get in touch!</a></li> </ul></div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/news" hreflang="en">News</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/news" hreflang="en">News</a></div> <div class="field--item"><a href="/tags/vlog" hreflang="en">vlog</a></div> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> </div> </div> <section> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=2&amp;2=comment&amp;3=comment" token="F49PdYXTo9nYIabImP7ytdb_O42_SRqoEM-rbvtsxlo"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2016/08/19/drupal-debrief-1" data-a2a-title="Drupal Debrief #1"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2016%2F08%2F19%2Fdrupal-debrief-1&amp;title=Drupal%20Debrief%20%231"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Fri, 19 Aug 2016 16:30:00 +0000 Steve Purkiss 2 at https://purkiss.com https://purkiss.com/blog/steve-purkiss/2016/08/19/drupal-debrief-1#comments Remote DrupalCon - Day 3 https://purkiss.com/blog/steve-purkiss/2015/09/25/remote-drupalcon-day-3 <span>Remote DrupalCon - Day 3</span> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Fri, 25/09/2015 - 23:14</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>"Talk is silver, contribution is gold"</h2> <p>It's the final day of sessions at the Real DrupalCon and these are the keynotes I've been waiting for! (<a href="http://purkiss.com/blog/steve-purkiss/2015/09/23/remote-drupalcon-day-2">click here for yesterday's blog if you missed it</a>)</p> <p>I say "keynotes" as in a departure from the norm there are two speakers today, both whom I've had the pleasure of seeing previously and both whom touch on subjects close to me -<a href="https://youtu.be/TdEVaOjL20s">Contribution beyond source code in Drupal and Mental Health in Open Source</a>.</p> <h2>Contribution beyond source code</h2> <p><a href="https://twitter.com/sgrame/status/646966174916444160">Sketchnotes by Peter Decuyper</a></p> <p>David Rozas (<a href="https://twitter.com/drozas">@drozas</a>) is a Free Software enthusiast, Drupal developer, PhD candidate and postgraduate researcher whom for the last few years has been researching contribution in Free Software communities, specifically Drupal. I've seen David talk at a few DrupalCamps and it is great to see his work being recognised and able to reach a wider audience.</p> <p>I find it a particularly interesting area as my non-code contributions to the Drupal project are orders of magnitude greater than the ones of code - I just noticed the other day my <a href="https://groups.drupal.org/user/8816">Drupal Groups Profile</a> says I've been involved in organising 70 events, plus I've done things like create <a href="https://vimeo.com/28789460">a cool short film about What is Drupal?</a> In fact one of the reasons I used Drupal in the first place was because writing code for other people's websites selling parking spaces or whatever didn't really float my boat much as a computer scientist so I could do most of what I needed with existing modules and just provide the 'glue code'.</p> <p>It is only really in the past year with the advent of Drupal 8 that my code contributions have started - much of that has also been to do with actually knowing how I can join in, along with confidence issues - the latter covered by today's second keynote so I'll park that one for the moment.</p> <h3>Commons Based Peer Production</h3> <p>The key to David's session for me was the introduction to the audience of the term "Commons Based Peer Production", which is how the Drupal community works. I honestly think the vast majority of people who currently use Drupal at the moment think it's a CMS product produced by some magical team toiling away building the exact feature you want to use for Free, or they simply don't think about how or where it comes from, it just is. By David introducing the notion of Commons Based Peer Production it ideally frames the community and the product, and explains how it is built and maintained - not by one specific company but by a community of peers, i.e. you and me, no magic unicorns in the sky. Far too often I see Drupal 'sold' as a product which often serves to disappoint when people encounter issues and don't understand the process of how they can deal with them, often expecting people to work for free and/or blaming Drupal itself for their problems. An overview of CBPP should be in every Drupal 101 tutorial, get people involved in the community from the start!</p> <p>David covers the notion of what commons are and highlights a number of quotes from Drupal community members and comes to the conclusion that to continue to scale the Drupal community effectively more local meetings in real life are needed to strengthen the connections built online and enable community members to interact on other levels than just code itself. In terms of funding the growth, David explains we need to explore new dimensions of value - an area I'm particularly interested in as I love to write and do other things than code however the only proven way I get money at the moment is from coding.</p> <p>Profiles on the Drupal website are covered, highlighting that community contributions are beginning to be included a lot more, as well as things like listing your mentors which helps the mentors too, not just your own profile. More non-code contributions need to be included - it's often been the mantra of Drupal that "Talk is silver, code is gold", I like the alternative "Talk is silver, contribution is gold". The more we recognise people's contributions of any kind, the more the community will grow organically.</p> <p>David's keynote is an enlightening one as it educates members of our community as to what it is they are actually part of - I think this is key to knowing that you can and are part of it and helps to break down the barriers to contribution. He ends his keynote saying this is only the first set of results and wants to continue the research in an open, Drupal fashion and invites people to join in over at a new group set up <a href="https://groups.drupal.org/research-about-drupal-community">Research about the Drupal community</a> - this is only the beginning!</p> <h2>Mental Health &amp; Open Source<a href="https://twitter.com/annavitals/status/647080066011103233"><img alt="Why people break down infographic" src="http://purkiss.com/sites/default/files/breakdown.png" /></a></h2> <p><a href="https://twitter.com/mikebell_">Mike Bell</a>, UK Drupalist <a href="https://youtu.be/TdEVaOjL20s?t=49m">begins his keynote on Mental Health &amp; Open Source</a> with a caveat that he is not a doctor and this is just from his own experience via a break down. Shortly after his talk I saw <a href="https://twitter.com/annavitals/status/647080066011103233">this infographic by Anna Vital go by on my twitter timeline</a> which I thought was quite appropriate as I think I have at some time encountered similar scenarios and it's how you deal with them which makes them either constructive or destructive.</p> <p>Mike covers these issues well in three sections - Depression, Anxiety and Imposter Syndrome. Rather than repeating his entire keynote I'm going to cover a little about how each of them affects my life and I encourage you to <a href="https://youtu.be/TdEVaOjL20s?t=49m">watch Mike's keynote</a> to gain more insight into what is a very important subject everyone is affected by at some time or another.</p> <h3>Depression</h3> <p>It's strange when you look at your life and all the things you have - I live in a wonderful apartment, in a wonderful city, close to the beach yet depression is something which, as Mike says, just comes over like a dark cloud and it's very hard often to see the good in anything. Like Mike, when I first went for help with my depression from the medical profession I was put on a dose of medication and it did help me get through the worst of it. This was 20 years ago when I was a 'mature student' at uni (I'm now 43!). A year later I went particularly low again and was put on a different medication which had an adverse reaction with me which meant I was shaking all the time and when my best friend pointed it out I took myself off the medication and haven't had any pharmaceuticals since. For me, I know what causes my depression and I know what I need to do to get out of it - eat healthily, do lots of exercise, etc. Doesn't mean I always do it, and I'm particularly out of practice at the moment hence why I'm not as happy as I know I can be, but whilst the pills do help in some cases, they only tend to mask the underlying issues which are often more than not life issues which I believe working through them makes me a stronger person in the end. I'm not advocating not taking medication, I'm just saying for many people it's not the answer but a temporary fix, and if you're happy with that then that's fine. Mental illness isn't one thing affecting people in one way and there's no one answer.</p> <h3>Anxiety</h3> <p>I'm going through lots of anxiety right now - I spent a lot of time and money traveling this year so I could grow my Drupal network and learn more about Drupal 8 but I went over-optimistic again and didn't build my pipeline up enough, so a month ago I lost a number of potential opportunities all at the same time and now I'm two months behind in rent. The worst is it's debilitating which just produces a downward spiral as it means you stop doing the things which bring you the work in the first place. Luckily a couple of months back I forced myself to start blogging again, so when I had to cancel my DrupalCon ticket I thought that instead of being depressed and anxious about cancelling the one thing which probably would've meant I'd bump into someone and make connections for work I'd use my talents, keep myself busy, create the opportunity for connections to happen, and give you all an ear-bending in the meantime ;)</p> <p>I'm anxious about writing about this stuff because I'm freelance, I'm the salesperson, and I worry if people know every bit about my life then they somehow link it with work. Well, for sure I don't do a 9-5 any more, but I go by what I produce, the end result, and when I look back at the projects I've produced lately I'm very proud - happy clients takes my anxiety away for sure! So thanks to Mike, because if it weren't for you I wouldn't feel as easy as I do now writing about this stuff, and frankly I don't care what people think, whether self-indulgent, too much, or whatever, it's helping me right now lol.</p> <h3>Imposter Syndrome</h3> <p>This is probably my biggest bug-bear with mental illness. I've been hacking on computer code for the lat 34 years, yet often when I look at some code I go "I can't do this" and it often take a lot of effort to get past this point, but every time I have I've proved to myself that I can do it. That's probably more confidence than imposter syndrome, for me it stems back to when I was in a previous company in the dotcom days and the head geek took the mick out of my technical capabilities. I admit I'm not the best one to be sitting down coding all day on a client's site, but that's more to do with the fact I'm a creator as opposed to a mechanic, and my days are not 100% coding any more.</p> <p>Where I get imposter syndrome most is when all three issues are affecting me, and I can honestly say yesterday was one of those days. I was ready to sell everything up - I don't know where my next income is coming from, I'm late with bills, I'm credit carded up to the max - what am I doing, who am I kidding that I know this Drupal thing? I realised it was only my current wave of thinking though so instead of staying up late last night to write this final blog of the conference I'd do it the next day. Then anxiety set in - what if I forgot everything I watched? What if I just let it slip and didn't end up writing the blog? I knew this blogging thing was a silly idea &amp; wouldn't last long - etc. etc. - if I told you every thought I had last night on this the page would never end, but we are here so once again the world didn't end ;)</p> <h3>Managing Mental Illness</h3> <p>Mike continues his keynote covering what methods he's using to cope at the moment and areas such as how it impacts companies and business. For me, Drupal enables me to live with who I am as a person - there's enough opportunities around so that I can, bit by bit, fulfil my needs from a number of different areas - personally I've never found a job which could do that for me. You're either building your own life or someone else's, from a bad experience being made redundant back in the 'dotbomb' days I've always wanted to be in a position where I'm in control, and although it's hard to say this right now with imposter syndrome creeping back in with the thought of the late rent and bills, I do believe I've managed to do pretty good having freelanced now for the last 15 years. That's not to say I'm not open to opportunities - often I think about how 'easy' it would be not to have to worry and just take my monthly pay, but I don't believe that's going to fulfil my potential as a human being - in fact I don't think it does for any human being, but that's another story for another time.</p> <p>All I do know is I'm enjoying writing this way too much - I used to blog and write stuff every day as I wrote a Plain English Guide to Open Source but my writing stopped shortly before my Drupal started due to an abusive relationship I was in over in Canada with a girl who I found out was BPD &amp; bipolar, but that's yet again another story so for the moment thanks Mike for helping me back on my road to recovery, apologies to those who are just trying to catch up with the goings-on at DrupalCon, I'll get back on the case shortly, if you want to discuss this, or anything, further please do tweet <a href="https://twitter.com/stevepurkiss">@stevepurkiss</a> or <a href="http://purkiss.com/contact">contact me through my website</a>, comments are broken on here and I'm not fixing them as I'm migrating to Drupal 8 just as soon as I finish this blog ;)</p> <p>Mike's keynote finishes up with a well-deserved standing ovation from the audience then a short Q&amp;A session discussing things like how we can help within our community and at our events. Mike suggests a table at events where local mental health professionals can set up a stall with leaflets, etc. Personally I think we should do those as part of the process but focus on the underlying issues as to why people are having break downs in the first place. It's a strange year as this is covered in other sessions I watched which I brief below as our project has experienced much 'burn-out', but it is great to see so much focus on this - seeing and being part of how we address these issues is great as I'm sure if it were in some company they'd probably just pass it on to the HR department to sort out, we have the opportunity here to forge new ways of dealing with the pressures of modern life. Personally I believe new ways of living like being a digital nomad are part of the cure - we don't need to be near the factories to do our work any more yet we live in an infrastructure and culture built around those principles, luckily this is changing slowly as we do more of this sort of thing.</p> <h2>Other sessions from Day 3</h2> <p>I must admit I had to have a break after watching the two keynotes, it was all a bit overwhelming - two subjects close to my heart, community members and their work being recognised, the reaction of the audience, etc. but I knew there were more awesome sessions coming and two days in with only one to go was certainly no time to give up now I've been blogging about it too ;) So on we continue, and on a similar vein to the keynotes...</p> <p><a href="https://youtu.be/LWdNMhI0MoA">Avoiding and surviving of contribution burnout</a> - <a href="https://twitter.com/laurii1">@laurii1</a> and <a href="https://twitter.com/schnitzel">@schnitzel</a> provide an excellent session on what burnout is as opposed to stress, some tips on how to deal with it personally (like drink more water, cos it makes you pee so forces you to get up and move around!), and how to deal with it in our community (delegation, more praise for participation, etc.). More than half the session is given over to discussion with the audience on how we can make Drupal more sustainable so well worth a watch. I think there will always be stress and burnout whilst there's such a disproportionate amount of contributors vs users of Drupal so believe that at least some of these issues can be addressed by growing the community of contributors so the workload is shared more, and perhaps saying no to stuff if there isn't the material support to go along with the efforts necessary to produce it.</p> <p><a href="https://youtu.be/Zkvoaw6yCcg">Pain Points of Contribution in the Drupal Community</a> - Kalpana's (<a href="https://twitter.com/kalpanagoel">@kgoel</a>) session is along similar veins but more on the practical side of what the problems are with the current interfaces we have and stumbling blocks to participation and how we can get organisations to contribute and participate more.</p> <p><a href="https://youtu.be/vwDCgDfiMEk">Hassle-free Hosting and Testing with DevShop &amp; Behat</a> - there's lots of options for managed Drupal hosting, and whilst I love them they are rather expensive especially when dealing with small or personal projects, plus it's always good to look at other options so when I saw there was an open source hosting project for devshops available I thought I'd check it out. It's interesting, but I still don't feel confident enough to manage my own and clients sites as I'm no sysadmin (I like to break things, guess that's why I like tests so much!) so whilst I'll still be playing around with self-hosting a few pet projects, I'll leave the client stuff up to the professionals. Worth watching if you want to set up your own hosting stack though.</p> <p><a href="https://youtu.be/vtDYXNJkcvM">The future of Groups on Drupal.org</a> - unfortunately the presenter's slides didn't display properly so we couldn't fully see the proposed improvements but you got a good idea that there's a lot of good change on the way, focusing on the personas that were created a while back for drupal.org users so contextual data should show up in the future, at the moment it's focused squarely on developers.</p> <p><a href="https://youtu.be/d2SutA331S8">Planning for Drupal 8.1.x, 8.2.x, and our future together</a> - this was actually more interesting and important than I thought it would be, another half-session, half audience participating in making a list of what to be included in the next versions of Drupal now that we have gone to semantic versioning, i.e. minor versions as well as major providing functionality additions. Presenter <a href="https://twitter.com/timplunkett">Tim Plunkett</a> whom I had the pleasure of finally meeting when I went to DrupalCon LA (yes, that's another reason why I'm cashflow poor at the moment!) is ideally placed to host this talk as his work in the panels and layouts area is particularly affected by semantic versioning as not everything will get into the 8.0.0 release. Watch this if you're planning on using Drupal 8 and want to know what's coming up soon!</p> <p><a href="https://youtu.be/SGvQD36m6Wk">AMA: Drupal Shops Explain How They Do It</a> - not much in terms of visuals on this one but an interesting discussion from a few Drupal shops as to how they do things like manage remote teams and encourage clients to become part of the community. I find it encouraging hearing their efforts but as someone who's seen a lot of the issues lately with getting Drupal 8 out of the door I'll be a lot happier when the balance of contributions is, well a little more balanced. If people can make millions out of Drupal, then it shouldn't be as hard as it was to get $250k for funding some core development - for whatever reason. What businesses get back is Drupal, if you don't fund/help maintain/grow Drupal, it will disappear. Free as in speech, not beer remember!</p> <p><a href="https://youtu.be/iieIuaoFFnk">Distributed Teams, Systems &amp; Culture</a> - An interesting session on how one company - <a href="http://pantheon.io/">pantheon</a> - manages its remote teams.</p> <p><a href="https://youtu.be/ssS5oblHxi8">PHP 7 is (almost) here. OMG! PANIC!</a> - I started to watch this as now Drupal 8 is almost here we are actually making use of some of the functions PHP has developed in the last 10 years or so! It was a little too heavy for me for yesterday so I'll revisit it sometime as interesting things are happening in the PHP world.</p> <p><a href="https://youtu.be/9KG11emrQQk">Paid contribution: past, present, and future</a> - this was a really interesting session on funding contributions, mainly driven by audience discussions being part of the core conversations track. There's been a lot of different approaches to funding in the last year with more people now being paid to work on Drupal fulltime, a few funding campaigns for things like Rules and other efforts. One particular point I thought interesting was the discussion on return on investment for companies sponsoring DrupalCamps, and the general feeling that it's becoming harder to justify as businesses want to know direct results. Suggestions such as questionnaires before the event so companies can research potential employees were offered and a general feeling that the overall sponsorship packages need to be revamped - companies don't care how big their logo is, they want value they can value. There was also the Rules initiative which was funded but took a lot of effort and it was mentioned that it's going to be hard to go back and ask for more so other options would be good to look into - personally I think people just don't know what needs doing or how they can get involved so it's good to see sessions like this try to hatch more ideas out.</p> <p><a href="https://youtu.be/xHRW2Nz2ZL8">Building semantic content models in Drupal 8</a> - I was particularly interested in this session as one of my projects is a Drupal skills-matching site. I must admit I was eagerly waiting Dries' Drupal 8 retrospective to appear in the video timeline so once it did and I saw that most of this looked the same as it was in 7, I moved on. Extremely interesting topic though!</p> <p><a href="https://youtu.be/sDj39PwAz8w">Drupal 8 retrospective with Dries</a> - each year the founder of the Drupal project Dries does a Q&amp;A session which is one of the only sessions I usually attend. After quite a few DrupalCons (8 I believe!), I soon worked out that most of the videod sessions I was fine with watching after the event, so mostly ended up going to BoFs (Birds of a Feather) sessions where you get to participate in the growth of a certain area of the project, or the hallway track. This DrupalCon is the only one I've watched all sessions during the event but sadly that's only because I'm not physically there!</p> <p>Dries goes through what worked well, what didn't, and how we can improve in the future - release fewer things sooner, improve core funding, etc. The take-away quote for me was when he said "we need to get off our processes island as well as our technical one" which couldn't have summed it up better - other projects and organisations have worked on this for years and we should gain knowledge from them, at the moment we just throw things into the pot and Drupal comes out the other side, we need more direction.</p> <p>A truly superb session and one every Drupaler must watch!</p> <h2>Watch Later List</h2> <p>By this time I was pretty bushed so I thought I'd go through the rest of the <a href="https://www.youtube.com/user/DrupalAssociation/videos">Drupal Association videos</a> to see which other ones from the conference I'd like to watch. As per usual a massive list emerged but thought I'd post it here for those like-minded!</p> <h2>We did a DrupalCon!</h2> <p>These words from the closing session where they announced the <a href="https://events.drupal.org/dublin2016">next European DrupalCon will be in Dublin</a> next September! Before that there's <a href="https://events.drupal.org/asia2016">DrupalCon Asia in Mumbai</a> in February and<a href="https://events.drupal.org/neworleans2016">DrupalCon New Orleans</a> in May. I do hope I manage to work out my business models so I can afford to go to all. I'm particularly interested in Mumbai as I've never been there and I think there is massive opportunity over there, I'd love to grow teams of connections out there, watch this space and <a href="http://purkiss.com/contact">get in touch if you want to be involved or can help out in any way</a>.</p> <p>Although I didn't make it I do feel doing this blog has made me feel more part of it so didn't totally miss out but I do recommend you make the effort to attend a DrupalCon if you haven't already, at least go to your local events or start one up if there isn't anything - I learned the hard way that Drupal isn't just a sole way of working, it's all about the people, join in and soon things start to become much clearer.</p> <p>Well, that's it from me - thanks for joining me on my remote DrupalCon journey and I hope never have to do it again as instead I'll be there ;)</p> <p><a href="http://purkiss.com/contact">Click here to contact me to discuss this further, I welcome all feedback!</a></p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/events" hreflang="en">Events</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> <div class="field--item"><a href="/tags/drupalcon" hreflang="en">DrupalCon</a></div> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> </div> </div> <section> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=31&amp;2=comment&amp;3=comment" token="bSPtugrLwN5jbrCNR2Q7iGOm7e9RD_nshh2xPTofkFA"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2015/09/25/remote-drupalcon-day-3" data-a2a-title="Remote DrupalCon - Day 3"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2015%2F09%2F25%2Fremote-drupalcon-day-3&amp;title=Remote%20DrupalCon%20-%20Day%203"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Fri, 25 Sep 2015 22:14:21 +0000 Steve Purkiss 31 at https://purkiss.com Remote DrupalCon - Day 2 https://purkiss.com/blog/steve-purkiss/2015/09/23/remote-drupalcon-day-2 <span>Remote DrupalCon - Day 2</span> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Wed, 23/09/2015 - 23:11</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Let's never do that again</h2> <p>Unlike <a href="http://purkiss.com/blog/steve-purkiss/2015/09/22/remote-drupalcon-day-1">when I was watching yesterday's Driesnote</a>, I actually quite expected these sorts of words to come out of the mouth of Larry Garfield, aka <a href="https://twitter.com/crell">@crell</a>, long-time Drupal contributor and the reason I stayed up way too late last night after blogging so not strictly Day 2 but deserves a mention as was a superb, insightful session "<a href="https://youtu.be/DTJnJxFfvmI">Drupal in 2020</a>".</p> <p>The never do that again refers to the four-or-so years spent on developing Drupal 8 with most of that time spent not developing new stuff but just barely catching up with modern technology trends. In order to be relevant even with today's technologies we need to be looking at what we could be doing and Larry shows off a number of impressive development projects which enable PHP to run in a similar way to node.js - even faster in many cases. Well worth a watch!</p> <p>I ended the night with <a href="https://youtu.be/iKNXkQlOlPk">Ken Rickard's 2020 Vision</a>, an entertaining session from a highly experienced professional reminding us that we are implementing a content management system, not a web publishing tool which comes from the print era, and thus there are many different considerations, and often many of the non-technical ones are overlooked whereas they can prove to be the biggest obstacles.</p> <p><a href="https://twitter.com/NathalieNahai">Day 2 Keynote - Web Psychologist Nathalie Nahai</a></p> <p>I'd seen Nathalie talk before so I must admit I wasn't paying much attention until I saw a question pop up on twitter asking how this session mostly on marketing manipulation techniques was relevant to our community. Nathalie quickly focused on how we could use some of the techniques to help our current community as well as attract new people in by simply telling our story. A well-deserved round of applause came when Nathalie remarked:</p> <p>"This is such a vibrant community it needs to be expressed online much more"</p> <p>This is a big area of interest to me as I see so many wonderful stories from around the Drupal world yet currently the loudest voices being heard are the ones with funding. I've not an issue with that per se, I believe we could do more by collaborating together on strong marketing messaging.</p> <p>I know the DA are doing as much as they can with the resources they have available, however I believe there is a place in the market for an organisation which markets the community as a whole - I envisage trucks that turn into training rooms / 24h coder lounges with schwag stores on board so can rock up to camps all over the place ;) But I guess that's another blog for another time - all I know is I'd love to go round the world interviewing the community for all to see &amp; potentially training many more unexplored areas up in our community values of ownership!</p> <p><a href="https://youtu.be/PZn8o---ce8">Making the Leap: Successful Products as a Web Agency</a></p> <p>Drawing from his own experience with Drupal offsite backup service <a href="https://www.nodesquirrel.com/">NodeSquirrel</a>, <a href="https://twitter.com/dgorton">Drew Gorton</a> from managed hosting service providers <a href="https://pantheon.io/">Pantheon</a> gave an interesting talk covering how quite a few product businesses had managed to make the uncommon successful birth from an agency. Drew provides useful insights I empathise with as I much prefer working in the product world however what with my bootstrapping and co-operative ideals it's taking a little longer than I'd hoped for ;)</p> <p><a href="https://youtu.be/NtpfzhPjnLo">Self-Managing Organizations: Teal is the new Orange</a></p> <p>This was a really interesting session from a company I hadn't heard of before - <a href="https://www.liip.ch/en">Liip</a>. Their organisation is around the 120 people mark and they have a self-organising way of working, with the ratio of pay difference between high and low 3-1. I beleive the company is also owned by the staff however I don't think the percentages were detailed, will have to watch again. They said they had no plans and let teams decide their own projects, strategies, etc. Obviously it's not all plain-sailing and provided a for a great case-study in things going certainly a better way in terms of fairer working environments and enabling human beings to grow rather than be stunted by job roles.</p> <p>I watched a little of <a href="https://www.youtube.com/watch?v=uXVfkzqiOtk">Shut up and take my money!</a> which was about integrating the <a href="https://stripe.com/gb">Stripe</a> payment system with Drupal 8. I've done this previously and nothing much seemed to be different on the Stripe side so moved on - the videos are pouring in quick &amp; fast!</p> <p>I then watched <a href="https://www.youtube.com/watch?v=PqJOM5n1-yM">Expose Drupal with RESTful</a> for a short while until I realised it was 7 so moved on to <a href="https://www.youtube.com/watch?v=vLIvNzO_QRg">PhpStorm for Drupal Development</a> which was a fairly short session clocking in at 15 minutes however very useful, even pointing out a feature which shows you what features you have and haven't been using. I'm no fan of the licensing on PhpStorm but it does make life much easier so will be harder to give up than my macbook but I guess will have to be done at some point if I'm going to achieve complete Freedom!</p> <p><a href="https://youtu.be/EqOOPeodTzc">Headless D8 in HHVM plus Angular.js</a></p> <p>It was noted from the outset that this was a sponsored session from <a href="https://platform.sh/">platform.sh</a> so they would be showing off their product, which I've had the pleasure of playing around with a little on a time-limited trial, however I was suckered in by the buzzwords so I stuck it out. Being at home it was even easier for me to just click the mouse than suffer potential slight embarrasment as I walk out of the session room but in reality that rarely happens and I end up sitting right through the session continually questioning myself as if I were watching the fifth instalment of Jaws wondering wether an incident with a fish will happen at some point.</p> <p>Suffice to say platform.sh works with HHVM and Angular.js. I've nothing against sponsor talks or platform.sh, I think they are both good things, just not this session, for me at least. I guess I wanted to see something shiny, not just a product demo, I feel they could've made a lot more out of the title than they did without having to be so focused on the continual sales pitch. Which I know that's what it was, but felt more like something that should've been out in the exhibit hall. I guess that doesn't get videod and put into the stream though.</p> <p>I started to watch <a href="https://youtu.be/EglfVllpYd4">Altering, Extending, and Enhancing Drupal 8</a> by Joe Shindelar (<a href="https://twitter.com/eojthebrave">@eojthebrave</a>) whom I've had the pleasure of meeting at a number of Drupal events here &amp; in the US. Joe's a great teacher, but for me as I've been playing with Drupal 8 for a while now I decided to skip on, especially when he said "Don't hack core" which is I know the thing, but in Drupal 8 I plan to hack core by simply using its interfaces... it's made for 'hacking' this time. Properly hacking that is of course! I realise this presentation wasn't for me though.</p> <p>Then I watched a little <a href="https://youtu.be/QcU_LCAHNLg">Building amazing searches with Search API</a> but all was looking pretty similar to 7 so thought I'd put that one on the watch when I have a specific need for it list. Then came along a truly awesome session...</p> <p><a href="https://youtu.be/LWdNMhI0MoA">Avoiding and surviving of contribution burnout</a></p> <p>As someone who has suffered from depression I am particularly proud of the fact our community can have sessions that cover topics like this. I feel like I'm coming from a different angle as I'm spending most of my time working out how and where I can be of help and it's the client work if anything that's burning me out due to my complete lack of wanting to do anything other than write beautiful code, and I've not yet met a client who has the want or budget to pay me to do that. Sarcasm aside, burnout is a big issue, and something I have an issue with the business/community balance side as I believe one is currently gaining far more benefit out of the other than there should be and I don't really think it's anything that can't be solved with a more balance put back into the situation. That of course is not to make light of anyone's situation, just how I see the situation from my many travels around camps and to CXO meetups and my experience in the world up until now.</p> <p><a href="https://youtu.be/Zkvoaw6yCcg">Pain Points of Contribution in the Drupal Community</a></p> <p>Along similar veins to the previous session, <a href="https://twitter.com/kalpanagoel">Kalpana Goel</a> delivers another important session trying to untangle the issues surrounding contibuting to the community and how we can potentially go about solving them.</p> <p>Then I watched around half of <a href="https://youtu.be/vwDCgDfiMEk">Hassle-free Hosting and Testing with DevShop &amp; Behat</a> which looks like an interesting, open, option for self-hosting your own sites. Being a little tired I thought I'd come back to that when I'm more awake one weekend.</p> <p>Last one for the day was <a href="https://youtu.be/vtDYXNJkcvM">The future of Groups on Drupal.org</a>, which gave an interesting insight into forthcoming changes on drupal.org, much powered by the persona work done previously, so should be interesting when I log in and tailored content appears for me! It's great to see movement finally here, but I agree with Dries when he said previously it really needs perhaps ten million dollars of investment in it. ATEOTD, if you don't look after your tools you won't be able to make a decent product. It's always been my hope that as we talk about Drupal more, about the Why, and show people around the world what we're building the community will organically scale as people will want to be part of it. I think we have a number of issues in the way of that at the moment - perception, current human fear-driven non-sharing society, and state of internal systems. It's good to see a little focus going on the things we can fix now, hopefully we can scale it up soon so we don't get more fractured across different proprietary community silos just because they're 'easy'.</p> <h2>Wrap-up</h2> <p>Well I may not be in Barcelona but I'm certainly ranting like I'm at DrupalCon, just on the record lol! With all the tweets and session-watching I'm certainly getting DrupalCon tired so signing off for the night, looking forward to the final day of sessions tomorrow with another important keynote and of course looking forward to finding out where next year's European DrupalCon will be - hopefully I'll plan a little better and build a little buffer so I don't miss out!</p> <p>Unfortunately my comments are broken on this site so whilst I'm migrating to Drupal 8, do please tweet me <a href="https://twitter.com/stevepurkiss">@stevepurkiss</a> or get in touch via <a href="http://purkiss.com/contact">my contact form</a>.</p> <p><a href="http://purkiss.com/blog/steve-purkiss/2015/09/25/remote-drupalcon-day-3">Click here to read Remote DrupalCon Day 3</a></p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/events" hreflang="en">Events</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> <div class="field--item"><a href="/tags/drupalcon" hreflang="en">DrupalCon</a></div> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> </div> </div> <section> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=30&amp;2=comment&amp;3=comment" token="8wewMAKC0uqsWM0QjaNynVaLnWgPdKnjktil3Z76i3I"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2015/09/23/remote-drupalcon-day-2" data-a2a-title="Remote DrupalCon - Day 2"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2015%2F09%2F23%2Fremote-drupalcon-day-2&amp;title=Remote%20DrupalCon%20-%20Day%202"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Wed, 23 Sep 2015 22:11:12 +0000 Steve Purkiss 30 at https://purkiss.com Remote DrupalCon - Day 1 https://purkiss.com/blog/steve-purkiss/2015/09/22/remote-drupalcon-day-1 <span>Remote DrupalCon - Day 1</span> <span><span lang="" about="/u/steve-purkiss" typeof="schema:Person" property="schema:name" datatype="">Steve Purkiss</span></span> <span>Tue, 22/09/2015 - 09:07</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><h2>Release Drupal 8 and momentum will come</h2> <p><em><strong>“Is Drupal losing momentum? Yes”.</strong></em></p> <p>Not the words I was expecting to hear (<a href="http://purkiss.com/blog/steve-purkiss/2015/08/15/drupalaton-day-zero-drupal-8-shipped-you-didn%E2%80%99t-miss-the-boat-already">happens to me a lot this year</a>) come out of <a href="http://drupal.org/">Drupal</a>’s founder Dries Buytaert as he took to the stage in Barcelona for this year’s European wing of the<a href="http://drupalcon.org/">DrupalCon</a> conference for his regular “Driesnote”, but as I sit here back in rainy England after having to sell my DrupalCon tickets last week I certainly empathised. Dries explains this lull happens every time at this point between major version releases and assures us a big spike will come when Drupal 8 is released, so all we can do at the moment is work as fast as possible to get Drupal 8 out.</p> <h2>Move to a more sustainable release process</h2> <p>Once Drupal 8 is out there Dries suggests using a system of feature branching so that you can always be shippable (<a href="http://buytaert.net/always-be-shippable">http://buytaert.net/always-be-shippable</a>). This seems like a much more sensible approach than the current one, enabling timed releases and adaptability as different features encounter different issues along the way hopefully meaning they won’t have as much impact on each other as they have in the current release cycle so we don’t have to experience this huge effort to get everything working all at the same time going forward.</p> <p>Whilst I think this is a good approach I fear this opening up to a huge amount of functionality being able to potentially go into core as it’s easier to develop, which is where the question of different cores for different uses comes in. There was a blog post a while back about how Drupal could evolve more like Linux has with distributions - personally I see that more attractive than putting all the things in core over time, especially if one of the major focus of our efforts in the future is to be for the non-coders as Dries goes on to cover in his keynote.</p> <h2>Put non-coders first to increase our impact</h2> <p>Dries continues to cover Drupal’s market position, suggesting our focus should now be on the user experience to make it easy to do things with Drupal. There is no point in providing functionality for non-coders if they can’t figure out how to use it so personally I’m glad to see a focus on this, and with the growing community of front-end developers, UX people and other job roles I daren’t guess as I’ll no doubt offend as it’s not my area of expertise - I believe it’ll gradually happen.</p> <p>Whilst WordPress has focused heavily on user experience, Drupal has focused much more on the developer experience. Now we have achieved so much on the developer experience side of things it is time to focus on the user experience, and to cut back from comparing to WordPress as Drupal has moved on much further in terms of technology capabilities and instead to focus on the majority of sites out there which currently have no CMS. By focusing on the usability side it will be much easier for people to see how advanced Drupal is and actually make use out of it themselves instead of being baffled by terminology and ‘Drupalisms’. </p> <h2>Drupal 8 will be the go-to platform for sites and apps</h2> <p>Dries then talks about Drupal’s technological relevance in the future as many other front-end frameworks appear and develop and are certainly here to stay. He outlines the future not as one of a completely de-coupled Drupal as you miss out on a lot of Drupal’s goodness by taking that approach and instead talks about ‘progressive decoupling’ where Drupal is much more integrated into the front-end process. I tend to agree here and put it down to current lack of appreciation of Drupal’s capabilities simply because there are so many, and as Drupal 8 is adopted more I am sure more examples will fuel the interest and we will see some interesting ‘mash-ups’ - if I had unlimited time &amp; funds I’d certainly be hooking up views to my Oculus VR - do feel free to sponsor that one lol!</p> <h2>Other sessions from Day One</h2> <p>Once the keynote had finished I was pleasantly surprised to see the sessions appear almost immediately on youtube, here’s a link to the Drupal Association’s video list where they appear:</p> <h3>DrupalCon Barcelona 2015: The Prenote!</h3> <p>Always a fun kick-off to DrupalCon, always a laugh and a song, watch it if you didn’t get to go along!</p> <h3>Content Strategy for Drupal.org</h3> <p>For a long time now Drupal.org, the online home of the Drupal community, has been maintained mostly by the community however recently thanks to funding more and more is being done to improve the site which is the biggest online Drupal site there is. Tatiana (<a href="http://twitter.com/tvnweb">@tvnweb</a>) who works for the Drupal Association as product owner of drupal.org details the process of the work done so far to categorise the content and uses of drupal.org and covers the current and future developments.</p> <p>The main area of change is around managing of projects which is moving to organic groups and should provide a much more comprehensive way of collaborating online than the current functionality provides. I am certainly enjoying all the improvements which have been regularly appearing of late and am excited about the growth that these changes will hopefully provide by making it easier to see, understand, and become part of the Drupal community, something which has been up until now quite a mystery to many people!</p> <h3>How to diversify your business beyond Drupal</h3> <p>This was a journey through the trials and tribulations of Amazee Labs as they grew into different service offerings and geographical locations - always interesting to hear the issues surrounding business and a lot to be learned from one of Europe’s top Drupal agencies! </p> <h3>Winning and delivering big projects from a small agency perspective</h3> <p>An interesting take on how to approach the business scene from a different angle focusing on your individual strengths as an agile, small business.</p> <h3>Configuration Deployment Best Practices in Drupal 8</h3> <p>If you want to get down-and-dirty with CMI on Drupal 8 then this is the session for you. See how to move config from one environment to another, something which was nigh-on impossible in Drupal 7 so yay to CMI!</p> <h3>Solving Drupal Performance and Scalability Issues</h3> <p>Tine Sørensen, whom I’ve had the pleasure of meeting at a few Drupal events but sadly missing out this time :(, delivers a useful session covering many issues of dealing with performance and scalability from both the technical and human side of things. Often there’s many low-hanging fruit but it’s sometimes hard to get developers to work on them as they want to work on perhaps things which means they can code more like refining sql queries coming out of Drupal. Instead of this, Tine’s approach is to get the low-hanging fruit out of the way then look at the situation again as there’s hidden costs of changing what comes out of Drupal in terms of sustainability. Tine mentions the graphics library GD being one culprit, with ImageMagick being a replacement using much less resources. </p> <p>There’s way too many good bits of information in Tine’s session for me to highlight here so do watch the session as often many of these easy-to-rectify things are overlooked and the blame is put on Drupal for being slow when all it takes is a little tweaking to get it running just fine!</p> <h3>Drupal 8 theming</h3> <p>I thought I’d finish off the day by watching MortenDK’s theming talk. For the first time in a long time I was sitting there wondering what had happened as there seemed to be a calmer Morten presenting - a testament to the work that’s gone into changing how front-end developers work with Drupal and I could empathise with him when he says he now looks at Drupal 8 code with a sense of relief as that’s how it also feels from a back-end developer’s point of view especially if like me you came originally from an object-oriented way of working 15 years ago then had to learn Drupal’s hook system!</p> <h2>Final thoughts</h2> <p>Drupal 8 is a game-changer and I’m excited about the possibilities - especially as the community grows around the world. Meanwhile, it’s back to youtube until I pass out on this no-frills DrupalCon experience - sad to be missing out on all the networking &amp; fun times but sh*t happens, one lives and learns... ;)</p> </div> <div class="field field--name-field-category field--type-entity-reference field--label-inline"> <div class="field--label">Category</div> <div class="field--item"><a href="/category/events" hreflang="en">Events</a></div> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field__items"> <div class="field--item"><a href="/tags/drupal" hreflang="en">drupal</a></div> <div class="field--item"><a href="/tags/drupalcon" hreflang="en">DrupalCon</a></div> <div class="field--item"><a href="/tags/drupal-planet" hreflang="en">Drupal Planet</a></div> </div> </div> <section> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=29&amp;2=comment&amp;3=comment" token="UMnLAd2pwczbhuG_AINUbJsxrKQK2Tp-jz6Pxzped2E"></drupal-render-placeholder> </section> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://purkiss.com/blog/steve-purkiss/2015/09/22/remote-drupalcon-day-1" data-a2a-title="Remote DrupalCon - Day 1"><a class="a2a_dd addtoany_share_save" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpurkiss.com%2Fblog%2Fsteve-purkiss%2F2015%2F09%2F22%2Fremote-drupalcon-day-1&amp;title=Remote%20DrupalCon%20-%20Day%201"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a></span> Tue, 22 Sep 2015 08:07:33 +0000 Steve Purkiss 29 at https://purkiss.com