9:00am to 9:15am
9:30am to 10:15am
Debugging, Profiling, & Rocking Out with Browser-Based Developer Tools!
Room 172 9:30am to 10:15am Advanced mherchelBrowser based developer tools have become an indispensable tool for modern front-end web development. New features and changes are being added at a rapid pace!
In this presentation, I’ll walk the attendees through the tricks of the trade of Chrome developer tools, in addition to Firefox and Safari’s developer tools. I’ll walk through common problems and how to solve them including
- Integrating DevTools into your modern front-end workflow
- Modern front-end debugging techniques using browser-based developer tools
- Identifying front-end performance problems (and fixing them!)
- Profiling browser rendering issues
- Making sure your CSS is resilient to content-based changes
- Common add-ins
- How this all relates to Drupal
- Using browser based developer tools to remotely debug your smartphone - both Android and iOS (but not Blackberrry - Sorry!)
- Various tips and tricks that will save you hours in your next project
And best of all, this will all be covered through the use of real-world examples.
https://www.youtube.com/watch?v=RQRpwiBTgcI
Entities All Up in Your Business (Logic): The Entity Validation API in Drupal 8
Room 173 9:30am to 10:15am Advanced dhansenThis session is sponsored by Sevaa - thank you!
Before Drupal 8 the best (and sometimes the only) way ensure that the data in nodes was correct was to lean on the form API's validation. This meant a validation function that would only run when trying to save the form. It's a nightmare for anyone building an application with lots of moving pieces because at no time could you guarantee that the data was valid without writing additional processing.
Drupal 8 has introduced the new Entity Validation API to help solve this problem. Validation on an entity is now write once, use everywhere. This means your project or application can have enforceable business logic built right into the entities it uses.
In this session we will:
- Discuss and review existing uses of the API in Drupal 8 core
- Learn how to check the validity of entities
- Demonstrate adding constraints to custom and existing entity types
- Understand the writing of custom constraints
The session is targeted at users with some understanding/experience in writing Drupal 8 modules, but anyone with some knowledge of PHP should be able to follow along.
https://www.youtube.com/watch?v=2iGllA6oNKYDevelopers Can Be User Advocates Too!
Room 175 9:30am to 10:15am Intermediate bendygirl@gmail.comRecently I joined a team on their first day of discussing building a website. The kind of discussion that talks about what you want to be when you grow up—or in this case, once deployed. As I listened, it dawned on me—I don't do this—I build. It's unusual for me to be involved in the design phase, the phase where you take random thoughts, concepts and wants and make them a cohesive concept that are then mapped out into a design or wireframe or user journey. You see, I'm a developer and I don't take ideas from concept to product. I build based off specs/requirements.
So what's a developer to do?
Enter Karl Kaufmann.
Karl and I will help developers understand how to be User Advocates. We will take you through design thinking and get to focus on your users in ways you never thought you even needed.
Attendees will learn:
- About the Design Thinking process to help guide from concept to MVP
- How to advocate for accessible web experiences for users with sight, hearing or cognitive impairments
- About real world examples where websites succeed and fail to provide best-in-class user experiences
- How we as developers can get out of our own way and embrace User Advocacy.
This session is geared toward current site builders and developers from beginner to intermediate levels who are building websites but who probably haven't tried to really understand their full compliment of end users.
This session is not specific to a version of Drupal.
The Drupaler's guide to Behavior Driven Development (BDD)
Room 177 9:30am to 10:15am Beginner aczietlowAs engineers and developers, we tend to be passionate about building something great, which Drupal 8 is perfect for doing. Drupal 8 gave us more viable options for testing with tools like phpunit, Behat, and phpspec to name a few. These have opened the doors to more easily achieve a Behavior Driven Development (BDD) work flow.
But what really is BDD and should you even bother? Yes! Just adding Behat tests to a project does not achieve BDD, or in some cases come even close. There's a vast difference in using BDD, and using Behat for test automation. BDD provides many amazing benefits that can drastically transform the quality of products your team is able to deliver. We'll dive into the core of BDD, its main tenets, and how to implement it in practice.
With a deeper understanding of BDD principles you'll be better equipped to reap the full rewards it offers. Some of the practical benefits include a clear shared language for client and developer communications, agreement of what "done" means, better trust from clients of work that is completed, less regression bugs to squash (Moar dev time!), increased quality, better structured tests, more informative test failures, greater transparency, deeper understanding of the project code base, and more.
https://www.youtube.com/watch?v=2PRsC_Cgpf410:30am to 11:15am
Custom Content Migrations to Drupal 8
Room 172 10:30am to 11:15am All Attendees ultimikeEven if you're only casually acquainted with Drupal 8, you probably know that the core upgrade path to Drupal 8 has been completely rewritten from the ground-up, using many of the concepts of the Migrate and Drupal-to-Drupal migration modules. Using the new core Migrate modules, it is possible to migrate much of a Drupal 6 (or Drupal 7) site to Drupal 8 with a minimum of fuss. But, the core "Migrate upgrade" is similar to previous Drupal core upgrade paths - there are no options to pick-and-choose what is to be migrated - it's all-or-nothing.
This session will demonstrate how to create and run a simple custom content migration from Drupal 6 to Drupal 8. The workshop will include an overview of migration concepts, a discussion of how each module fits into the overall process, code samples, as well as a live (danger!) demo of the migration in action.
https://www.youtube.com/watch?v=HsPcnZS_qL4Taxonomies: More than just a vocabulary
Room 173 10:30am to 11:15am Intermediate websmithc, drfirepantsLearn one approach to using a single taxonomy in Drupal 8 for URL management, access control, workflow and standardized tagging for various sections of your website.
We called our taxonomy a Web Segment. The Web Segment has multiple fields defined to manage the URL and tagging of the pages within that URL hierarchy on the site. Users request access to the Web Segment area from their user profiles and the request goes into workflow (uses Profile module). Content types are enabled with Web Segment access control and workflow using Workbench Access and Workbench Moderation modules. Content is created and tagged based on these Web Segments, which builds the URL and appropriately tags pages for metrics and services.
The session may also interest developers since it will include a demo of D8 modules used to implement the approach.
https://www.youtube.com/watch?v=BcDeS8HOy9wDrupal 8 Caching: A Developer’s Guide
Room 175 10:30am to 11:15am Intermediate xpsusaMaximize the advantages of caching and ensure your Drupal 8 web sites are performant. Get the technical information you need to handle caching in Drupal 8 now.
Caching is arguably one of the most important aspects of developing a high-performance, enterprise Drupal 8 web site.
In this fast-paced, information-filled session you’ll quickly get solid details on caching, why it is important, what it does and how to employ it, including:
Caching Concepts
Caching Basics
Drupal performance settings
Drupal caching modules
D8 caching primer
Varnish .vcl
HTTP Cache headers
Surrogate Keys
Cookies and Caching
HTTP/2
Caching API call results
Browser and Proxy caching
Other technologies to use in tandem with caching:
CDN, AJAX, ESI, Cron
Aimed at busy, intermediate and advanced Drupal developers, this session offers developer-centric, real-world caching information and techniques for Drupal 8 with tips and information you can put to immediate use and boost your web site performance.
https://www.youtube.com/watch?v=kl8-t0x06C8Component Libraries in Drupal Contrib, Core, and Beyond
Room 177 10:30am to 11:15am Intermediate cyb.tachyonComponents and UI Pattern Libraries are the future of building internet-connected graphic user experiences. These are small, reusable bits or ‘patterns’ of HTML, JS, CSS, and even templates like Twig or Handlebars. Whether it’s React’s JS components or a static styleguide, front-end developers want to handcraft reusable, dynamic components that are consistent across applications and platforms - web, mobile, desktop, and connected devices. Together these components make libraries that form the basis of modern client deliverables - but getting them into Drupal Core is not an easy feat.
The discussion is slowly progressing on how to get this power into Drupal Core, revolving around contrib modules such as the Components Library, UI Patterns, and PatternLab - but there’s a long way to go.
From one of the developers working hard on solving this issue comes the latest on the contrib and core development. We’ll cover not only a brief on components in Drupal, but the modules that are out now. Most importantly, I’ll show you:
- How components add value while requiring very little investment in the web development pipeline itself
- Real world Drupal 8 production components
- The current contrib modules that make component-based builds a reality
- The future of components in Drupal contrib space…
- … and in Drupal 8 core
Prerequisites:
- Some knowledge of front-end development
About Our Presenters
Derek Reese
Derek Reese is a full stack developer specializing in pipelines, software architecture, and toolsets. He has been working with Drupal since version 5. Derek has experience speaking at Drupal Cons, Camps, and to private audiences. He’s helped present everything from new technology pipelines to film pitches.
He has spent the past few years working on solutions for bringing front components into Drupal as well as contributing discussion, code, and reviews to Drupal.org component issues.
Recent Drupal Presentations:
- Drupal 8 Day - Building Drupal Sites with Components
- Asheville DC 2016 - Building Drupal Sites with Components
- Drupalcon NOLA 2016 - Theme Driven Development
- Florida DC 2016 - A Successful Drupal Development Pipeline
- PNWDS 2015 - A Successful Drupal Development Pipeline
Making Use Of Our Robot Overlords -- Automating Your Devops Workflows
Room 178 10:30am to 11:15am Expert rvtravellerAutomating workflows has been a priority of many development teams in recent years. The more your team can automate their work and integrate the different tools they use, the more they can accomplish. Why have your talented humans do QA when you have even more talented robots? Why spend your time doing the same, old DevOps work when you can build new and exciting intergrations?
Come join Brian Thompson from Mindgrub to learn about how you can level up your agency game by building in automation and testing into your workflow. Connect your development life with your favorite apps and services, both inbound and outbound, as well as unify login across services. This will make your life so much better.
Topics covered include:
- The benefits of automating your development workflow
- How to integrate your favorite services (like GitHub, CircleCI, Slack, etc) with other tools and services
- Using and creating ready-to-use recipes for common workflows
- What's on the horizon? Where is this all going?
11:30am to 12:15pm
Migrating Monsters
Room 172 11:30am to 12:15pm Advanced swirtTips and tricks for migrating monstrous websites from mixed sources (Drupal, static html, Cold Fusion, custom CMS ... ) into Drupal. Based on the experience of moving several large federal websites composed of multiple combinations of legacy sites and sub-sites into one cohesive Drupal site. Federate multiple sites into one without broken links or loss of SEO history. The concepts are version agnostic and will work for D7 or D8.
https://docs.google.com/presentation/d/1LhLJoTPyauyYETOYukC2enemnEJKOJ5S...
https://www.youtube.com/watch?v=lb5yXgva-bcCommunity Charging Solutions
Room 173 11:30am to 12:15pm All Attendees dbt102COMMUNITY CHARGING SOLUTIONS
(for electric vehicles and the Drupal community)
You are driving to Drupal Camp and your electric vehicle needs a charge. Finding a charger on a map is one thing. What if it's in use? What if you need to pee? How long will the charge take? Where can you go while waiting? Drupal to the rescue!
A little planning and bit of code can turn today's dumb charging experience into an amazing digital one. A great side effect is that open charging solutions will drive demand for new application development by your favorite online community.
David Thompson will explain this growth vector, covering topics that include:
- How bundled services and smart service systems can add new value
- The Drupal modules behind community charging solutions
- Solving data integration problems between disparate systems
- The role of open protocol hardware and open source software
- On affordability and incorporating existing infrastructure
- Energy as content, and syndicating it via Drupal web services
This is cool. Drupal 8, with its deep capabilities and flexibility, is ready to scale this clean EV related tech dramatically.
https://www.youtube.com/watch?v=0h6Lf8y9A-cMastering Drupal 8 Views
Room 175 11:30am to 12:15pm Beginner greggmarshall, amandamarshallLearn how to build complex displays of content—all without programming. Views was used on more than 80% of all Drupal 7 sites; now it is part of the Drupal 8 core. Learn how to take full advantage of Views' power to create many amazing pages and blocks. Instead of building 10 different view displays with different filters, learn how a contextual filter would require only a single display. But Wait There's More! Views Slices, Dices and makes Julienne Fries
- Using filters, Views can "slice" your data into relevant subsets.
- Using contextual filters, Views can "dice" your data even more using information about the other content being displayed on a page.
- And using contributed modules, Views can turn your data into maps, carousels, and other "Julienne Fries".
In this session, we'll start by modifying a view built into core that everyone uses, the content page. From there, we'll build our own simple what's new content list. Then we'll expand and extend that list to create more complex displays, including maps and carousels. Finally we'll look at ways to make Views display exactly what you want in the format you want it.
What You Will Learn
- Create displays of content that are automatically updated when you add new content
- Show maps and rotating image carousels on your site
- Use fields from more than one content type to create powerful views of multi-table data
- Modify the field data being displayed, combining it in different ways or changing the HTML that might be normally generated
- Add headers and footers above and below a views display
- Make the output of your view look exactly like the designer specifies
- Change the order in which a list of content is displayed, limit the content shown to only certain content types or values
- Filter content using values passed to the view in the URL, making a single view work different ways
Gregg and Amanda Marshall will be presenting in a reverse Socratic method.
https://www.youtube.com/watch?v=aesrJhDz3LASocial Impact in Seven Days
Room 177 11:30am to 12:15pm All Attendees dangurIn less than a week we built a site that exposes the would-be financiers of the Dakota Access Pipeline while building a community of potential divestors from those banks and ultimately the oil pipeline project. We’ll share what technologies we used, how our process worked, and where we can go from here.
https://www.youtube.com/watch?v=Ua72wD4mLCoGet a Great Drupal Job
Room 178 11:30am to 12:15pm All Attendees rhuffstedtlerWorking with Drupal is great. Working with Drupal and getting paid for it is even better! In the last year, we’ve interviewed over 30 developers, site builders, and themers. In this session, I’ll share with you some insights about what you as an individual can do to improve your chances of finding the opportunity that’s right for you, getting noticed by the recruiter, acing the interviews, and transitioning into a fulfilling career with an organization that loves Drupal as much as you do.
In addition to our own insights, friends at Drupal centric organizations like Pantheon, Acquia, Duke University, and several others have graciously provided input based on their experiences.
Topics to be covered include:
- What does “A Great Drupal Job” mean for you as an individual?
- Where are recruiters looking for Drupal candidates?
- How can you stand out from the crowd?
- How can you prepare for the interview?
- How do you follow up after the interview?
- What do you do when you get the offer?
- How do you make a great start at your new job?
12:15pm to 1:15pm
1:15pm to 5:00pm
Code Sprint
Room Lobby 1:15pm to 5:00pm All Attendees admin_fldcWhat’s a code sprint?
A code sprint is when people get together to work on one particular goal. In this case, we’re working on various Drupal issues.
I’ve never done a code sprint before. I don’t know what to do.
Don’t worry! We’ll help. For FLDC, we’re concentrating on Drupal 8 issue triage. Basically, we’ll look at all the Drupal 8 issues, and make sure we understand them. Then we’ll make sure they’re still happening and they’re categorized properly. There’s lots of help.
What if I want to work on something else?
That’s cool.
This sounds pretty boring…
Trust us, it’s a lot more fun when you get into it. You’ll get to meet new Drupal people, learn the internals of Drupal, and help out. It’s honestly pretty fun.
What if I get hungry?
We’ll have food… probably some pizza and some more healthy options. We got you covered!