My presentation about the open source dependency injection framework, Force DI.
Presented to Nashville Salesforce Developers Group on August 23, 2018.
Event: https://www.meetup.com/Nashville-Salesforce-Developer-User-Group/events/253644240/
Presented to Richmond Salesforce Developers Group on August 27, 2018.
Event: https://www.meetup.com/Richmond-Salesforce-Developer-Group/events/253681320/
Sample Code: https://github.com/douglascayers/force-di-demo
Force DI: https://github.com/afawcett/force-di
With sharing or without sharing... is that the question? Join us to better understand how to leverage the best Salesforce security features in code. Learn all the best practices for hardening your application and keeping your data secure. We'll cover sharing, FLS, CRUD, and all the most common mistakes and misconceptions about how these features work in Apex and Visualforce.
If you're looking to interact with your Salesforce data from other systems, but need something more complex than what's offered by the native Rest API, look no further than REST Apex. Join us as we take a look at the basics of defining your own custom APIs using Apex REST. The session will be packed with tips and tricks, and we'll cover everything involved in defining your first Apex REST service.
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan OsgoodSalesforce Admins
Data Migration is an extremely important aspect of setting up a Salesforce instance. It is critical that the sanctity of data is maintained. Join us to hear fifteen tips based on learnings from different types of data migration projects.
OAuth Authorization flows in salesforceKishore B T
OAuth Authorization flows in salesforce
1. Creating Connected App and Managing Connected App usage
2. Oauth web server flow (walkthrough with postman)
3. Oauth JWT Bearer token flow (walkthrough with postman)
4. Oauth JWT Bearer token flow (apex code walkthrough to integrate one salesforce org to another using JWT bearer flow)
With sharing or without sharing... is that the question? Join us to better understand how to leverage the best Salesforce security features in code. Learn all the best practices for hardening your application and keeping your data secure. We'll cover sharing, FLS, CRUD, and all the most common mistakes and misconceptions about how these features work in Apex and Visualforce.
If you're looking to interact with your Salesforce data from other systems, but need something more complex than what's offered by the native Rest API, look no further than REST Apex. Join us as we take a look at the basics of defining your own custom APIs using Apex REST. The session will be packed with tips and tricks, and we'll cover everything involved in defining your first Apex REST service.
15 Tips on Salesforce Data Migration - Naveen Gabrani & Jonathan OsgoodSalesforce Admins
Data Migration is an extremely important aspect of setting up a Salesforce instance. It is critical that the sanctity of data is maintained. Join us to hear fifteen tips based on learnings from different types of data migration projects.
OAuth Authorization flows in salesforceKishore B T
OAuth Authorization flows in salesforce
1. Creating Connected App and Managing Connected App usage
2. Oauth web server flow (walkthrough with postman)
3. Oauth JWT Bearer token flow (walkthrough with postman)
4. Oauth JWT Bearer token flow (apex code walkthrough to integrate one salesforce org to another using JWT bearer flow)
Dreamforce 2014 Presentation : Salesforce.com Sandbox management
Large organizations have complex development processes that span multiple release schedules. It is not only the division between development and testing that is important, but the synchronization of projects on different schedules.
Description:
Whether you are an experienced developer coming to Apex from another language, or an intermediate level Apex developer, this webinar will take you to the next level in programming on the Salesforce and Force.com platform. We will dive deeper into Apex, and guide you through examples of advanced design patterns and techniques, and much more related to Apex on the Salesforce1 platform!
Key Takeaways:
::Programmers familiar with object-oriented languages will be able to learn Apex easily
::Apex can perform a wide range of functions from serving as a controller for Visualforce pages to scheduled tasks in the background.
::Get a deep dive into testing and code coverage on Force.com, and learn some solid best practices and recipes for writing better tests.
Intended Audience:
::Programmers familiar with object-oriented languages, and looking for an deeper dive into Apex
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
The Screenplay Pattern: Better Interactions for Better AutomationApplitools
Automating interactions for tests is hard. For the past decade, the primary way to automate web UI interactions has been the Page Object Model. Unfortunately, page objects do not scale well because, by design, they allow lots of code duplication and unsafe activity. The Screenplay Pattern is a much better pattern for handling interactions. In Screenplay, Actors use Abilities to perform Interactions. Join Lead Software Engineer in Test, Andrew Knight, as he introduces the Screenplay Pattern using a .NET implementation named Boa Constrictor. Learn how to use Screenplay calls with Boa Constrictor to write a simple search engine test in C#. By the end of this talk, you’ll be empowered to make better interactions for better automation!
The new queueable Apex feature is not only a great way to make asynchronous calls, it also enables new design patterns that let you dramatically increase the reliability of those calls. In addition, you can detect and recover from a wide variety of errors and exceptions with clarity. Join us to learn how to use queueable Apex to build robust asynchronous code.
Renan Ranelli, especialista em desenvolvimento de software na locaweb, Nessa palestra apresenta os princípios de Random Testing.
Assista em: https://www.eventials.com/locaweb/random-testing/
Random Testing é uma tecnica de teste de software bem menos usual, mas que resolve várias limitações das abordagens clássicas. Em especial, é bastante eficiente para encontrar comportamentos indefinidos, problemas de validação e segurança. Em especial, a palestra é bastante focada em "Property Based Testing" e apresenta quais são os aspectos fundamentais para aplicar as técnicas e as limitações destas.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
When building an enterprise solution or creating an app, data often comes from multiple systems, and business processes frequently cross application boundaries.
Salesforce offers a rich library of programmatic and point-and-click integration tools to customize business processes that span multiple application systems. In this webinar, we will survey the many integration options and technologies available in Salesforce, including newer API and integration features.
This webinar is the first in a series that will explore several ways to integrate systems and services with Salesforce.
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarSalesforce Developers
Mobile has revolutionized the way we live and work and enterprises are demanding mobile business apps for their always-connected, mobile workforce. Salesforce Platform Mobile Services, announced in early April, gave developers two sets of tools to rise to the challenge - version 2.0 of the Salesforce Mobile SDK, and Salesforce Mobile Packs, a set of templates for writing web and hybrid mobile applications with HTML5, JavaScript and CSS using frameworks such as AngularJS, Backbone.js and jQuery Mobile. This webinar focuses on the Mobile Packs, but stay tuned for a future webinar on Mobile SDK 2.0.
In this webinar, Pat and Raja will explain the differences between the Mobile Packs currently offered, show you how to get started on your own mobile app, and give you pointers on building a great app with web technologies. Join us to learn all about:
Client-side JavaScript Model-View-* frameworks
Running the Mobile Pack templates on Force.com, off-platform web servers and as hybrid apps
Building your own mobile app using a Mobile Pack as the foundation
We'll start from the basics, so whether you're experienced with Force.com and looking to get started with mobile apps and JavaScript, or vice versa, join us, grab the Mobile Packs from GitHub, and start coding!
Dreamforce 2014 Presentation : Salesforce.com Sandbox management
Large organizations have complex development processes that span multiple release schedules. It is not only the division between development and testing that is important, but the synchronization of projects on different schedules.
Description:
Whether you are an experienced developer coming to Apex from another language, or an intermediate level Apex developer, this webinar will take you to the next level in programming on the Salesforce and Force.com platform. We will dive deeper into Apex, and guide you through examples of advanced design patterns and techniques, and much more related to Apex on the Salesforce1 platform!
Key Takeaways:
::Programmers familiar with object-oriented languages will be able to learn Apex easily
::Apex can perform a wide range of functions from serving as a controller for Visualforce pages to scheduled tasks in the background.
::Get a deep dive into testing and code coverage on Force.com, and learn some solid best practices and recipes for writing better tests.
Intended Audience:
::Programmers familiar with object-oriented languages, and looking for an deeper dive into Apex
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
The Screenplay Pattern: Better Interactions for Better AutomationApplitools
Automating interactions for tests is hard. For the past decade, the primary way to automate web UI interactions has been the Page Object Model. Unfortunately, page objects do not scale well because, by design, they allow lots of code duplication and unsafe activity. The Screenplay Pattern is a much better pattern for handling interactions. In Screenplay, Actors use Abilities to perform Interactions. Join Lead Software Engineer in Test, Andrew Knight, as he introduces the Screenplay Pattern using a .NET implementation named Boa Constrictor. Learn how to use Screenplay calls with Boa Constrictor to write a simple search engine test in C#. By the end of this talk, you’ll be empowered to make better interactions for better automation!
The new queueable Apex feature is not only a great way to make asynchronous calls, it also enables new design patterns that let you dramatically increase the reliability of those calls. In addition, you can detect and recover from a wide variety of errors and exceptions with clarity. Join us to learn how to use queueable Apex to build robust asynchronous code.
Renan Ranelli, especialista em desenvolvimento de software na locaweb, Nessa palestra apresenta os princípios de Random Testing.
Assista em: https://www.eventials.com/locaweb/random-testing/
Random Testing é uma tecnica de teste de software bem menos usual, mas que resolve várias limitações das abordagens clássicas. Em especial, é bastante eficiente para encontrar comportamentos indefinidos, problemas de validação e segurança. Em especial, a palestra é bastante focada em "Property Based Testing" e apresenta quais são os aspectos fundamentais para aplicar as técnicas e as limitações destas.
Talk given at Typeform for the Barcelona Bug busters meetup.
How to Automate API Testing guides you through a possible API Testing workflow for API Functional Testing exploring different tools and approaches.
When building an enterprise solution or creating an app, data often comes from multiple systems, and business processes frequently cross application boundaries.
Salesforce offers a rich library of programmatic and point-and-click integration tools to customize business processes that span multiple application systems. In this webinar, we will survey the many integration options and technologies available in Salesforce, including newer API and integration features.
This webinar is the first in a series that will explore several ways to integrate systems and services with Salesforce.
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarSalesforce Developers
Mobile has revolutionized the way we live and work and enterprises are demanding mobile business apps for their always-connected, mobile workforce. Salesforce Platform Mobile Services, announced in early April, gave developers two sets of tools to rise to the challenge - version 2.0 of the Salesforce Mobile SDK, and Salesforce Mobile Packs, a set of templates for writing web and hybrid mobile applications with HTML5, JavaScript and CSS using frameworks such as AngularJS, Backbone.js and jQuery Mobile. This webinar focuses on the Mobile Packs, but stay tuned for a future webinar on Mobile SDK 2.0.
In this webinar, Pat and Raja will explain the differences between the Mobile Packs currently offered, show you how to get started on your own mobile app, and give you pointers on building a great app with web technologies. Join us to learn all about:
Client-side JavaScript Model-View-* frameworks
Running the Mobile Pack templates on Force.com, off-platform web servers and as hybrid apps
Building your own mobile app using a Mobile Pack as the foundation
We'll start from the basics, so whether you're experienced with Force.com and looking to get started with mobile apps and JavaScript, or vice versa, join us, grab the Mobile Packs from GitHub, and start coding!
The new Salesforce Mobile SDK 3.2 release provides developers with tools and capabilities for building compelling mobile apps powered by customer data in Salesforce. These mobile apps allow customers to build a stronger relationship with a business, and enables employees to be more effective.
Join us to learn how Mobile SDK combined with Salesforce Platform makes mobile app development a breeze. Experience various advanced features such as secure offline storage & data sync, push notifications, etc., which allow developers to unlock the full potential of customer data and the mobile devices.
Featured Topic - Defining Your Lightning Strategy as an ISV
Learn more about the Lightning Experience at p.force.com/lightningready (Partner Community login required)
Earlier this year, we released Lightning Web Components (LWC), a new UI framework based on web standards and optimized for performance and developer productivity. We have now open sourced the Lightning Web Components framework so that anyone can build applications on any platform.
Join our webinar where we'll explore how this framework, based on standard HTML, modern JavaScript (ES6+), and the best of native Web Components, helps you create web components and apps using the stack and tools you prefer.
Description:
In this session, we will discuss and demonstrate how to build engaging employee and customer-facing applications in JavaScript on top of the Salesforce1 Platform.
We will explore all the aspects involved in building these next generation applications including authentication, the REST APIs, mobile development options, and different integration scenarios. We will also share some inspiring examples built on the Salesforce1 Platform with leading JavaScript frameworks such as AngularJS, Ionic, BackboneJS, Ratchet and more.
Key Takeaways:
::Get an overview of the Salesforce1 Platform from a developer point of view
::Understand Salesforce OAuth Authentication
::Acquire knowledge on the Salesforce REST APIs
::Get insight on building a Single Page Application on the Salesforce1 Platform
::Explore using modern JavaScript Frameworks such as AngularJS, Ionic, Backbone, etc.
::Gain knowledge on building state-of-the art mobile apps on the Salesforce1 Platform
::Get familiar with building custom apps with Heroku and Heroku Connect
Intended Audience:
This session is for both seasoned JavaScript developers who want to learn how to build applications on top of the Salesforce1 Platform, and seasoned Salesforce developers who want to learn how to create amazing user experiences in JavaScript.
Recommended Resources:
https://developer.salesforce.com/en/events/webinars/JavaScript_Applications_Salesforce?d=70130000000lgzk
Salesforce DX is the modern way to manage and develop Salesforce apps across the entire lifecycle, and helps teams build together and deliver continuously. Whether you're an individual developer or working as part of a large team, Salesforce DX provides you with an integrated, end-to-end lifecycle designed for high-performance agile development. Best of all, we've built it to be open and flexible so you can build the way you want with the tools and practices you know and love. You don’t want to miss this webinar!
https://developer.salesforce.com/events/webinars/get-started-salesforce-dx/
The Force.com IDE includes new features to help you develop and deploy your Lightning Applications. In this session, the Platform Developer Tools team will give you a preview at these new features through a live demo of building an app. Let us know what other features you would like to see to accelerate your Lightning Development eXperience!
Salesforce Platform Mobile Services provides developers with tools to easily create mobile applications while leveraging existing skill sets like Visualforce, JavaScript and HTML 5. The open-source Salesforce Platform Mobile SDKs give you the flexibility to build native, web and hybrid apps for iOS and Android. This webinar is the second in a series focusing on the new Mobile SDK 2.0 features, and will demonstrate how to create your own native iOS mobile applications that interface with the Salesforce Platform. The webinar walks you through the development of a simple native iOS application that retrieves records from Salesforce Platform and displays them in a master-detail view. You will then implement the means to update a record’s details and send the updated results back to the service.
Key Takeaways:
Learn how to build iOS apps quickly with the Mobile SDK 2.0
See how to interact securely with Salesforce API’s using Objective-C
Intended Audience:
Developers experienced with Salesforce Platform and have a working understanding of Objective-C
We recently announced over 300 new features and enhancements at TrailheaDX '19 and for the Summer '19 release. In our Developer Highlights webinar we explore the top features with in-depth demos, including the latest updates for Lightning Web Components (LWC), LWC Open Source, CLI updates, Change Data Capture for external objects, Asynchronous Apex Triggers, Notification Builder and more.
Watch the recording here: https://youtu.be/kmOkk74QiCo
The Apple Watch is the long anticipated wearable device from Apple. It includes a striking design and innovative new interface. Developers can build apps, or specifically extensions to apps running on their iPhone, using WatchKit, Apple’s developer SDK. Now, with the latest Salesforce Wear Developer Pack developers can build apps for Apple Watch and Salesforce.com. Join this webinar to learn how to build your first Apple Watch app using Salesforce Wear Kit.
What you will learn:
:: How to use the Salesforce Wear Developer Pack to extend your iPhone apps to the Apple Watch
:: Common implementation patterns for Apple Watch development, including: notifications, glances, messaging with the Salesforce Mobile SDK of iOS delegates, and more
:: Storyboards and project targets for xCode and Apple Watch
:: Writing Swift code to work with Salesforce data
Key Takeaways
:: How to create an Apple Watch app in conjunction with the Salesforce Mobile SDK for iOS
:: Sending and receiving data from Salesforce on the Apple Watch
Intended Audience
Existing Apple iOS developers, or Salesforce Platform developers interested in getting started with iOS Development
An overview about Salesforce new open source UX Framework known as Salesforce Lightning Design System. Its an Modern UI Framework, which can be used to design and develop enterprise level apps.
Similar to Dependency Injection with the Force DI Framework (20)
TDX19 - Accelerate DevOps with GitLab and SalesforceDoug Ayers
Continuous Integration (CI) and Continuous Delivery (CD) provide an unparalleled opportunity for teams to reduce cycle times and increase the quality of their releases, but getting started isn't always obvious. In this session we'll show you how to get going faster than ever with GitLab and Salesforce DX tools by configuring CI/CD pipelines and demonstrating best practices for Salesforce development. We'll give you a brief primer on CI/CD, then show you how to create a deployment pipeline that takes changes you make in a Scratch Org all the way to production, and how to do this across teams using a feature branching strategy and concurrent DevOps. You'll see live demos and walk away with the knowhow to release faster with reduced risk.
https://success.salesforce.com/sessions?eventId=a1Q3A000026slov#/session/a2q3A000002BGbsQAG
TDX19 - Untangle Your Org with Salesforce Developer ToolsDoug Ayers
You're ready to start using your favorite tools with Salesforce DX to develop for your orgs, but you're not sure where to get started, or what a successful migration to open tooling even look likes. If that sounds familiar, this session is for you! We'll explore some of the common places where your metadata gets tangled and what tools are available to get it all straightened out.
https://success.salesforce.com/sessions?eventId=a1Q3A000026slov#/session/a2q3A000002BGcEQAW
Adopting Files and Enhanced Notes in Lightning ExperienceDoug Ayers
Salesforce is phasing out the Classic Notes & Attachments related lists in favor of feature-rich Lightning Files and Enhanced Notes. Lightning Files and Enhanced Notes support previews, versioning, external sharing, and are the standard for Lightning Experience. In this session you will learn to enable these features for your users, understand migration options for Classic Notes & Attachments, and explore workarounds to preserve shared files when Accounts, Contacts, and Leads get merged.
Dreamforce: https://success.salesforce.com/apex/Sessions?eventId=a1Q3A00000stRRuUAM#/session/a2q3A000001ytb2QAA
More resources: https://douglascayers.com/adopting-files-and-enhanced-notes-in-lightning-experience/
Chatter Bot - Enabling New Capabilities for Process BuilderDoug Ayers
Out of the box, Process Builder has limited support for Chatter. It can make simple posts or be fired when a new post is created but there’s no support for Groups, Group Members, Files, or Topics… until now. Introducing Chatter Bot, a set of custom objects and triggers that enables new capabilities for Process Builder so you can automate #nocode business solutions like creating cases when certain topics are assigned to conversations, or post welcome messages to users when they join a group, or notify file followers when a new revision is uploaded. Take Chatter collaboration to new levels at your company with Chatter Bot! Based on my GitHub projects blogged about at https://douglascayers.com/tag/chatter-bot/
My presentation recapping some announcements from Dreamforce 2016 and Winter '17 release features. This is not an exhaustive list. https://www.meetup.com/Nashville-Salesforce-Developer-User-Group/events/234768432/
Salesforce: Advanced Lead Conversion Using Process BuilderDoug Ayers
This is a follow up to my earlier blog post about "How to Preserve Related Lists and Chatter on Lead Conversion". In this presentation I talk about the larger picture of how we can use Process Builder to customize and enhance the standard lead conversion process to create your own advanced lead conversion process that gives you ability to:
* Map ANY standard or custom lead field to ANY standard or custom account, contact, and opportunity field -- not just the fields the Setup page allows you
* Assign account, contact, and opportunity record types based on any lead criteria
* Create follow-up tasks when leads are converted
* Send email alerts or chatter posts to alert specific groups about newly converted accounts or opportunities
* Launch Flow or Apex to perform advanced tasks like batch processing or calling out to third-party systems to register new accounts with ERP system
https://douglascayers.wordpress.com/2016/06/26/advanced-lead-conversion-with-process-builder/
Salesforce - The Power of Upsert and External IDs - How To - WorkbenchDoug Ayers
How to upsert records using Workbench.
Learn about the Power of Upsert and External IDs in this presentation based on my blog post series:
https://douglascayers.wordpress.com/2016/02/07/salesforce-power-of-upsert-and-external-ids-part-1/
https://douglascayers.wordpress.com/2016/02/07/salesforce-power-of-upsert-and-external-ids-part-2/
Salesforce - Filtered Related Lists Without CodeDoug Ayers
Have your users ever asked for a way to filter related lists or have multiple related lists that separate records based on criteria – much like how Open Activities and Activity History related lists separate Task records based on their status? In this session I will show you how to use native related lists to separate and filter records with NO apex code and NO visualforce, just a dash of Process Builder and some custom lookup fields.
This talk is based on my blog post: https://douglascayers.wordpress.com/2015/11/18/salesforce-filter-related-lists-without-code/
Review Dreamforce 15 announcements like Thunder IoT and Salesforce IQ. Demo and review awesome new features in the Winter 16 release like Lightning Experience! Presented at the Nashville Salesforce Users & Developers Group on October 14, 2015.
Salesforce1 Mobile Experience - Remedyforce On CallDoug Ayers
My first presentation at Nashville Salesforce Developers Users Group. Demoed a Salesforce1 mobile app for managing Remedyforce incidents with Chatter Publisher Actions, Visualforce / jQuery Mobile, Apex, Flows, Workflows.
http://www.meetup.com/Nashville-Salesforce-Developer-User-Group/events/206618892/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
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.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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/
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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.
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.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
2. Doug Ayers
Technical Curriculum
Developer, Trailhead
@douglascayers
github.com/douglascayers
douglascayers.com
Developer, Educator, Blogger
“The fun way to
learn Salesforce”
3. Exploring Use Cases for Dependency Injection
https://www.meetup.com/ForceDotCom/events/253817247/
Look for recording to be posted to the Bay Area Salesforce Dev Group YouTube Channel
4. Learn directly from Salesforce experts at #DF18 Bootcamp
https://www.salesforce.com/dreamforce/certification/
Pre-Conference
Bootcamp:
Developing Applications
using Salesforce DX
and Heroku Pipelines
• 3 Days
• Instructor-Led
• Hands-On
• I’ll be there 😎
5. This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the
assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we
make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber
growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any
statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new
products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in
our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the
immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new
releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise
customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the
most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are
available on the SEC Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be
delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Statement under the Private Securities Litigation Reform Act of 1995
Forward-Looking Statement
6. Agenda
• What is dependency injection and what does it solve?
• Walkthrough: refactoring tightly coupled code
• Overview of force-di open source project
• Demo force-di with Lightning, Visualforce, Apex, and Flows
• Resources
• Q&A
10. Introduce an interface
so the concrete
implementations can be
swapped out.
Move logic of which
implementation to use,
which decouples the
greetings method from the
message provider.
11. Move logic of which
implementation to use,
which decouples the
greetings method from the
message provider.
We can take this further by
injecting the implementation
to use at runtime,
completely decoupling the
classes.
12. Now we’ve completely
decoupled the ChatApp
from the implementation
dependencies by looking up
at runtime what to use.
Two flavors of constructor
injection by either passing in
the class to use or looking it
up in real-time.
13. Design patterns for decoupling dependencies
Dependency Inversion and Injection
An app codes to interfaces so that
behavior can be swapped out with little
to no code changes to the app.
14. Design patterns for decoupling dependencies
Dependency Inversion and Injection
Implementations can be swapped out
easily, usually through a config setting
and without redeploying the app.
15. Design patterns for decoupling dependencies
Dependency Inversion and Injection
DI uses config and code to determine
dynamically the implementation that will
be used, decoupling dependencies from
where they are used.
16. In fact, the implementation
classes now could live in
separate packages or
namespaces than
ChatApp…
Now we’ve completely
decoupled the ChatApp
from the implementation
dependencies by looking up
at runtime what to use.
21. Resources
Force-DI on GitHub
• https://github.com/afawcett/force-di
• Inspired by Google’s Guice library
Dependency Injection Sites
• Martin Fowler
• Derick Bailey (Los Techies)
• Thorben Janssen (Stackify)
• Wikipedia
Dreamforce Sessions
• Understanding the value of Dependency
Injection in the Lightning Platform
• Advanced Techniques To Adopt Salesforce DX
Unlocked Packages
• How Packaging Transformed App Dev
at CarMax
• Tips for Organizing Metadata to
Adopt Unlocked Packages
Key MessageSalesforce is a publicly traded company. Customers should make buying decisions only on the products commercially available.
Talk TrackBefore I begin, just a quick note that you should base your purchasing decisions on products and services that are currently available.
https://stackoverflow.com/questions/14301389/why-does-one-use-dependency-injection
Often code classes depend on each other, such as an Apex controller depending on another Apex class to log metrics and information. Overtime, you create many Apex classes that use the same logger, which persists the metrics to a custom object. Later, you decide you want to log the metrics to a third-party system rather than a custom object. To make this change, you need to search and replace your code base and re-deploy your app. Later, you decide you need to log via http callouts in some places, to log via platform events in other places, and to make testing easier to use mock loggers in yet other places.
Dependency injection is a design pattern that decouples code from its dependencies by following a couple key principles:
Code to interfaces (abstractions) rather than referencing implementation classes directly
Use a service locator to look up dynamically and inject the appropriate interface implementation, whereby the actual implementation can be swapped out via simple configuration settings and no code changes
There also exists declarative dependencies such as when a custom button depends on a specific Visualforce page or Lightning component to invoke.
https://stackoverflow.com/questions/14301389/why-does-one-use-dependency-injection
When you first develop an application, you begin with your requirements and everything you put into the app has a known purpose. All the parts and pieces have their place and the app ”just works”.
https://stackoverflow.com/questions/14301389/why-does-one-use-dependency-injection
Overtime, however, you may receive new requirements that build on top of or contradict the original design. Like playing the game Jenga, refactoring the app to support these changes can be tough. Depending on the architecture, such as tightly coupled code, then making changes can be difficult and potentially cause breaking changes. The more tweaks to the code to try and bend original design to new requirements often leads to messy code.
Dependency injection is a design pattern to try and mitigate those risks by using architectures that are loosely coupled and implementation details can be swapped out in a more of plug-n-play manner without causing significant changes to other parts of the code base.
Animations:
Click to show bottom orange rectangle around message classes
Click to show top orange rectangle around chat app
Click to show the apex debug code output
We start with three simple classes, ChatApp, WorkingMessage, and VacationMessage. There is nothing inherently wrong with this design.
Firstly, do note that ChatApp is tightly coupled to both the WorkingMessage and VacationMessage classes. If the message classes change, then that likely will require changes to ChatApp.
Secondly, for the ChatApp class to compile, then both the messaging classes must also exist in the same org.
Thirdly, to change out what message is used when the user is in or out of office requires the Apex classes to be updated and re-deployed.
Animations:
Click to highlight the IMessage interface in lower region of slide
Click to highlight the IMessage usage in ChatApp
Click to highlight the ChatApp constructor
Our first refactoring step is to introduce an interface, IMessage, and update the WorkingMessage and VacationMessage classes to implement it.
Next, we update ChatApp’s greetings() method to code against the interface rather than knowing the specific implementation class. In this manner, we have decoupled the greetings() method from the details.
In this example, we have moved the logic for determing the message implementation to use into the constructor, a logical next step would be to either modify the constructor to accept an IMessage argument (this is known as constructor injection) or have the constructor use a service locator to look up the implementation to use. Either way, the next step is to decouple the ChatApp entirely from knowing about the IMessage implementations and only know about the interface (the abstraction).
In this example, we have moved the logic for determing the message implementation to use into the constructor, a logical next step would be to either modify the constructor to accept an IMessage argument (this is known as constructor injection) or have the constructor use a service locator to look up the implementation to use. Either way, the next step is to decouple the ChatApp entirely from knowing about the IMessage implementations and only know about the interface (the abstraction).
In this example, we have moved the logic for determing the message implementation to use into the constructor, a logical next step would be to either modify the constructor to accept an IMessage argument (this is known as constructor injection) or have the constructor use a service locator to look up the implementation to use. Either way, the next step is to decouple the ChatApp entirely from knowing about the IMessage implementations and only know about the interface (the abstraction).
Animations:
1. Click to show the textbox
Let’s step back from the code for a minute and talk about what we have developed with our refactoring efforts.
In the orange box, we have our ChatApp with a greetings() method and an IMessage property that refers to an interface in the blue box.
In the green boxes, we have two implementations of the IMessage interface that can be injected into the ChatApp.
Designing your apps to code to interfaces (abstractions) is the first step to decoupling dependencies from the code that uses them.
Because ChatApp’s operations do not specifically refer to the message implementations, then we can add/update/remove green boxes without causing code changes to the orange box (our application).
Then, for even more flexibility in our app’s design, we can dynamically determine the implementation class to use with a dependency injection framework that either looks up the class to use in configuration or runs custom Apex logic to determine the class the use.
Animation:
1. Click to highlight the bottom message classes
Let’s come back to the code again and begin to think about the benefits this design has when we look to packaging our app.
Because our ChatApp is decoupled from the VacationMessage and WorkMessage classes, they can each be developed and live in their own packages. The ony common dependency among them is a base package with the IMessage interface.
Animations:
Click to show sandbox cloud
Click to show green line draw to sandbox
Click to show orange line draw to sandbox
Click to show purple line draw to sandbox
Click to show CMDT text box
For development purposes, we could have different teams working on the separate packages in their own scratch orgs. Then when ready to do some integration testing, they can install their packages into a sandbox. Use a dependency injection framework or similar logic to then look up and inject into ChatApp the desired message implementation class.
https://github.com/afawcett/force-di
Demo 1: The ChatApp example discussed in the slides
Open developer console and show the refactored code using the force-di framework
Create a CMDT record to wire up VacationMessage as the message class to inject
Run anonymous apex to show the debug output printed the out of office message
Update the CMDT record to wire up WorkingMessage as the message class to inject
Run anonymous apex to show the debug output printed the in the office message
Demo 2: Object Action Override with Lightning component
In Object Manager, show the Widget__c object’s View action overridden with a lightning component
Open developer console to show the WidgetNewCmp using the <c:di_injector> tag
Create a CMDT record to wire up VacationMessage as the message class to inject
Demo 3: