DrupalCamp Montreal 2017

Introduction

Videos from DrupalCamp Montreal 2017.

Conference page
Video Sponsor(s) / Provided by
Drupal Montréal
Curated Videos
Description
Nicolas Steenhout

Vous aurez probablement entendu parler de l'importance de l'accessibilité web. Mais c'est quoi, ça, au juste? Ça touche qui? Pourquoi est-ce important, et pourquoi votre site devrait-il être accessible? Et si vous êtes dévelopeur, pourquoi devriez-vous assurer l'accessibilité des sites que vous créez pour vos clients?

Mais une fois que c'est compris, de quoi ça a l'air, un site accessible? Est-ce qu'on doit oublier tout design et aller sur un site "texte seulement"? Peut-on garder un peu de JavaScript? Nous explorerons quelques concepts de base pour assurer l'accessibilité d'un site.
Description
Salman Jaffery

The new migrate module within Drupal 8 core has changed significantly since Drupal 7. It's now more powerful and easier to write. It also can be used to do a lot more than before. However with all these new enhancments means learning to do migrations all over again for anyone thinking to migrating or upgrading to Drupal 8.

In this session we will cover the basic layout and hierarchy of a Drupal 8 migration as well as:

Custom D8 Migration
Custom data source
Custom transformation plugin

All of the above will be demo'd through a live d7 to d8 migration.
Description
Christopher Smith

This is a new presentation with the goal of sharing our lessons learned in the adoption of an agile project management approach, with a focus on Scrum, within our Drupal agency.

The rules and practices for Scrum - a simple process for managing complex projects - are few, straightforward, and easy to learn. But Scrum’s simplicity itself - its lack of prescription - can be disarming, and new practitioners often find themselves reverting to old project management habits and tools and yielding lesser results.

During this presentation, I will highlight:

The challenges we were facing with waterfall project management.
A (very) brief overview of key concepts of agile and scrum.
Why we chose agile and scrum to replace waterfall.
How we introduced agile to our teams and what training looked like.
Some of the immediate benefits we realized.
The challenges we face (and continue to face) in our transformation.
Our next steps and how we are continually improving our approach each week.

By the end of this presentation, I hope to provide a compelling reason why agile is an appropriate project management framework within the Drupal industry. And how it can be used to effectively deliver projects on time and on budget.
Description
Fatima Khalid

In this session, we will embark on a Pokemon adventure to learn Object Oriented Programming. Each OOP concept will be explained with a Pokemon scenario, modeled into data, bridged to an OOP concept, and then shown in code.

By exploring these concepts with stories, attendees are slowly guided into the abstraction. This allows them to make a mental memory of what the concept does versus what the theoretical definition is. The goal is to help attendees feel more comfortable working with these concepts in Drupal 8 :)

We will cover the following topics in OOP:

What is OOP
Classes
Inheritance
Interfaces
Traits



Beginners are welcome! At the end of each concept, we will look at a coding example (implementing OOP with the Pokemon scenario in code). This session can also act a refresher for intermediate developers.
Description
Suzanne Dergacheva

We all know the importance of designing websites for mobile. But what about designing content for mobile? Typically, we think of adapting the style of websites on small devices, but we don't think about how our content strategy needs to work for different devices. In this session, we'll look at creating a mobile content strategy, and how this effects our approach to Drupal site building.

Topics will include:

Doing a mobile content strategy assessment
Content formatting strategies
Considerations for media
Content previewing challenges
Navigation issues
Landing pages and long-format content
Description
Omar Bickell

Your Drupal site really loves to be updated! Be it core, contributed modules, base themes, distributions, or libraries there is a LOT of code that you need to update for every site. However, even with tools like Drush, updating your site is hard work. You need to apply updates, test updates, and deploy updates. And do it for every single site for which you are responsible every single time an update comes out.

Enter "Automatic Drupal Updates" and making the robots do your updates. This session will talk about how to use a Continous Integration and Visual Regression solution to do the following magic:

Setup Continous Integration to check every hour to see if there are new updates for your Drupal site
If there are updates available...
Create a new git branch & development environment with your current code, database, and files.
Apply the new updates to the new git branch. Clear all caches.
Do Visual Regression Testing to see if the update created a visual difference on the site. Most security and bug fix updates should not change the visual look & feel of your site.
If there are no visual changes, commit the new updates to Git and deploy the updates automagically to your production environment.
Send you a Slack notification of the results of the testing & what updates were applied
Wait an hour to do this all AGAIN.
Description
Ryan Weal

