DrupalCon New Orleans

I’ve just landed back home after spending a few days in New Orleans for the annual North American DrupalCon. As usual, I mainly attended Business and DevOps sessions, as well as a number of sessions in a new track called Horizons which covers the edges of Drupal. Horizons is an interdisciplinary track that discusses and showcases the biggest challenges and greatest opportunities in Drupal. A large number of the Horizons sessions were around using Drupal with other front ends, generally Javascript MVCs, but there were some on using Drupal with the Internet of Things which I’m particularly interested in - especially after seeing the integration between Drupal and Amazon Echo in Dries’ keynote! Watch the video below for the demo from his keynote (or skip to here if you're only interested in the Amazon Echo integration).

Day 1

On the first day I attended DevOps sessions covering topics such as Continuous Deployment, DevOps planning, and Horizons sessions around using Angular 2 with Drupal and Service Workers as well as a session on security.

At Webscope, we’re constantly refining and improving our workflow, so I’m always interested to find out about the workflow of others and how they handle Automated testing, Continuous Integration, Continuous Deployment, QA, etc. I’ve come away from these sessions with a new CI tool to trial, plus some thoughts around how we might be able to better handle QA and the enforcing of code standards.

I found the Angular 2 session to be the highlight of the day - we already use Angular 1 at Webscope, but so far it’s has only been with Laravel and Drupal 7 as we haven’t yet had the opportunity to use it with Drupal 8. One of the new features in Angular 2 is pre-rendering which means that the first page load is no longer rendered by the client, which sounds like a big improvement. I also learned that the Angular and Drupal teams have been working together to bring this pre-rendering to Twig and PHP - this means that we can use existing Twig templates with Angular. One of the key points for me in the session was around progressive decoupling. If the front end is fully decoupled, we lose many of the benefits that come with using Drupal, such as caching, logging, concatenating Javascript into the header, etc. Progressive decoupling means we have the best of both Drupal and Angular with contextually aware components, such as node content, custom fields, etc.

Day 2

Wednesday started with the keynote by Sara Wachter-Boettcher. The focus of her keynote was how we can each work to make our designs kinder and more inclusive. One of her examples was around how Facebook shows us some of our past content on anniversaries or at the end of the year. Facebook presents these memories in a celebratory manner, but they might in fact be bad memories that we don’t want to be reminded of. It would primarily be in the strategy and design phases of a project that we utilize these learnings as the main areas to focus on are being inclusive and thinking of the feelings people will have as they go through a process. On the development side, we need to ensure that we’re not overzealous when validating form fields and ensuring that we have appropriate success and error messages, for example, ensuring we don’t display a message telling someone who is filling out a form that their name is invalid.

After the keynote, I attended sessions on GraphQL, the new features in Drupal 8.1, Continuous Deployment and Monitoring. I’d hoped to catch the session on offline-capable, decoupled Drupal 8 with React.js and React Native, but missed it due to being in a meeting. GraphQL looks very interesting - the developers created it out of frustration with the limitations of REST, and the goal is to expose your entire Drupal data graph through a fully generated self-documenting schema. It’s still under development, but I’ll definitely be trialling it once mutations are supported.

Since I haven’t had much time to work with Drupal 8 yet, I went to the session on Drupal 8.1 as it had recently been released. Drupal 8.1 has some new features that will be very useful, such as modules that will allow migration from previous versions of Drupal, CKEditor now includes a language toolbar button as well as support for browsers' (native) spell-checking. Support for automated Javascript testing and BigPipe will also be included which I’m pretty excited about - from the BigPipe demos and benchmarks I saw, it will drastically improve the user experience since it splits the websites into chunks and sends the cacheable content first, with dynamic/uncacheable content loading last. This means the browser can start displaying content much quicker compared to waiting for all content to be ready to display. The overall load time will remain exactly the same, but the experience is much better since the user is seeing content much quicker.

Day 3

Michael Schmid was the keynote speaker on Thursday, with a talk titled “Your brain health is more important than your standing desk”. He talked us through the strategies he’s come up with that help him stay healthy while working as the CTO of a global company and dealing with the stressful situations that come with the job. My notes from the keynote are below, but I recommend watching the keynote here as it was very insightful and it’s so important to remember to look after ourselves.

  1. Reflect
    1. Once a week, ask:
      1. Am I still happy?
  2. Find your productive time
  3. Split up your day
  4. Drink water
    1. 30-60ml per kg
      1. 1% dehydration - 5% cognitive defect
      2. 2% dehydration - fuzzy short term memory, problems focussing
  5. Take breaks
    1. Two brain modes
      1. Focus
      2. Diffuse
    2. We solve hard problems in diffuse (day dreaming) mode
  6. Find something that relaxes you
    1. Sports
    2. Workout
    3. Podcasts
    4. Reading
    5. Anything, but shouldn’t take too long
  7. Sleep
    1. Relaxing breath
      1. 4-7-8
      2. 4 counts in
      3. 7 counts hold
      4. 8 counts out
    2. Count down from 100
    3. Turn off all distractions
  8. Get help
  9. Keep on improving

Following the keynote, I attended sessions on how Drupal can be used with the Internet of Things, two business sessions and then the closing session. In the closing session, we were given stats on various things such as how much coffee we drank, how much data we used over wifi, and that the next North American DrupalCon will be held in Baltimore.

My favourite session for the day was on using Drupal with the Internet of Things. First of all, Amber gave us an overview of Arduino, Raspberry Pi, and other useful pieces of technology, and showed us some of her creations. One example that could be useful for developers is a traffic light that displays the status of a test suite - the light is orange when the test suite is running, turns green if it passes and red if it fails. Amber then explained how Drupal can be used for the IoT data needs, such as storage, visualisation, monitors and triggers, particularly now that Drupal 8 has guzzle for handling requests and responses, the ability to use third party code from packagist, and the ability to integrate with Javascript and node.js. What she has built in Drupal 8 is a map that tracks the location of the largest container ship in the world, and she has done this by getting the latitude and longitude of the ship via guzzle in a custom module. She then creates nodes that contain a geofield with the location of the ship, and has a view that creates a rest endpoint that outputs the geofield data in json format. Finally, she has a leaflet map that displays the map points, showing the current location of the ship as well as its previous locations.

Overall it was a worthwhile trip, and as usual, I’ve come away with new tools and concepts to try, both on the technical and business side of things. I’m definitely hoping we can get an Amazon Echo for the office in time for our next Webscope Labs, as I’d love to have a play with that and see what we can do in terms of integrating voice control into web based applications and how that could work for some of our clients.

Oh, and see if you can spot me amongst the 3000+ other attendees in the header of this post - if you need help, I’m on the right, wearing a NASA t-shirt.

More blog posts by Katie Graham

When movies are made, one of the most demanding roles on set is the script supervisor, also known as the continuity supervisor. The major objective of the continuity supervisor is to keep the continuity of the wardrobe, props, hair, set dressing, makeup and actors actions during the filming of each scene. This sounds like an impossible task for one person, and it almost always is. A lot of mistakes slip through the cracks and show up as the movie is edited together but generally movie studios don’t mind as they have a psychological trick up their sleeve.
Why we’ve switched from Vagrant to DockerWe’ve recently started moving away from using our Homestead based Vagrant setup when developing Laravel apps due to the fact Docker is lightweight, quicker and we’ve found that many projects we work on, require additional PHP extensions or server configuration which Docker simplifies the management of.
The two pairs of the Knox V2 Google Cardboard we’d ordered had arrived in the office in time for Webscope Labs, so we thought it would be fun to have a play and see what we could do in terms of Virtual Reality. We created a VR tour of our office, it was pretty disconcerting to remove the headset after seeing one part of the office and adjust to being in the area you’re actually in!