Version control systems manage change in your application's code base, but what about changes to the database? Managing changes to the database between environments is challenging. Luckily for us, Drupal 8 has introduced the Configuration Management System, which aims to solve this problem for site admins and developers alike.
In this session we will start from the beginning by exploring what it means to manage configuration and why you would want to do so. Then we'll take a deep dive into the different components of the configuration management system in Drupal 8 and how these differ from what we had in Drupal 7. Finally we'll wrap up with some actionable tips on how to get the most out of the configuration management system on your next project, as well as an overview of the contributed module space around configuration management.
No prior knowledge is necessary to attend this session, we'll start with the basics and move up from there. By the time you leave you will have a solid foundation for understanding and fully leveraging the configuration management system on your next Drupal 8 project.
What is configuration management and why is it important
Configuration management changes between D7 and D8
How does the configuration management system work in Drupal 8
Practical tips and tricks for managing configuration on a real project
Overview of the contributed module space around configuration management
The Migrate API in Drupal 8 is a powerful framework for getting data into Drupal. But how does it really work? What is its architecture? And most importantly, how can I use it?
If you've been asking yourself those questions, let's get you some answers. This session will be a introduction into the architecture of Migrate, a dip into the code a little bit, and an explanation of how you can start to migrate objects from wherever (previous Drupal sites, raw SQL databases, CSV files) into Drupal entities.
The full slides are available on a GitHub repo chrisfromredfin/drupal-8-migrate, or online thanks to GitHub Pages by going to: https://chrisfromredfin.github.io/drupal-8-migrate
The success of a project is not just the result of the framework that is chosen or the lines of code that are written. Success is also determined by the team of people that work on a project and how they operate as a cohesive unit. To execute with repeated project successes, it’s imperative to first build successful and productive teams.
How does one create an environment of productivity and success in their respective teams? The answer lies in fostering the growth of four key attributes;
This session will explore aforementioned attributes and outline why they are essential to continued team success. Explaining why each attribute matters and how it builds trust and excellence within a team. Attendees of this session will leave with the knowledge of how to foster these qualities within their own team.
Knowing whether or not your site will meet accessibility standards is pretty easy to figure out, but knowing how to fix your code is less straightforward. During this presentation we will be reviewing code samples that fail accessibility testing, discuss why they failed, and identify how to remediate the code to comply with WCAG 2.0 standards. We will also cover common tools and resources that will help while you audit, remediate, and test your websites.
Every newbie dreams of being a contributor to the Drupal project. But where do you begin? And more importantly, what are some of the tools to help navigate the adventure successfully?
In this session, we will go over a couple of the gadgets necessary for working in the Drupal issue queue when being a novice.
We will also have a lightning round demonstrating the process of creating an issue, writing a patch, uploading the fix to Drupal.org, and then reviewing the patch for RTBC.
Tools of the trade:
What is Simplytest.me? And how does it make life easy?
Evaluating a module and its dependencies
Applying a patch
Uploading new modules to current test site
Git Client -
Why use a Git client versus only using Command line
How to create a branch and properly name it for the issue
Committing changes to the repository
Creating a patch
What is Dreditor?
Installing Dreditor and a quick demo of functionality
How does it help in the issue queue?
When "you never get a second chance to make a first impression," how do you design iteratively and "fail fast"?
Designers instinctively understand the importance of the initial encounter, uniquely rife with potential, between their work and the affected viewer.
Given this, one can understand the desire to work a design to perfection for the sake of a maximally effective experience event.
This can conflict with iterative “fail fast” agile concepts, resulting in Minimum Viable Products shipping with designs, wrangled away from designers, in a “less than” state.
How can we reconcile this for iterative, maximally effective, experience events?
Using mini case study examples, this talk further discusses substantial design projects which were built using agile methodologies and how the design team fit into the process.
Kelly Albrecht is a Certified ScrumMaster, Product Owner, Agile Coach, and Senior Digital Producer at Last Call Media
We've all been there. We've heard it all before. Git will save you time, money, and effort. It'll preserve your history, save your bacon and fry it up in a pan. Git won't leave without saying thank you. Git won't talk about you behind your back. You would bring Git home to meet your parents.
Drupal.org switched over to git, that's old news. Now it looks like we might even move to GitHub. You've learned the four commands that you use over and over to be able to craft a commit and push to origin. You are _pretty sure_ you understand branching. People ask if you "rebase" or "merge" in the same way they asked if you were for or against the death penalty.
But… what does all of this git stuff do? The mysterious vocabulary of "rebase", "revert", "reset" are terms that we Google and sometimes use when we're deep in trouble and need to find away out of that merge conflict. But we don't know _why_ we use them or really what they're doing. We're just looking for that enigmatic message "nothing to commit, working tree clean".
This session will pull back the covers a bit. We'll take a quick look at the plumbing behind the porcelain and talk about a few of the things that make git tick. Commits, blobs, and trees are actually easy to understand once we look behind some of the drywall. Hopefully after this session, you won't know the exact hashing algorithms, but you'll be comfortable knowing what a fast-forward merge actually accomplished and why it looks so nice.
This session is for people who've set up git, used git in normal workflows, but just have that nagging feeling that if they just understood a little bit more.
Hello! Ciao! Hola! Salom! Hai! Elo!
We live in a global, interconnected world, and building websites that support multiple languages and countries is good for marketing, conversions, and creating happy users. It does not, however, also mean you will have happy developers.
Drupal 7 is notoriously hard for creating multilingual websites. Language support in D7 was bolted-on and adhoc and tends to require 20 to 30 extra modules and often a number of patches and custom workarounds as well. Drupal 7 multilingual configuration is ugly. And that's being kind.
But, Drupal has had a complete multilingual makeover! Enter Drupal 8. You might think we are talking about slapping on some makeup here, but we aren't.
Definition: A makeover is "a complete reconstruction and renovation of something"
The Drupal 8 Multilingual Initiative had quite a mess to untangle. The goal was to rebuild language support in Drupal from the ground up so that everything in Drupal understood language from the start. And, any custom or contributed modules or themes for Drupal 8 would reap the benefit of not really having to understand language support because it would just "be there". The results are amazing.
This session is a side-by-side comparison of ugly Drupal 7 configuration and beautiful Drupal 8 configuration. What took 20+ modules in Drupal 7, takes 4 in Drupal 8, with no workarounds, patches, or hacks.
We'll compare Drupal 7 and Drupal 8 configuration for:
User interface translation
Anyone building or managing multilingual sites would benefit from this session. You will walk away with knowledge of the how Drupal 7 and Drupal 8 multilingual configuration differs so you can prepare yourself for site building in either version.
This session is suitable for beginners or intermediates. If you are beginner, it is best if you understand Drupal basics such as content types, blocks, menus, and views. If you are an expert, don't forget to send your favorite multilingual module, tip, or horror story to @hook42inc on Twitter.
Drupal empowers users to build complex site structures and relationships directly in the administrative user interface. In Drupal 7, the Features module was repurposed to manage site configuration deployments across environments. This developer-oriented workflow is now built into Drupal 8 core. But for small to medium-scale projects, strict configuration-based deployment workflows can be cumbersome and require substantial development expertise. How do we ensure the benefits of versioned config management after the original developers have moved on to greener pastures?
Fortunately, the configuration system is flexible and supports a wide range of workflows. A database UI-driven workflow is well-suited to rapid site prototyping and content modeling. A config-git-driven workflow pays dividends when scaling up the development team and performing automated tests. A live production site has a wide range of options for balancing rapid delivery with version control. Identifying and communicating the phase of work in a project’s lifecycle and shifting workflows accordingly will improve development productivity and increase the diversity of contributors on a project.
Since the release of Drupal 8, great strides have been made to develop a component based theming workflow that takes advantage of the best that Twig has to offer and also plays nice with living style guides and pattern libraries. Gone are the days of redundant styles and markup, making way for the efficiencies found when Drupal and tools like Pattern Lab and KSS can share the exact same code. That said, handling the mapping of data between Drupal and your component library can still be quite complicated and difficult to coordinate on larger cross-functional teams.
The UI Patterns Module offers a number of powerful ways to make Drupal more aware of the components in your pattern library. By exposing these patterns as Drupal plugins, UI Patterns Module makes it possible to manage this data mapping process within the Drupal Admin UI and also easily use these patterns with component friendly modules like Paragraphs, Panels and Field Layout.
This session will cover:
Basic setup and use of the UI Patterns Module.
Integrating UI Patterns into a typical workflow and theme structure using Drupal and Pattern Lab.
Using UI Patterns functionality to manage complicated mappings between Drupal and your component library.
Overcoming challenges with onboarding new developers who may not be familiar with this approach to theming.
Creating a component-friendly content editing experience.
This session is for front-end developers who have experimented with a component based theming in Drupal 8 and have been looking to streamline the process. It is also for front-end developers who haven’t yet adopted this emerging component based theming approach and have wondered how it might impact their workflow. And for those who are involved with Drupal 8 projects but are not front-end developers, this session should help you become aware of some of the potential challenges, as well as the advantages to this component based theming approach as it relates to your work.
We have all been there: a project gets defined and scope set when suddenly a new requirement becomes a 'must have' from a key stakeholder. Surely this one off addition can't hurt. But soon comes another one. And another. Until finally our original design has become 'design by committee' and no one is happy.
Understanding how to ask the right questions up front can mean the difference between happy clients who are eager to give you more business and nightmare clients who can never be satisfied.
This session will focus on delivering a better discovery process with all team members that not only uncover their individual goals, but uncover the big picture. We will discuss how to ask the right kind of questions. The ones that give you all the backup you need later to stand firm and calm the stakeholder down when the 'one off' requests come in.
Drupal has an entire ecosystem of command-line tools that can make your life easier as a developer. In this session we'll take a look at a few of these and demonstrate how you can bring them together to create an efficient development workflow. At the very least these tools can be used to augment your current process, but if you're eager to simplify your application stack these tools can be used to replace MySQL clients (MySQL Workbench, Sequel Pro), Git clients (Tower, Source Tree), FTP clients (Transmit, FileZilla), Editors / IDEs (SublimeText, PHP Storm), and Local LAMP servers (MAMP, Dev Desktop).
It will help if you have some basic command-line / terminal familiarity for this session.
Topics we'll cover:
Vim, XDebug, CTags
Git, Tig, Fugitive
Drush, Drupal Console, Composer
Rsync, MySQL w/ less, Grep
There's a lot to cover, so we're only going to touch on each topic very briefly. This session is intended to give you a good sense of what is out there at your disposal, rather than a comprehensive look at any one tool.
As Drupal 8 has multilingual capabilities in Core, it has become easier and more accessible to deliver a multilingual website. During NEDCamp 2017 we will have some sessions that focus on WHY and HOW to build multilingual websites. If multilingual is your thing, you can submit a session here.
If you talk to a man in a language he understands, that goes to his head. If you talk to him in his language, that goes to his heart.
- Nelson Mandela
More about Aimee
For over 20 years, Aimee has been leading large enterprise content management projects as a Technical Architect, Project manager, and Program manager. She has lead successful teams within many verticals, including healthcare, the entertainment industry, and the public sector. Aimee caters technology and processes to fit each client’s business culture and each project’s needs.
She started working with Drupal in 2008 and in 2012, she co-founded Hook 42, a web design and development team specializing in Enterprise Content Management software, with a primary focus on the Drupal technology. She is currently writing the “Drupal 8 Multilingual Sites” book and was an active member of the Drupal 8 Multilingual Initiative.
She has presented at multiple DrupalCons and regional camps (BAD Camps, Stanford, SAND Camp), and user group meetings. Check out Aimee's drupal.org page and her Hook 42 team page for more info.
Drupal 8 supports multiple ways to test your code, which gives developers the confidence to change functionality and ensure that regressions are caught early.
This session will introduce attendees to the following methods in Drupal 8 for providing test coverage:
We will discuss when to use each kind of test, and how to handle potentially frustrating situations.
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 am I seeing a negative integer instead of a string from this function?
What could a 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.
When you think of waterfall you might think of extensive requirements documentation, a lot of up-front planning and rigid processes. Whereas the Agile Manifesto values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Just because you are Agile doesn't mean you don't follow a process, you just have more efficient processes. You don't skip documentation, you ensure you have the "right" documentation. Agile can be very powerful, if done correctly.
This presentation is hosted by Brooke Savona, a Project Manager with the Acquia Professional Services division with 9 years experience in managing web development and infrastructure projects. The goal of this session is to give you a roamap to success and guidance on how to avoid common pitfalls.
For a simple blog, the distinction between content and taxonomy is clear: blog posts are content, and taxonomy terms are what we use to group similar posts. An active blog might split the taxonomy into a few different vocabularies, each with its own list of terms.
Suppose the blog becomes popular. Maybe it gets enough traffic to generate some income. Then we devote some attention to the theme, maybe hire an intern to help maintain it, and we want to dress up the term pages, which list all the blog posts tagged with a particular term.
We can add a few paragraphs of description to each term. It is nice to attach a little icon to each term, so that the icon is displayed on blog posts tagged with the corresponding term, instead of just the term itself.
Maybe one of our vocabularies is geographic: the blog might be about travel or cooking or breeds of cats, for example. Then we might want to add a field to the location vocabulary with a link to more information about the place. Or maybe some other vocabulary needs links to our favorite related books, so that we can make some money from Amazon without adding any ads to the blog.
The point is that as the blog site gets more complex, the vocabularies (or taxonomy types) start to look more like content types (or node types).
When designing a complex site, it is not always obvious when to use a content type and when to use a vocabulary. This talk will show you some of the questions you should be asking to decide which to use. Depending on whether you use a content type or a vocabulary, ...
... what do you gain or lose for good?
... what does Drupal give you for free?
... how does it affect the admin experience?
... how does it affect what is stored in the database?
Docker is a great way to create portable development environments that are fast, reliable and reproducible.
Docker and docker-compose are complex tools, let me simplify them for you.
When done with this session you will be able to easily set up multiple environments with different databases, php versions and any other infrastructure you need in order to test and develop your sites.
Anyone that has been to a conference knows that Live Demo’s are the double edged sword of any speaker. If the Live Demo goes off without a hitch, the speaker is a rockstar and the audience will sing his praises. If the Demo crashes and burns in a heap at the podium, the speaker will be drawn and quartered by the audience. So, live demos can be challenging and if your going to take the risk of doing a live demo why not amp up the difficultly level by adding a topic like Translation.
This live demo will be something of a working session where we will use a local Drupal environment to show the following three things:
How to get Drupal Multilingual setup from a basic Drupal 8 Install
How to translate Items using Drupal’s built-in Translation System.
How to integrate with a translation service like Lingotek to do easy machine translation
To participate with this talk you should have the following:
Whatever local environment you want (MAMP, Vagrant, etc)
A base Drupal install built with Drupal Composer
If you're more comfortable using Drush feel free!
A basic knowledge of Drupal 8 and how to install modules via Composer
The above are not needed if you just want to come, watch and ask questions. However, if you would like to leave with a fully working (hopefully) translation demo you can show your friends, come prepared!
The majority of content on the web is words—and more than half of web browsing happens on mobile screens. It follows then that the way we set our words has a bigger impact than ever on design, usability, and brand differentiation. But while typography is clearly the most important aspect of great design and user experience, it can’t come at the expense of performance or we risk our great designs never being seen. Variable fonts are here, and will change everything: with a single font file that can scale in size, width, weight and even x-height—exactly as the type designer envisioned. Everything from super-fine-line delicacy to the chunkiest slab headlines; wide widths in banners and slightly narrower body copy for better line lengths on mobile devices. All controllable with CSS.
If type is the voice of our words, that voice just became a chorus. Jason will look at the technology behind variable fonts, how to use them on the web, their timeline for release, and most importantly: their impact on the dynamic range of our designs. He’ll also look at how this could impact how you design—with design tools built into the content management system itself. This could enable a whole new layer of design that is specific to the content rather than generalized for anything, without requiring custom code every time. (This is an evolution of my talk at DrupalCon Baltimore earlier this year, with lots of new content)
Building multilingual websites in Drupal is possible, you may even consider it 'easy' in Drupal 8. Okay, 'easier' in Drupal 8. Just because you can, should you? Organizations that need a multilingual website know it. Many other organizations can benefit from a multilingual website, and they are not even considering it.
"A Case for Multilingual' explores the benefits and strategies to implement a multilingual website for the non-Multinational Corporation.
In this session you will learn:
The benefits of implementing multilingual website
Short and long term implementation strategies
How to approach this from a cost to benefits perspective
Techniques for sharing these benefits with you colleagues and customers