This talk will introduce you to “full-stack” performance tuning: from the front-end content rendered by Drupal to the network that your sites are running on. We will show examples of performance gains by making simple adjustments to DNS, network location, Drupal configuration, reverse proxies and caching strategies. If you have ever wondered how the big Drupal hosting companies achieve performance gains when compared to most self-hosting configurations this talk will answer those questions and give you the tools to do it yourself.
Description
Jen Lampton and Nate Haug

Backdrop CMS is the Drupal fork. It is a faster and less-complex version of Drupal 7, with a handful of additional features, and a commitment to improving the user experience.

Backdrop has been out for more than 2 years, and has seen 8 on-time releases that have added more new core features - including a few you won't find in Drupal 8 (yet). Backdrop core includes built-in automatic URLs, page redirects, and a project browser for adding new contrib modules directly from your existing site. Backdrop also includes an updated administrative theme, a new front-end theme, and improved APIs for developers. Plus, Backdrop has a dragon!

Backdrop is an affordable alternative for upgrading existing Drupal sites. Backdrop will always provide a built-in upgrade path, and maintains 80% code compatibility between major versions. Decreasing theount of time spent on development, maintenance, and upgrades, will help keep costs down.

Backdrop CMS is committed to making sure the small to medium sized businesses and non-profits have a full-featured and powerful CMS, too.

Come and see if Backdrop CMS is a match for your next project!
Description
Alex Urevick-Ackelsberg

Drupal & Open Source is rooted in collaboration, but as we’ve grown larger as a community, and as Drupal has been adopted and adapted for more complex use cases and organizations, collaboration has seemed to become harder. As a result, much of the feeling of enablement and empowerment has been removed from software projects. The desire to collaborate better within our teams, with the broader OSS community, and with our clients and partners, led Zivtech to adopt a Continuous Delivery model. But after finding that we still had too many barriers to collaborating we built Probo.ci, and used it along with Git, Jira, and some other tools to achieve “Continuous Collaboration”

This session will look at:



A brief history of collaboration & Drupal, from my eyes.
Bush : Music forerica/CivicSpace : Drupal : early Drupal companies & Acquia : Zivtech & other newer Drupal cos
The extreme challenges to collaboration that have arisen as Drupal has matured and been adopted by large organizations
Attempts to collaborate better CVS/SVN/Git, Devops,, CI/CD & Git, Jenkins, and the Drupal 7 Features and Strongarm modules and Drupal 8 Configuration Management.
Testing and code quality tools, such as Behat, Shoov/Backtrac/Wraith, & PHP CodeSniffer
The challenges we faced with CI/CD
Automation & testing help a lot, but not enough
Deployment is a bottleneck
Using Probo.ci alongside Slack, Zendesk, Github/Bitbucket, Jira, and more to achieve “Continuous Collaboration (CC)”
Questions answered by CI/CD & CC processes
The types of work and working relationships that open up when you break down barriers
Remaining challenges & barriers to collaboration
In Drupal
In development projects in general
Description
Suzanne Dergacheva

Some content editors find Drupal easy-to-use and some find it a daunting maze of forms full of confusing terminology. Often, it just depends on how the admin UI has been configured.

In this presentation, I'll walk through some examples of user interfaces that work for different types of content editors and provide techniques on the following topics:

Text formats and WYSIWYG editors
Field and content type configuration
User interfaces for media management
Contributed modules to improve the admin UI
Creating dashboards and customized Views
Creating a 1-click edit landing page
Testing the admin UI for content editors
Description
Dustin Younse

Trying to tame a modern, fully-featured web application like Drupal can be an exercise in frustration.

Why are you printing that piece of content there?
Why I seeing a negative integer instead of a string from this function?
What could that PDOException in my Watchdog log possibly mean?



In this session we will be going over useful debugging tools and techniques that can help you start to see into the inner workings of all versions of Drupal. You will be better prepared to start building truly custom features into your projects and you'll be able to remain calm when you get the ineveitable email that your site is showing the dreaded White Screen Of Death at 4:45pm on a Friday afternoon.
Description
Preston So

