Object Oriented Programming in enterprise level PHP is incredibly important. In this presentation, concepts like MVC architecture, data mappers, services, and domain and data models will be discussed. Simple demonstrations will be used to show patterns and best practices. In addition, using tools like Doctrine or integration with Salesforce or the AS/400 will also be discussed. There will be an emphasis on the practical application of these techniques as well - this isn't just a theoretical talk! This presentation is great for those just beginning to create enterprise applications as well as those who have had years of experience.
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Angular - Chapter 9 - Authentication and AuthorizationWebStackAcademy
Authentication is the process of validating a user on the credentials (username and password)
and provide access to the web application(ex: Email)
Authorization helps you to control access rights by granting or denying specific permissions
to an authenticated user (Ex: User / Manager / Admin).
In building large scale web applications MVC seems like a good solution in the initial design phase. However after having built a few large apps that have multiple entry points (web, cli, api etc) you start to find that MVC breaks down. Start using Domain Driven Design.
Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model.[1] The premise of domain-driven design is the following:
Placing the project's primary focus on the core domain and domain logic.
Basing complex designs on a model of the domain.
Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
Have more questions?
Twitter: @wajrcs
Web: http://waqaralamgir.tk
TypeScript lets you write JavaScript the way you really want to. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. TypeScript is pure object oriented with classes, interfaces and statically typed like C# or Java. The popular JavaScript framework Angular 2.0 is written in TypeScript. Mastering TypeScript can help programmers to write object-oriented programs and have them compiled to JavaScript, both on server side and client side.
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Angular - Chapter 9 - Authentication and AuthorizationWebStackAcademy
Authentication is the process of validating a user on the credentials (username and password)
and provide access to the web application(ex: Email)
Authorization helps you to control access rights by granting or denying specific permissions
to an authenticated user (Ex: User / Manager / Admin).
In building large scale web applications MVC seems like a good solution in the initial design phase. However after having built a few large apps that have multiple entry points (web, cli, api etc) you start to find that MVC breaks down. Start using Domain Driven Design.
Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model.[1] The premise of domain-driven design is the following:
Placing the project's primary focus on the core domain and domain logic.
Basing complex designs on a model of the domain.
Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems.
Have more questions?
Twitter: @wajrcs
Web: http://waqaralamgir.tk
TypeScript lets you write JavaScript the way you really want to. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. TypeScript is pure object oriented with classes, interfaces and statically typed like C# or Java. The popular JavaScript framework Angular 2.0 is written in TypeScript. Mastering TypeScript can help programmers to write object-oriented programs and have them compiled to JavaScript, both on server side and client side.
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
In Angular , events such as button click or any other sort of events can also be handled very easily. The events get triggered from the html page and are sent across to Angular JS class for further processing.
Data binding is a core concept in Angular and allows to define communication between a component and the DOM, making it very easy to define interactive applications without worrying about pushing and pulling data. There are four forms of data binding and they differ in the way the data is flowing.
A directive is a custom HTML element that is used to extend the power of HTML. Angular 2 has the following directives that get called as part of the BrowserModule module.
ngif
ngFor
If you view the app.module.ts file, you will see the following code and the BrowserModule module defined. By defining this module, you will have access to the 2 directives.
This is the content of first workshop os a 3 workshop series for learning to create Single Page Web Apps.
This focuses on introducing the HTML, CSS and Javascript to the newbies.
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
What is JavaScript?
JavaScript is a very powerful client-side scripting language. JavaScript is used mainly for enhancing the interaction of a user with the webpage. In other words, you can make your webpage more lively and interactive, with the help of JavaScript. JavaScript is also being used widely in game development and Mobile application development.
Service Oriented Architecture -Unit II - Modeling databases in xml Roselin Mary S
Modeling databases in xml
Steps:
1. Review the database schema.
2. Construct the desired XML document.
3. Define a schema for the XML document.
4. Create the JAXB binding schema.
5. Generate the JAXB classes based on the schema.
6. Develop a Data Access Object (DAO).
7. Develop a servlet for HTTP access.
jQuery provides a trivially simple interface for doing various kind of amazing effects. jQuery methods allow us to quickly apply commonly used effects with a minimum configuration. This tutorial covers all the important jQuery methods to create visual effects.
These projects demonstrated my ability to program Visual Studio .Net with C# as the programming language in 2 separate projects.
The Purpose of the first project was to build parts of the business tier for a retail Company. The goal is to create and test two assemblies. The first assembly is a class library project called Foundation. It will contain various interfaces and base classes.
The second assembly is also a Class Library project and its called AppTypes and it will contain various entity, collection and exception classes used by various business processes.
The Objective of the second project Is to create a database to support the principal functions of a library’s day-to-day operations: adding new members (adult and juvenile) and checking books in and out.
A Windows Forms-based front end application that will provide a librarian with a visual interface through which he or she may perform the desired functions.
And the project goal is to Design and develop a front end application that satisfies the four basic functionalities: Add Adult, Add Juvenile, Check in a book, Check Out a book.
Develop code that is easily maintainable.
Provide validation for all required fields.
Provide adequate error handling.
Produce a user interface that is intuitive, requiring minimal training for users while minimizing resource utilization.
A well designed API has to be discoverable. MuleSoft anypoint platform API portal provides a centralized place for discovering all the tools (API Documentation, Mock API testing etc) that anybody can use to successfully discover an API.
MuleSoft anypoint platform API portal provides API Notebook, a web-based tool to explore the API in JavaScript scripting workspace. API Notebook generates API client from API RAML specification to understand API’s resources, methods, required arguments etc and allow user to make live call to API for personalized testing.
Learning About JavaScript (…and its little buddy, JQuery!)Julie Meloni
Slides from an internal workshop at the GWU Library on 26 June 2012. The workshop was organized into three parts: "Understanding JavaScript Basics", "About the DOM (Document Object Model)", and "Where JQuery Fits in and How it Works".
Production-Ready BIG ML Workflows - from zero to heroDaniel Marcous
Data science isn't an easy task to pull of.
You start with exploring data and experimenting with models.
Finally, you find some amazing insight!
What now?
How do you transform a little experiment to a production ready workflow? Better yet, how do you scale it from a small sample in R/Python to TBs of production data?
Building a BIG ML Workflow - from zero to hero, is about the work process you need to take in order to have a production ready workflow up and running.
Covering :
* Small - Medium experimentation (R)
* Big data implementation (Spark Mllib /+ pipeline)
* Setting Metrics and checks in place
* Ad hoc querying and exploring your results (Zeppelin)
* Pain points & Lessons learned the hard way (is there any other way?)
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
In Angular , events such as button click or any other sort of events can also be handled very easily. The events get triggered from the html page and are sent across to Angular JS class for further processing.
Data binding is a core concept in Angular and allows to define communication between a component and the DOM, making it very easy to define interactive applications without worrying about pushing and pulling data. There are four forms of data binding and they differ in the way the data is flowing.
A directive is a custom HTML element that is used to extend the power of HTML. Angular 2 has the following directives that get called as part of the BrowserModule module.
ngif
ngFor
If you view the app.module.ts file, you will see the following code and the BrowserModule module defined. By defining this module, you will have access to the 2 directives.
This is the content of first workshop os a 3 workshop series for learning to create Single Page Web Apps.
This focuses on introducing the HTML, CSS and Javascript to the newbies.
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
What is JavaScript?
JavaScript is a very powerful client-side scripting language. JavaScript is used mainly for enhancing the interaction of a user with the webpage. In other words, you can make your webpage more lively and interactive, with the help of JavaScript. JavaScript is also being used widely in game development and Mobile application development.
Service Oriented Architecture -Unit II - Modeling databases in xml Roselin Mary S
Modeling databases in xml
Steps:
1. Review the database schema.
2. Construct the desired XML document.
3. Define a schema for the XML document.
4. Create the JAXB binding schema.
5. Generate the JAXB classes based on the schema.
6. Develop a Data Access Object (DAO).
7. Develop a servlet for HTTP access.
jQuery provides a trivially simple interface for doing various kind of amazing effects. jQuery methods allow us to quickly apply commonly used effects with a minimum configuration. This tutorial covers all the important jQuery methods to create visual effects.
These projects demonstrated my ability to program Visual Studio .Net with C# as the programming language in 2 separate projects.
The Purpose of the first project was to build parts of the business tier for a retail Company. The goal is to create and test two assemblies. The first assembly is a class library project called Foundation. It will contain various interfaces and base classes.
The second assembly is also a Class Library project and its called AppTypes and it will contain various entity, collection and exception classes used by various business processes.
The Objective of the second project Is to create a database to support the principal functions of a library’s day-to-day operations: adding new members (adult and juvenile) and checking books in and out.
A Windows Forms-based front end application that will provide a librarian with a visual interface through which he or she may perform the desired functions.
And the project goal is to Design and develop a front end application that satisfies the four basic functionalities: Add Adult, Add Juvenile, Check in a book, Check Out a book.
Develop code that is easily maintainable.
Provide validation for all required fields.
Provide adequate error handling.
Produce a user interface that is intuitive, requiring minimal training for users while minimizing resource utilization.
A well designed API has to be discoverable. MuleSoft anypoint platform API portal provides a centralized place for discovering all the tools (API Documentation, Mock API testing etc) that anybody can use to successfully discover an API.
MuleSoft anypoint platform API portal provides API Notebook, a web-based tool to explore the API in JavaScript scripting workspace. API Notebook generates API client from API RAML specification to understand API’s resources, methods, required arguments etc and allow user to make live call to API for personalized testing.
Learning About JavaScript (…and its little buddy, JQuery!)Julie Meloni
Slides from an internal workshop at the GWU Library on 26 June 2012. The workshop was organized into three parts: "Understanding JavaScript Basics", "About the DOM (Document Object Model)", and "Where JQuery Fits in and How it Works".
Production-Ready BIG ML Workflows - from zero to heroDaniel Marcous
Data science isn't an easy task to pull of.
You start with exploring data and experimenting with models.
Finally, you find some amazing insight!
What now?
How do you transform a little experiment to a production ready workflow? Better yet, how do you scale it from a small sample in R/Python to TBs of production data?
Building a BIG ML Workflow - from zero to hero, is about the work process you need to take in order to have a production ready workflow up and running.
Covering :
* Small - Medium experimentation (R)
* Big data implementation (Spark Mllib /+ pipeline)
* Setting Metrics and checks in place
* Ad hoc querying and exploring your results (Zeppelin)
* Pain points & Lessons learned the hard way (is there any other way?)
MOPs & ML Pipelines on GCP - Session 6, RGDCgdgsurrey
MLOps Lifecycle
ML problem framing
ML solution architecture
Data preparation and processing
ML model development
ML pipeline automation and orchestration
ML solution monitoring, optimization, and maintenance
NoSQL Data Modeling Foundations — Introducing Concepts & PrinciplesScyllaDB
In this talk, Pascal Desmarets, CEO and Founder of Hackolade discusses the foundations of NoSQL data modeling. He highlights:
- Why is data modeling a key success factor?
- “Sweet spot” use cases where NoSQL shines the most
- Basic principles of Data Modeling for ScyllaDB
Enterprise PHP: mappers, models and servicesAaron Saray
One of the greatest failures PHP has is not that it is a bad language, but that it isn't marketed as a good language. Since it's so easy to do it bad, a lot of people do just that. However, there is hope. Businesses ARE using PHP for Enterprise! You just need to apply a solid foundation to the language to get to that Enterprise level.
With our mind on the Enterprise sphere, it's time to take PHP programming to a more advanced level. To get the most out of this talk, you should already be familiar with object oriented programming concepts in PHP. To begin with, I'll talk about the need for a service layer, data mappers, and business object models. Then I'll demonstrate examples of how to do it right. As an added bonus, I'm not going to just tell you why it's best practice and a "good idea" - I'm going to SHOW you. This might be the first time in your life that you realize that changes in architecture, supporting infrastructure, and business requirements don't have to be as painful as you once thought!
Dirty data? Clean it up! - Datapalooza Denver 2016Dan Lynn
Dan Lynn (AgilData) & Patrick Russell (Craftsy) present on how to do data science in the real world. We discuss data cleansing, ETL, pipelines, hosting, and share several tools used in the industry.
Slides for application prototyping workshop on web and mobile application design.
We discussed
- product and project requirements definition
- rationale for wireframes, mockups, prototypes
- functional prototypes vs production sw
- tools: Balsamiq, myBalsamiq, Webflow
- MVP (minimum viable product) implementation in Javascript, HTML/CSS on node.js
As the complexity of choosing optimised and task specific steps and ML models is often beyond non-experts, the rapid growth of machine learning applications has created a demand for off-the-shelf machine learning methods that can be used easily and without expert knowledge. We call the resulting research area that targets progressive automation of machine learning AutoML.
Although it focuses on end users without expert knowledge, AutoML also offers new tools to machine learning experts, for example to:
1. Perform architecture search over deep representations
2. Analyse the importance of hyperparameters.
Different patterns of microservices explored in one of my talks.
The main purpose of the talk is to present different types of "microservice patterns" exists at different levels. Talk focuses on some of the patterns in detail and some of them very high level to keep the content well within the time.
Following are the patterns explored with the help of eCommerce example.
"decompose by domain", "stranger", "database per service", "synchronous and asynchronous" patterns, "circuit breaker", "sidecar", "orchestrator", "choreography", "saga" and discovery patterns.
Thanks to EverestEngineering for conducting such a nice event in Hyderabad, India. All the talks and the related content is published at below link.
https://everest.engineering/#post-events
Canadian Experts Discuss Modern Data Stacks and Cloud Computing for 5 Years o...Daniel Zivkovic
Two #ModernDataStack talks and one DevOps talk: https://youtu.be/4R--iLnjCmU
1. "From Data-driven Business to Business-driven Data: Hands-on #DataModelling exercise" by Jacob Frackson of Montreal Analytics
2. "Trends in the #DataEngineering Consulting Landscape" by Nadji Bessa of Infostrux Solutions
3. "Building Secure #Serverless Delivery Pipelines on #GCP" by Ugo Udokporo of Google Cloud Canada
We ran out of time for the 4th presenter, so the event will CONTINUE in March... stay tuned! Compliments of #ServerlessTO.
If everyone write their documents with the intent that they be standardized and converted, conversion to S1000D would be easy. But the reality is that most legacy data lacks the details needed for a full conversion or contains anomalies and irrelevant text. This leads us to the question one must ask: should I convert, rewrite, or manually convert the legacy data? In this presentation, we will attempt to answer this question by reviewing:
o A very quick introduction to S1000D conversions
o What the technical headaches are
o Whether to convert or rewrite
o Planning for a good conversion experience
o What the timeline looks like
o Some tools to help
Using Machine Learning & Artificial Intelligence to Create Impactful Customer...Costanoa Ventures
Jeremy Hermann discusses Uber’s ML-as-a-service platform (Michelangelo) and how they designed it to cover the end-to-end ML workflow: manage data, train, evaluate, and deploy models, make predictions, monitor predictions and support traditional ML models, time series forecasting, and deep learning.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
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.
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
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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!
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
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.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
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.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
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.
2. Why trust this guy?
● Programming for
over 2 decades
● Web Development
Manager
● Author of WROX
Professional PHP
Design Patterns
● MKEPUG CoFounder
3. Why are we here?
● Focus on Enterprise Development
● Understand decoupling
● See real reasons for doing things to pattern
4. Why is this important?
● PHP is everywhere
● PHP runs organizations
● IT changes faster than any other area
● Long term investment
○ Do things the right way, and be valuable - longer
■ quality
■ speed
■ maintainability
5. Lets get into it
Disclaimer:
● There are many ways to refer to the
concepts discussed next
● Don't get stuck on names
○ Get stuck on the ideas
6. What are the main topics?
● Data Models
● Domain Logic Models
● Mappers
● Services
7. Data Model
● This class represents a real entity in the
organization
● Examples of entities:
○ Visitor of the website
○ Product for sale: computer
○ Mail message
○ Blog entry, Comment
8. Data Model (con't)
● Data models contain properties that are
unique/descriptive to that entity
○ Harddrive for sale: has property of:
■ size
■ suggested sale price
■ speed
○ Does not have property of:
■ favorite song
● Data models contain methods that
understand their properties
○ User has methods:
■ fullname() - brings together properties
9. Data Model (con't)
● Very dumb
● Harddrive example:
○ has a property called suggested sale price
○ has a property called sold price
○ What happens if the sold price is less than the
suggested sale price?
■ This model does not care. It's a dumb data store
10. Sneak peek: Domain Logic Model
● Validation of the sale price would be done in
the domain model
● What about string length?
○ Understand that your limits should be on your
domain product
■ Is it true that your limit for a product is 255 chars
- just cuz its a varchar(255) column?
● Your data provider should handle your requirements, not the
other way around
11. To Summarize Data Model
● Represents some sort of entity
● Has properties of that entity
● Has methods that understand its own
properties only
● Dumb
● Could be really messed up if it doesn't have
a relationship with a Domain Object
12. Domain Logic Model
● Represents the logical steps and decisions
that make your app (business) unique
● Handles simple data validation
● Handles complex business rules
● The gatekeeper of the Data Model
13. Domain Logic Model (con't)
● Has relationships with Data Models
○ Can be 1-1, 1-N, N-1, N-N, depending on your
choices and architecture. Probably is a hybrid
● Has methods that comprehend and
understand Data Models
● Has properties or constants from the
business configuration
○ Maximum amount of discount on sale
14. Domain Logic Model (con't)
● Going back to harddrive example
○ Harddrive data object has suggested price of $40
○ Input has the sale price coming in at $30
○ Domain Logic Model to the rescue!
● Data Logic Model validates the sale
○ Property says maximum discount is 20%
○ Input discount is 25%
○ Rejects input, does not allow Data Model to accept
$30 as the sale price
○ Perhaps maximum discount is 0% & must be exact
○ Rejects input if input is not exactly $40
15. Domain Logic Model (con't)
● Another example
○ Blog Entry Model has a title
○ Business says Blog entry titles should not be longer
than 100 characters
○ Domain Logic Model will validate that the input ready
for this Blog Entry model is <= 100
16. Why is the separation important?
● Two reasons
○ Reuse
■ 100 different items for sale, but they don't have a
common ancestor (ie, you can't extend a class.
In this example, we choose not to use traits)
■ Each one must sell for the exact sale price
■ Only ONE object is required to validate that each
time - instead of duplicating that code in each
model
■ ** Design patterns - there are more options than
just extending forever!!
17. Why is the separation important? (con't)
● Two reasons
○ Data models should just represent an entity, not the
logic behind it
■ Your car has a maximum load. The steel doesn't
know that
■ Harddrive example!
● Harddrive is for sale at main warehouse. It is the same
harddrive for 10 resellers.
● Each reseller has different properties that determine the final
sale price
● The harddrive ITSELF never changes - so that class should
be exactly the same for all retailers
18. Summarize Domain Logic Models
● Understands the business logic
● Comprehends data models
● The Gatekeeper of valid data
19. Data Mapper Object
● Data mappers map data from a Data Access
Object to Data Models
● Data Access Object
○ not covered too much in this talk
○ provides access to a data source like a database,
salesforce, as400, REST, via a predictable interface
● Concerned with retrieving or persisting a
single Data Model (or collection)
20. Data Mapper Object (con't)
● Not particularly smart
○ will work to retrieve data based on parameters
○ will populate a Data Model generally without
validation
■ ** caveat: sometimes a hybrid is created when
working with remote sources to introduce Domain
Logic Models here... but that's another talk
● Works directly with the Data Model
○ Creates new instances
○ Understands properties
○ Determines what to persist
21. Data Mapper Object (con't)
● Harddrive example
○ Can take a Harddrive Data Model and save it in the
proper format to MySQL
■ Remember, the object has the data, but perhaps
the database is normalized
○ Has a method to find a harddrive by serial number
■ Internally, determines what db field is the serial
number, runs the query, and then populates the
model with the full properties
○ Build collection
■ findAll() - parameter where size is > 250gb
22. Why is Data Mapper Important?
● Data Models are dumb
○ Don't care what their data is or where it came from
● Domain Logic Models only care about
decisions
○ They don't care about the source
● Something needs to retrieve and persist
● Data Mapper is still not your "public"
interface
○ (that's a service) - can swap out Data Mappers
23. Summarize Data Mapper Model
● Works directly with Data Model and Data
Access Objects
● Retrieves and Persists Data Models
● Understands properties of Data Models
○ Can map data source to properties
○ Can determine retrieval method based on properties
24. Services
● A lot of confusion with this term
○ Sometimes they're the public interface of your app
○ Other times they reflect connections to third parties,
like Amazon or Salesforce
○ Doesn't matter - let's just move to the concept
● Services are the public face to your
controllers
○ These classes allow for calling methods that create,
persist, modify, and retrieve data
○ Used to translate and process information from user
input or other helper classes
25. Services (con't)
● Services are responsible for providing the
Data Model or collection to the consumer
● Services act as the layer to work with your
external consumer or framework
● Services do processing that is the same no
matter what Data Model, Data Mapper, or
other Service is involved
○ retrieving data from a helper model, filtering search
term and city/state, etc.
26. Services (con't)
● Harddrive example!
○ Service::save() would accept a harddrive model,
grab the proper mapper (perhaps the harddrive
mapper associated with mysql), and introduce those
two. It would then reintroduce the saved model
○ Service::findBySerialNumber() would accept a serial
number parameter, translate that into a parameter
for the mapper, get the mapper, retrieve the
collection, and pass that back to the consumer
27. Services (con't)
● Harddrive example (con't)
○ Service::validateUpdate() - would take user input in,
validate that it is valid and could match up with the
Data Model, and return whether the input was
acceptable or not
○ Service::populateModel() - takes that validated user
input and the model, calls the mapper with this
information to populate it (mapper knows fields, not
services), and returns it
28. Why are Services Important?
● Services are the public interfaces to the rest
of the classes in your app
● Things that you allow 'the consumer' to do
are only defined in the service layer
● If data sources, mappers, models change,
your service stays the same, and so does
the consumer side of your app
29. Summarize Services
● Public interface to the rest of your code
● Understand Data Models, Domain Models,
Mappers
● Execute processing that is always the same,
never differs no matter what objects are in
use
30. Example Code
● Let's see this in action. Things to remember:
● This is not a whole app - don't treat it as one
● It is example code
● This is not a whole app
● Don't forget, this is not a completed app
31. Just trying to demonstrate the concepts
with the least amount of distraction!
32. Layout - Overview
Main layout of files
We will cover each
code section
50. Users must be sync'd to AS400
● Previously was from mysql db
● Need to change as little code as possible
● The only thing changing is how we map data
○ to / from the data source
○ "map"... mapper
● Lets substitute in a different mapper
51. Modify User Service
This is the ONLY change to your code.
All else is NEW code.