The document discusses Drupal's transition from Drupal 7 to Drupal 8. It describes how Drupal 8 modernized by adopting PHP best practices like Composer, OOP, and external libraries. This required rewriting large parts of the codebase. The transition was challenging due to technical debt from the past and fears about change. Lessons learned include setting goals, gaining buy-in through transparency, incremental changes, and addressing fears through support. While the transition is not complete, Drupal 8 has rejoined mainstream PHP development practices.
Object Oriented got a lot easier since Moose came around.
This keynote is a one-day advanced Moose workshop covering (almost) everything Moose has to offer perl developers
For PHP developer who have begun to use OOP and are looking to take things to the next left. We talk about some more complex topics, about moving beyond inheritance, some of the PHP SPL and a couple of patterns that get you thinking about how to really start utilizing OOP in PHP the right way.
Banishing Loops with Functional Programming in PHPDavid Hayes
From a talk I've given a few time sat programming conferences about making your code better with functional programming principles. The example code is all PHP
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
Object Oriented got a lot easier since Moose came around.
This keynote is a one-day advanced Moose workshop covering (almost) everything Moose has to offer perl developers
For PHP developer who have begun to use OOP and are looking to take things to the next left. We talk about some more complex topics, about moving beyond inheritance, some of the PHP SPL and a couple of patterns that get you thinking about how to really start utilizing OOP in PHP the right way.
Banishing Loops with Functional Programming in PHPDavid Hayes
From a talk I've given a few time sat programming conferences about making your code better with functional programming principles. The example code is all PHP
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018Mike Harris
I never wrote it; everybody else did! How many times have you waded through an ageing, decaying, tangled forrest of code and wished it would just die? How many times have you heard someone say that what really needs to happen is a complete rewrite? I have heard this many times, and, have uttered that fatal sentence myself. But shouldn’t we love our legacy code? Doesn’t it represent our investment and the hard work of ourselves and our predecessors? Throwing it away is dangerous, because, before we do, we’ll need to work out exactly what it does, and we’ll need to tweeze out that critical business logic nestled in a deeply entangled knot of IF statements. It could take us years to do, and we’ll have to maintain two systems whilst we do it, inevitably adding new features to them both. Yes we get to reimplement using the latest, coolest programming language, instead of an old behemoth, but how long will our new cool language be around, and who will maintain that code, when it itself inevitably turns to legacy? We can throw our arms in the air, complaining and grumbling about how we didn’t write the code, how we would never have written it the way it is, how those that wrote it were lesser programmers, possibly lesser humans themselves, but the code still remains, staring us in the face and hanging around for longer that we could possibly imagine. We can sort it out, we can improve it, we can make it testable, and we can learn to love our legacy code.
https://www.youtube.com/watch?v=qRP45l5UugE
I try to explain what SOLID principles are all about, how to refactor an example code according to these principles and summarize what are the benefits of writing a SOLID code.
This is the Moose talk I gave at YAPC::NA 2012.
It included a practical example of a Moose objects code, a simple app called Comican. The code is not available online. If you want it, just email me (sawyer ATT cpan DOTT org).
My JSConf.eu talk about next-gen JavaScript metaprogramming features, starting with ES5's new Object APIs and then focusing on the forthcoming Proxy object, approved for the next ECMA-262 Edition. This is beautiful work from Tom Van Cutsem and Mark Miller, with Andreas Gal helping on the implementation front -- proxies are already shipping in Firefox 4 betas.
Getting the most out of Java [Nordic Coding-2010]Sven Efftinge
In this talk we explain how we use the more recent concepts of the Java programming language in order to improve readability and maintainability of our code.
How I Learned to Stop Worrying and Love Legacy Code - Ox:Agile 2018Mike Harris
I never wrote it; everybody else did! How many times have you waded through an ageing, decaying, tangled forrest of code and wished it would just die? How many times have you heard someone say that what really needs to happen is a complete rewrite? I have heard this many times, and, have uttered that fatal sentence myself. But shouldn’t we love our legacy code? Doesn’t it represent our investment and the hard work of ourselves and our predecessors? Throwing it away is dangerous, because, before we do, we’ll need to work out exactly what it does, and we’ll need to tweeze out that critical business logic nestled in a deeply entangled knot of IF statements. It could take us years to do, and we’ll have to maintain two systems whilst we do it, inevitably adding new features to them both. Yes we get to reimplement using the latest, coolest programming language, instead of an old behemoth, but how long will our new cool language be around, and who will maintain that code, when it itself inevitably turns to legacy? We can throw our arms in the air, complaining and grumbling about how we didn’t write the code, how we would never have written it the way it is, how those that wrote it were lesser programmers, possibly lesser humans themselves, but the code still remains, staring us in the face and hanging around for longer that we could possibly imagine. We can sort it out, we can improve it, we can make it testable, and we can learn to love our legacy code.
https://www.youtube.com/watch?v=qRP45l5UugE
I try to explain what SOLID principles are all about, how to refactor an example code according to these principles and summarize what are the benefits of writing a SOLID code.
This is the Moose talk I gave at YAPC::NA 2012.
It included a practical example of a Moose objects code, a simple app called Comican. The code is not available online. If you want it, just email me (sawyer ATT cpan DOTT org).
My JSConf.eu talk about next-gen JavaScript metaprogramming features, starting with ES5's new Object APIs and then focusing on the forthcoming Proxy object, approved for the next ECMA-262 Edition. This is beautiful work from Tom Van Cutsem and Mark Miller, with Andreas Gal helping on the implementation front -- proxies are already shipping in Firefox 4 betas.
Getting the most out of Java [Nordic Coding-2010]Sven Efftinge
In this talk we explain how we use the more recent concepts of the Java programming language in order to improve readability and maintainability of our code.
Slides from a presentation given at Laravel Chicago on November 18, 2014. Goes over the basics of building a REST API using the Laravel framework as well as some handy tips and tools.
Drupal Camp Porto - Developing with Drupal: First StepsLuís Carneiro
The goal of this presentation is to give Drupal new comers some insights about key aspects of developing with Drupal.
The idea is to give the audience some guidelines about good practices of Drupal development along with some tips and, by a simple example application, present the most common and important structures/characteristics of the Drupal API.
Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
Python and Oracle : allies for best of data managementLaurent Leturgez
In this presentation, I described Python and how Python can Interact with Oracle database, and Oracle Cloud Infrastructure in various project : from data visualisation to data science.
Drupal Theme Development - DrupalCon Chicago 2011Ryan Price
This class is intended for people who know some HTML and CSS, and covers the fundamental principles of Drupal theming geared toward people who wish to take a static mockup of a site design and turn it into a Drupal theme. You will also learn about using base themes, grid-based layout and helper modules to streamline and customize your Drupal theme.
Trainer Ryan Price has built entertainment sites, social networks, and eCommerce sites for clients including Popular Science, Field and Stream and Outdoor Life magazines. With over 10 years of experience building sites with PHP and other technologies, Ryan began immersing himself in Drupal around 2006. Ryan often teaches and writes articles along with Mike Anello, and the duo is also known for producing the DrupalEasy Podcast with their host Andrew Riley.
Lessons Learned From Scaling An Open Source Community By 10,000%Angela Byron
Drupal—an open source CMS—has grown from a small student hobby project to an enterprise-grade digital experience platform running ~3% of the Internet. This talk will explore the many lessons learned (most of them the hard way ;)) in navigating an international open source developer community through various scalability challenges.
Topics covered will include:
* Contributor On-Boarding: Some clever and participatory ways to help new folks bootstrap quickly and feel included
* Community Health: How to account for—and encourage—contributors stepping away? How to develop new leadership to take their place?
* Project Sustainability: How to incentivize commercial sponsorship of open source contributions without selling your soul
* Governance: What pain points emerge as you scale, what strategies help solve them, and how to “right size” your solutions at the right time?
* When Sh*t Hits The Fan: How do you handle a project fork? What if you need to remove a high profile contributor? Been there, done that; let my trauma be your guide. ;)
* Community Bootstrapping: What if you’re *not* a project with 100K+ contributors and 2M+ users? How do you build your first 100 / 1,000 / 100K?
As a team-building exercise, we all created Personal User Manuals (https://openpracticelibrary.com/practice/personal-user-manuals/) to explain a bit about who we are and how we work best.
Here's mine, which can be helpful if you're ever stuck working with me. ;)
This brief talk walks through the process of creating a Project Priority Matrix, which is a great tool if you have too many things to work on, and you're searching for a way to say "no" to things... with MATH! :D
Cheers to https://sixsigmastudyguide.com/prioritization-matrix/ for the useful example.
OCTO On-Site Off-Site Update on D8 RoadmapAngela Byron
An update to various Acquia departments on who OCTO (Office of the CTO) is and what they do, and a walkthrough of the D8 roadmap and OCTO's role therein.
From Troubled Waters to Water Under the BridgeAngela Byron
Video: https://events.drupal.org/vienna2017/sessions/oh-no-you-didnt-panel-about-conflict-management
Feeling Stabby? Then this is THE session for you! We all have conflict in our lives that can make us feel out of control, frustrated, angry, depressed or worse. What might surprise you is that this is totally normal. Differences in personality type, communication, motivations and expectations are some of the leading causes of conflict in your personal and professional lives. Join us to hear about some challenging conflicts we have faced and learned from.
After this session you will:
- Be able to identify some common conflict-prone personalities
- Gain some example phrases and diffusing solutions to deal with those people in a more productive fashion
- Get 5 techniques from each speaker that we use on the reg to resolve our conflicts
- Bring your questions & answers so we can help others identify techniques to resolve their conflicts!
Acquia Company Update on Drupal 8.2/8.3/OCTOAngela Byron
A brief overview of Drupal 8.2 and 8.3 (cribbing generously from Dries Buytaert's slides) as well as some info on what the heck the Office of the CTO (OCTO) does, anyway. :)
A run-down of the Drupal 8 initiatives for Drupal 8.2 and beyond: Migrate, Content Workflow, API-first, Media, Blocks and Layouts, Data Modelling, Theme Component Library, Cross-Channel Orchestration
The potential in Drupal 8.x and how to realize itAngela Byron
As of Drupal 8.0.0, we've adopted a new release cycle that enables us to ship "minor" releases every 6 months with new, backwards-compatible features. This talk discusses possible implementation of this that attempts to strike a balance between agility and including all of the relevant stakeholders in feature decisions.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
3. What the heck are we talking
about?
• A brief intro to Drupal
• Then vs. now
• Re-writing your code base: a how-to
guide
• Lessons learned
4. Once upon a time…
…in a dorm room far away (Antwerp, Belgium)…
5. Once upon a time…
DRIES BUYTAERT
…in a dorm room far away (Antwerp, Belgium)…
6. Once upon a time…
DRIES BUYTAERT
IKEA furniture
…in a dorm room far away (Antwerp, Belgium)…
7. Once upon a time…
Chess board
DRIES BUYTAERT
IKEA furniture
…in a dorm room far away (Antwerp, Belgium)…
8. Once upon a time…
Chess board
DRIES BUYTAERT
Stamp collection
IKEA furniture
…in a dorm room far away (Antwerp, Belgium)…
9. …A domain name
registration was mis-typed…
(Fun fact: Dries meant to register 'dorp.org,' which is Dutch for village, and
accidentally found that drop.org was available.)
10. …And a project called
"Drupal" was born.
(Fun fact: "Drupal" is an Anglicization of the word "druppel" which is Dutch for "drop.")
14. A content management system
(to get you 80% there)
Turn on features
("modules")
Build content model
("entities" and "fields")
15. A content management system
(to get you 80% there)
Turn on features
("modules")
Build content model
("entities" and "fields")
Create custom listings
("views")
16. A content management system
(to get you 80% there)
Turn on features
("modules")
Build content model
("entities" and "fields")
Create custom listings
("views")
Make it purdy
("themes")
17. A content management system
(to get you 80% there)
Turn on features
("modules")
…zero lines of code.
Build content model
("entities" and "fields")
Create custom listings
("views")
Make it purdy
("themes")
18. A content management framework
(for that last ~20%)
Add/extend functionality, integrate with third-party systems
19. An awesome community!
(1.1M+ users, 35K+ developers, 2,400+ core contributors)
Lots from non-traditional backgrounds, self-taught PHP via Drupal
44. There are two sides to any
massive migration
Code People
45. There are two sides to any
massive migration
Code People
ignore this side at your GREAT peril!
46. 0. Set the stage
Pre-requisites to have in place first
47. Get your user base onto a
modern platform
(Fun fact: The GoPHP5 movement—a coalition of open source projects and hosts
to expedite dropping support for PHP4 in 2007—was founded by Drupalistas! :))
48. Add metric butt-loads of
automated test coverage
Including continuous integration, so you can fix failures before commit
(Fun fact: Drupal's 50K+ tests stayed 100% passing throughout D8's development)
49. Introduce a "taste" of the
future
db_update('example')
->condition('id', $id)
->fields(array('field2' => 10))
->execute();
Introduce concepts of OO and external libraries, get people comfortable with
basics before going all out.
50. 1. Set ambitious goals
There's going to be a lot of pain before the pay-off; make
the pay-off worth it.
51. Drupal 8 initiatives
configuration
management Mobile
AUTHORING
EXPERIENCE
Multilingual Views web services
53. The most successful initiatives had
leaders who…
• Communicated "early and often"!
• Documented decision-making
• Built a team around them!
• And genuinely valued that team
• Sought ways to "scale" themselves!
• Delegation
• Re-usable training material
http://hojtsy.hu/blog/2014-oct-17/authority-drupal-andor-open-source-general
55. Get the right people in the
right room
Web Services sprint:
• Drupal and Symfony
project leads
• Initiative leads
• Community voices
• Detractors
http://buytaert.net/the-future-is-a-restful-drupal
56. Detractors? Huh?
• "Pure" trolls rarely exist!
• But people feeling unheard,
frustrated do
• Provide outlet to air legitimate
concerns!
• Who knows; they might actually be
right!
• Build trust; remove defensiveness!
• Ownership in process can turn
detractors into advocates
57. Show your work!
(Just like in math class. :))
• Can't just come back with a
"decree" and expect people to
fall in line.!
• Folks need to understand and
trust in your thought process
• Transparency++
• "Issue queue or it didn't happen"
64. For new functionality
"Writing code should not be the first response.
Finding if shared code exists should be the
first response.
— Beth Tucker-Long, Editor-in-Chief, php[architect]
65. For existing functionality
• Refactor your app, don't replace it
• Replace your component, don't refactor it
• Especially cryptography!
• Build new code as components, share with
yourself
• However! If ain't broke, don't fix it.
70. Fear of losing investment in
platform
Particularly if it's your code that's being replaced.
71. Fear of going back to "square one"
and being unable to catch up
Especially pertinent for an aging community; hard to spend nights and
weekends learning new things with kids and a mortgage
72. Fear of the unknown
Not just OO, Symfony, but also entire toolchain;
IDE vs. simple text editor/grep
73. Fear of losing what makes
your community "you"
Will hobbyists, non-techies be able to make the transition?
74. What helps?
• Connecting: talking it out, sprints, planning meetings
• Documentation: "conceptual" overviews, detailed API
docs, books
• Training: presentations, examples, blog posts
• Tools: inspectors, scaffolding, automated code porting
• DX (Developer Experience): eliminate boilerplate code,
consistency/learnability of patterns
• Reinforce that OO practices are used everywhere,
may as well learn on a platform they already know!
76. 5 tips on handling a fork
• Resist reacting. Instead, listen.
• Dispel FUD, but take the high road
• Help existing devs accentuate the
positive
• Try and maintain relationship with forkers
• If concerns resonate, address them
77. Example:
Semantic Versioning
• Feature releases every 6 months
• Backwards compatibility preserved
• Both core devs and users working on same code base!
• Drupal 9? Not until there's enough to warrant breaking BC
79. Learn from our mistakes!
Please!
• The perfect is the enemy of the better.
• "All you can eat" gives you a tummy-ache.
• Don't be afraid to say "no."
• Make decisions early and explicitly
80. In Summary
1. Set the stage
2. Set ambitious goals
3. Major change needs major buy-in
4. Recognize that major change is scary
5. Avoid common pitfalls