Is the CMS as we know it dead? As our industry grapples every day with ever more channels for content, the traditional web-based CMS is at a critical crossroads. Nowadays, digital experiences can be as narrow as a conversational interface and as broad as AR/VR-driven content — and as small as an Apple Watch or as large as a digital billboard on Times Square.

But the central personas involved remain identical: the end user, the developer, and most importantly, the marketer.

Drupal has long prided itself on its place at the fulcrum of these three personas by providing in-context administration tools and developer experiences that, together, grant immense flexibility. But sooner rather than later, we must contend with both a widening wilderness of untapped digital experiences and innovative CMSes that don't even exist yet.

Can we shift our thinking toward universal editing? Can we edit and administer everything, not just web experiences, totally in context? How can we think about content editing agnostically and contextually to encompass not just the present but also the unforeseen future of content experiences? Together, let's divine and dissect the forward-looking outlook that is the CMS of the future — and how Drupal can get there first.
Description
Albert Albala

Whether you're maintaining Drupal 7 or Drupal 8 sites, or indeed any PHP project, including unit tests is now easier than ever. This talk is aimed at novice to intermediate developers, and requires some experience with PHP.

Unit tests are tests on your code's logic, not the GUI. They are fast, reliable, and promote good coding practices. In this talk we'll look at:

The test pyramid: why unit tests are cheaper to write and provide more value than integration or functional tests such as Behat
The basics of PHPUnit: mock objects, testing exceptions, expectations, test providers
Why it's important to write small functions that do one thing well
How you can move legacy procedural code into objects to make it testable
How to leverage Docker to run your tests locally and on a continuous integration server
Using GitHub and Circle CI as a continuous integration setup



To get the most of this talk, come prepared by:

Having a PHP project on GitHub
Opening a Circle CI account
Having Docker installed on your machine (requires Linux or post-2010 Macs)
Description
Adrian Cid Almaguer

Quand nous commençons un projet dans Drupal 8 il y a des fois que nous constatons qu'il n'existent pas encore tous les modules que nous avions dans Drupal 7. Alors il ne nous reste que faire la migration! On va montre notre parcours dans la migration du module Node Revision Delete.
Description
Tolu laleye

Drupal-backed javaScript applications have been growing in popularity, and with the recent turn towards API-first approaches in Drupal, I believe using Drupal as a central data service is the future of the application ecosystem.

In this session Tolu Laleye, Software Engineer & Drupal 8 Front-end specialist at OPIN Software will discuss:

Angular application structure
Workflow tools
Front-end performance tips
Basic Authentication
Service based architecture
Configuration management across applications
Staying organized
Potential WTFs



This session is for you if you are an intermediate to advanced level front-end or back-end developer.
Description
Mathieu Hélie

Learning the Drupal 8 APIs can be daunting for longtime Drupal and PHP developers, but a great course exists to guide you through the process: d8cards.com

The Appnovation Montreal D8 team, Nazli, Kirk, Vijay and Mathieu, will present their experience using the exercises to learn how to work with Drupal 8.

Familiarity with Drupal development is recommended.
Description
Renaud Joubert

If I say e-Commerce what's the first thing you're thinking of ? Probably a website where you can buy products of some sort. Websites where you can rent, say, a tool, a car or a room are special use cases that account for a small percentage of the e-commerce landscape. If you think about it for a minute, you'll also realize that the worflow is very different. Generally speaking, when one buys something it's for ever (one lane, one way). But when one rents it's for a limited time and when this time expires, the object needs to be returned; and until it is returned it cannot be rented out to someone else (multi-lane, two ways). Building a standard end-to-end e-commerce website is hard. As you can probably imagine, building an end-to-end rental store is beyond challenging. In this session, we'll look at those challenges in more details and see what's possible with Drupal contrib modules.
Description
Dustin Younse

The Onion Router (Tor) is a creation of the US Naval Research Lab, designed to anonymously route web traffic. Originally intended for secure communication between intelligence agents, Tor has become infamous for its role in the less savory parts of the internet. In a post-Arab Spring world, Tor has come full circle with big names like ProPublica and Facebook using the service to provide their users with secure side entrances to their websites. Inspired by their example, I’d like to show you how to provide Tor anonymity and privacy to your website users, without modifying a single bit on your production server! This session will provide a background on Tor, demonstrate a production ready setup for secure access to an existing site, and explore some of the newest Tor project developments that will soon make all of this even better!
Description
Blanca Esqueda

One of the key features of Drupal 8 is its flexibility to manage configuration through code. This opens the door for many options when it comes down to configuration management. But before everyone just jumps in making changes, it is good to think about different scenarios, in particular with multiple collaborators in the same project. In this talk I will present a workflow that leverages version control (git) to support code based configuration managementong multiple developers and environments, while keeping changes clean and things working in order. I make a comparison of Features and Configuration approaches giving useful tips and troubleshooting advice.

Agenda:

Features vs Configuration -- Advantages and when to use each one correctly.
D8 Configuration setup/settings -- Overview, considerations, and troubleshooting Advice.
D8 Configuration and Version Controller -- How to work in a distributed team with no risks of overlapping during development, and keep track of changes.
D8 Configuration Terminal vs UI -- Import/Export Differences.

Prerequisites: Familiarity with Git and Drush.
Description
Ash Zade

This session will provide an overview of the Product Owner role within an Agile framework, including the value it brings clients and project teams. Then, we will define discovery within the Agile framework and the Product Owners responsibilities. The session will include sample outcomes from a recent discovery session to illustrate the flow from the macro goals to the micro outcomes.
Description
Alex Dergachev

Is your site too slow? The first step to a diagnosis is to analyze front-end performance, which usually reveals under-optimized images, excessive ads, or ineffcient javascript scripts as the main culprits. But often you also will find that the page generation time is over a second, and will wonder where to go from there.

Core Drupal developers already use performance analysis tools like XHProf and Blackfire.io to keep the code efficient, but generally a combination of too many contrib modules, inefficient database queries, or poorly written custom code can easily bloat the page's loading time by a factor of 3 or more. This session will provide you the understanding you need to use these tools, and provide a number of real-world case studies in how to use them to identify common performance bottlenecks, and potential remedies.

We will also discuss ongoing performance monitoring with tools like Blackfire and New Relic.

The examples will be presented from Drupal sites, but the tools are PHP specific, while the lessons apply to most web application programmers. The target audience is PHP developers with experience writing and debugging custom code.
Description
Brad Muncs

You've invested in Drupal as the technology for your web platform. You're ready for the next phase in its evolution (like adding new features).

But you're wondering what's the best option between upgrading your current Drupal 7 installation or migrating to Drupal 8, and are not sure how to make that decision.

This session will compare the pros and cons of each path so that you can make a clear decision for your organization.
Description
Anna Mykhailova

Nowadays Drupal is not simply a CMS, it's a big and complicated framework that stands behind large enterprise level websites.

Drupal is used successfully for government, high education and healthcare websites that store large volumes of data. Often enough these organizations need their data to be updated over night, monthly or annually. It can be as simple as stock information updates performed once an hour and as big as update of all programs and courses offered by the college and university including all of the program details and costs.

Large scale complicated imports bring their challenges: time and hosting resources, parsing algorithms, different sources: XML, JSON, CSV. In my talk I'll cover some problems that a developer may face while building imports of data from various external sources into Drupal. I'll cover different formats such as XML, CSV and JSON, as well as approaches that can be used to make the task easier.

The audience will learn how to build imports with solid architecture so they would have less problems with performance as well as won't be limited by cron job time. I will also cover Batch and Queue APIs in Drupal 8 as well as touch base on continuous integration tool such as Jenkins.

The talk is for intermediate to advanced level back-end developers.
Description
Benjamin Melançon

Drupal is—as always—better and more successful than ever, but Drupal is threatened from two sides. On the one, we risk discouraging new users and contributors, who face too much of Drupal's complexity early on. On the other, proprietary platforms increasingly squeeze out custom web development through sheer economies of scale. Retreating into Drupal's new fortress, the enterprise, aside from leaving many of us behind, doesn't change these dynamics, which will continue until there's nowhere left to hide.

Adding a new economic model, that of software as a service, can make Drupal the best choice for small organizations that can drive innovation and contributions. Instead of waiting for proprietary SaaS companies to slowly add features and come eat our lunch, we can swoop in and eat theirs. At the same time, a well-designed Drupal SaaS provides many more people with the traditional entryway to web development and Drupal: hacking around with HTML and clicking together functionality. So long as we continue to adhere to the principles of Free Software, it's only going to make the Drupal software and community better. And if we organize SaaS-providing businesses as platform cooperatives, we'll be putting the people of the world in control of the software that controls our lives, which, in an age of flying killer robots, may be almost as important as the health and happiness of the Drupal community.

Come hear and talk about how Drupal LibreSaaS, like Open Social and the coming Drutopia, can save us all!
Description
Jorge Diaz

Drupal 8 has a new powerful theming engine: TWIG. Twig is a powerful template engine that comes from the Symfony framework and isazing for theming. Either if you come from tpl.php files or are new to Drupal 8, there are some things you need to be aware of.

Theming in Drupal 8 is way more than creating a template file and start building layouts. While Twig shows up as a solid foundation to build your themes on top of, there are many Drupal-specific features that are part of the actual "Drupal theming process" and it is not directly related to the template files. On this session I will talk about:

Advantages and disadvantages of TWIG in Drupal
Using Twig in Views
Views Based Layouts
Display Suite & Layout Plugin
Theme maintainability
Configuration Management for themers
Drush for themers
Overall Theming Process
Description
Christopher Smith

The objective of this presentation is to provide the audience with an understanding of what it means to have a "culture of learning" within your company and the advantages it creates. I will provide my special recipe to fostering a culture of learning within your organization. Finally, I will talk about how to extend this culture to our clients, and the benefits it can bring.

1. In this talk, I will provide the audience with:

What is a culture of learning
What advantages does creating a culture of learning bring
My secret recipe for creating a culture of learning.



2. We will explore topics such as:

Vision
Setting a corporate vision
Setting Goals
Learning Plan, Certification
Resource Allocation
Budgets, Time, Classroom / Boardroom
Guidance
Mentorship
Experience
Community Contribution, Client Projects
Positive Reinforcement
Compensation, Access to company resources, Promotion, Feedback



3. Finally, we will discuss extending the culture of learning to our clients, including topics such as:

We are a team and we all need to learn and adapt: the success of the project is a shared responsibility
Knowledge transfer so they can support and scale their own system
Not creating dependencies, they get more value out of custom dev than content maintenance)
Teach a man to fish: applying the principles of open source to our client relationship
Description
Jigar Mehta

As Drupal 8 hits mainstream, migrations from existing Drupal 7 sites are becoming more important. Not surprisingly, creating i18n migrations is trickier than handling vanilla Drupal 7 content, but this session will bring you up to speed. We will cover:

General approach to migrating translatable entities.
Migrating content translations from Drupal 7, including changes introduced with Drupal 8.3.
Migrating entity_translation nodes from Drupal 7.
Migrating taxonomy terms and other translatable entities.
Description
Matt Corks

Agile software development is a popular method used to enable adaptive planning and continuous improvement via flexible response to change. Typically, a product owner will describe a set of clearly defined user stories ("as a site visitor, I want to log in via Facebook so that I can comment on an article") and list them in order of priority. A scrum master will work with a team of developers to deliver these features during short 2-3 week sprints which are followed by a demonstration and review, after which the product owner will either declare the user story complete or ask for corrections. New user stories will be added, the backlog of pending user stories will be re-prioritized, the scrum master will choose a set of tickets which can be completed in the upcoming sprint, and the developers will start to work on the next round of improvements.

To make this work, it's best to use an issue tracker with a ticket for each user story, and to make all changes to your site on a separate git branch labelled with that ticket number. The changesets should be self-contained, and perform all necessary database changes in code via update hooks, features (Drupal 7), or the configuration management system (Drupal 8). Any further steps necessary to test or deploy the new version should be clearly described in the ticket description.

Once all your updates are in code, you're ready to use git to prepare for and manage your testing and deployment process. You'll need to adopt specific git practices to make this work smoothly.
Description
Novella Chiechi

In this discussion-style session, we will explore the challenges, resources, and advantages/disadvantages to taking up software as a second career.

Have you gone into software as a second career? Are you thinking about it? Do you want to support a friend, an employee, or a colleague? If yes, then this session is for you. After this session you will have a better understanding of others’ experiences, as well as a better idea of how to support yourself and others in the quest.

We will ask three main questions:

What challenges will we face?
What advantages do we have?
What resources are available?

This session will be appropriate for those at any technical or business level. We won’t do any coding, though we will discuss different technologies in a general sense. Instead we will share our past experiences (good and bad), discuss possible challenges we may face, highlight the advantages we may have, and arm ourselves with resources to get to work (and enjoy it!).