SlideShare una empresa de Scribd logo
1 de 98
Descargar para leer sin conexión
VUETIFUL
DATA-DRIVEN USER INTERFACES
EVAN SCHULTZ
VUETIFUL
DATA-DRIVEN USER INTERFACES
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
▸ Props and Events
DATA DRIVEN INTERFACES
WHATS COMING UP?
▸ What is a Data Driven Dynamic UI?
▸ Understanding `<component>`
▸ Basic use
▸ Props and Events
▸ Dynamic Forms
WHAT DOES IT
MEAN
DATA DRIVEN UI
“
WE DON’T KNOW THE COMPONENTS UNKNOWN UNTIL RUNTIME
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
▸ Application State
WHAT DO WE MEAN?
UI BASED ON RUNTIME DATA
▸ API Response
▸ Application State
▸ Data Driven Configuration
“
WHEN WOULD YOU NEED THIS?
“
“DYNAMIC COMPONENTS ARE NOT A COMMON REQUIREMENT”
BLOG POST I (SORTA) DISAGREE WITHBLOG POST I (SORTA) DISAGREE WITH
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
▸ Form Generators
WHAT DO WE MEAN?
CAN BE AN ELEGANT SOLUTION FOR
▸ Workflow Builders
▸ Personalization
▸ A/B Testing
‣ Data Driven Customization
▸ Form Generators
▸ … and lots more
WHAT DO WE MEAN?
“
DATA / STATE UITRANSFORM
“
BASICALLY
WE WANT TO GO FROM THIS
TO THIS
COMPONENT
THE BASICS
WHY AM I EXCITED?
“
SO EASY IT’S ALMOST BORING*
“
SO EASY IT’S ALMOST BORING*
* If I haven’t felt the pain points with other frameworks - I’d just expect this is how they work.
“
SPEND TIME BUILDING SOLUTIONS WITH THEM.
“
SPEND TIME BUILDING SOLUTIONS WITH THEM.
NOT TRYING TO FIGURE OUT HOW TO LOAD COMPONENTS DYNAMICALLY.
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
<component :is=“componentType”/>
<section class="markup-demo-wrap">
<component :is="activeView" v-model="contact">
</component>
</section>
<component :is=“componentType"/>
THE BASICS - COMPONENT
▸ Component is a place holder
▸ Does not introduce any host elements
<component :is=“componentType”/><component :is=“componentType"/>
THE BASICS - COMPONENT
<component :is=“componentType"/>
THE BASICS - COMPONENT
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
▸ Computed Property
<component :is="componentType"/>
THE BASICS - COMPONENT
▸ :is can bound to
▸ Prop
▸ Data Property
▸ Computed Property
▸ Can be derived from Vuex store
<component :is="componentType"/>
THE BASICS - COMPONENT
<component :is="propExample" />
<template>
<is-prop :activeView="activeView">

</is-prop>
</template>
<script>
export default {
name: "IsPropContainer",
computed: {
activeView(){
return this.isContact ?
"ContactDetails" : "AddressDetails";
}
</script>
<template>
<component 

:is="activeView"
v-model="contact"/>
</template>
<script>
export default {
name: "IsProp",
props: ["activeView"],
components: {
/* ... */
},
</script>
PARENT COMPONENT CHILD LOADING DYNAMIC BASED ON PROP
THE BASICS - COMPONENT
<component :is="propExample" />
THE BASICS - COMPONENT
:IS A COMPUTED PROPERTY
<component :is="activeView" v-model="contact" />
<script>
export default {
/* .... */
computed: {
activeView: function() {
return this.isContact ? "ContactDetails" : "AddressDetails";
}
},
data() {
return { isContact: true, }
}
</script>
THE BASICS - COMPONENT
<component :is="computedExample"/>
PROPS AND EVENTS
COMPONENTS
<address-view
:street1="contact.street1"
:street2="contact.street1"
:country="contact.street1"
:province="contact.street1"
:postalCode=“contact.street1"/>
<contact-view
:firstName="contact.firstName"
:lastName="contact.lastName"
:userName="contact.userName"
:email=“contact.email"/>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"


:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"


:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
PROPS AND EVENTS
PROPS
▸ Props can be bound just like any other component
▸ Unknown props will not cause errors
CONTACT PROPS
ADDRESS PROPS
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"
:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
V-BIND BEFORE
PROPS AND EVENTS
DO WE NEED TO KNOW ALL PROPS UP FRONT?
▸ No, “v-bind” to the rescue
▸ Object Properties that match Props get bound as Props
<component :is="activeView"
:firstName="contact.firstName"
:lastName="contact.lastName"
:password="contact.password"
:email="contact.email"
:userName="contact.userName"
:street1="contact.street1"
:street2="contact.street2"
:country="contact.country"
:postalCode="contact.postalCode"
:province="contact.province">
</component>
V-BIND BEFORE
<component :is="activeView"
v-bind="contact">
</component>
V-BIND AFTER
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
▸ inheritAttrs: false
PROPS AND EVENTS
WHAT HAPPENS TO THE OTHER PROPS?
▸ Available in $attrs
▸ inheritAttrs: true (default)
▸ Become attributes on the root of the component
▸ inheritAttrs: false
▸ Can control how they are bound
PROPS AND EVENTS
INHERITATTRS: TRUE (DEFAULT)
▸ Become attributes on the root element of the component
contact: {
street1: "19 York Street",
street2: "6th Floor",
country: "Canada",
postalCode: "N1N 2N2",
province: "Ontario",
firstName: "Evan",
lastName: "Schultz",
password: "iwantmymoney",
email: "evan@",
userName: "e-schultz",
}
CONTACT UNKNOWN PROPS
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
<label>{{label}}</label>
<input type="text"
:name="name"
:placeholder="placeholder"
v-bind="$attrs">
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
▸ Can pass down to other components
<label>{{label}}</label>
<input type="text"
:name="name"
:placeholder="placeholder"
v-bind="$attrs">
PROPS AND EVENTS
INHERITATTRS: FALSE
▸ Can control where they are bound
▸ Can pass down to other components
▸ Useful for working with other libraries
<b-dropdown :value="value"
@input="$emit('input',$event)"
v-bind="$attrs">
<!-- ... -->
<b-dropdown-item v-for="(option) in options" :key="option"
:value="option">
{{option}}
</b-dropdown-item>
</b-dropdown>
PROPS AND EVENTS
EVENTS
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
▸ Can bind custom events
PROPS AND EVENTS
EVENTS
▸ Can bind DOM events
▸ @click
▸ @focus
▸ Can bind custom events
▸ @upperCase=“switchCase(‘upperCase')"
FORMS
PUTTING IT TOGETHER
FORMS
THE SETUP
FORMS
THE SETUP
▸ JSON Schema
FORMS
THE SETUP
▸ JSON Schema
▸ v-for over the collection
FORMS
THE SETUP
▸ JSON Schema
▸ v-for over the collection
▸ Playing nice with v-model
schema: [{
fieldType: "SelectList",
name: "title",
multi: false,
label: "Title",
options: ["Ms", "Mr", "Mx", "Dr", "Madam", "Lord"]
},
{
fieldType: "TextInput",
placeholder: "First Name",
label: "First Name",
name: "firstName"
},
{
fieldType: "NumberInput",
placeholder: "Age",
name: "age",
label: "Age",
minValue: 0
}
FORMS
EXAMPLE COMPONENT - TEXT INPUT
<template>
<div>
<label>{{label}}</label>
<input type="text"
:name=“name"
:value=“value"
:placeholder="placeholder">
</div>
</template>

<script>
export default {
name: "TextInput",
props: ["placeholder", "label", “name”, "value"]
};
</script>
FORMS
V-FOR
<component v-for="(field, index) in schema" :key="index"
:is="field.fieldType" v-bind="field">
</component>
FORMS
<component v-for="(field, index) in schema" :key="index"
:is="field.fieldType" v-bind="field">
</component>
V-IF
WHAT ABOUT
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
▸ Can quickly bloat templates
FORMS
WHAT ABOUT V-IF
▸ Still useful for simple cases
▸ Can quickly bloat templates
▸ Repetitive code can become error prone
FORMS
WHAT ABOUT V-IF
<div v-for="(field, index) in schema" :key="index">
<text-input v-if="field.fieldType === 'TextInput'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></text-input>
<password-input v-else-if="field.fieldType === 'PasswordInput'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></password-input>
<select-list v-else-if="field.fieldType === 'SelectList'"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props"></select-list>
<!--- and repeat for each dynamically loadable component -->
</div>
FORMS
WHAT ABOUT V-IF
<component v-for="(field, index) in schema"
:key="index"
:is="field.fieldType"
:value="formData[field.name]"
@input="updateForm(field.name, $event)"
v-bind="field.props">
</component>
DATA BINDING
FORMS
FORMS
DATA BINDING - EXPLORING V-MODEL
<input v-model="value">
<input :value="value" @input=“value = $event.target.value">
IS SUGAR ON TOP OF
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
▸ Let the parent provide a value to the child component
▸ Let the parent know that the value has changed
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
▸ Bind to “:value”
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
▸ Bind to “:value”
▸ Emit an “@input” event to notify the parent
FORMS
DATA BINDING - GOALS FOR THE COMPONENT
<label>{{label}}</label>
<input type="text"
:name="name"
:value="value"
@input="$emit('input',$event.target.value)"
:placeholder="placeholder">
FORMS
DATA BINDING - COMPONENT WITH V-MODEL
<component v-for="(field, index) in schema"
:key="index"
:is="field.fieldType"
v-model="formData[field.name]"
v-bind="field">
</component>
export default {
  data() {
return {
formData: {
firstName: 'Evan'
},
schema: [ { /* .... */ }]
}
DEMO TIME
LETS SEE IT
THATS ALL
THANKS!
▸ Repo: bit.ly/js-camp-2018-demo
▸ Demo:bit.ly/js-camp-bcn-demo
▸ Blog: bit.ly/data-driven-vue
@e_p82
e-schultz
THANKS! Evan Schultz
@e_p82
e-schultz
evan@rangle.io

Más contenido relacionado

La actualidad más candente

Product Strategy and Go to Market Model_Sample
Product Strategy and Go to Market Model_SampleProduct Strategy and Go to Market Model_Sample
Product Strategy and Go to Market Model_Sample
Paresh Baghel
 
HUBSPOT AND MOTION AI CHATBOT ENABLED CRM.pptx
HUBSPOT AND MOTION AI  CHATBOT ENABLED CRM.pptxHUBSPOT AND MOTION AI  CHATBOT ENABLED CRM.pptx
HUBSPOT AND MOTION AI CHATBOT ENABLED CRM.pptx
ajithv37
 
Michel et Augustin Recommandation marketing 2012
Michel et Augustin Recommandation marketing 2012Michel et Augustin Recommandation marketing 2012
Michel et Augustin Recommandation marketing 2012
Yoann LALEU
 
10 step marketing plan - mlee - fiesta spaghetti
10 step marketing plan - mlee - fiesta spaghetti10 step marketing plan - mlee - fiesta spaghetti
10 step marketing plan - mlee - fiesta spaghetti
Maureen Martine Lee
 

La actualidad más candente (20)

Historique but
Historique butHistorique but
Historique but
 
Product Strategy and Go to Market Model_Sample
Product Strategy and Go to Market Model_SampleProduct Strategy and Go to Market Model_Sample
Product Strategy and Go to Market Model_Sample
 
Étude de cas "Havaianas"
Étude de cas "Havaianas"Étude de cas "Havaianas"
Étude de cas "Havaianas"
 
Maison du monde
Maison du mondeMaison du monde
Maison du monde
 
L'occitane en provence
L'occitane en provence L'occitane en provence
L'occitane en provence
 
Product Teardown - Flobiz - MyBillBook
Product Teardown - Flobiz  - MyBillBookProduct Teardown - Flobiz  - MyBillBook
Product Teardown - Flobiz - MyBillBook
 
Hello Fresh
Hello FreshHello Fresh
Hello Fresh
 
How to design a modern Marketing and Communications department in an agile ma...
How to design a modern Marketing and Communications department in an agile ma...How to design a modern Marketing and Communications department in an agile ma...
How to design a modern Marketing and Communications department in an agile ma...
 
Le marché de la bijouterie en France en 2014
Le marché de la bijouterie en France en 2014Le marché de la bijouterie en France en 2014
Le marché de la bijouterie en France en 2014
 
Giải Pháp DMS Quản Lý Hệ Thống Phân Phối VLXD
Giải Pháp DMS Quản Lý Hệ Thống Phân Phối VLXDGiải Pháp DMS Quản Lý Hệ Thống Phân Phối VLXD
Giải Pháp DMS Quản Lý Hệ Thống Phân Phối VLXD
 
Subaru plans book
Subaru plans bookSubaru plans book
Subaru plans book
 
Copy Strat - Oasis
Copy Strat - Oasis Copy Strat - Oasis
Copy Strat - Oasis
 
HUBSPOT AND MOTION AI CHATBOT ENABLED CRM.pptx
HUBSPOT AND MOTION AI  CHATBOT ENABLED CRM.pptxHUBSPOT AND MOTION AI  CHATBOT ENABLED CRM.pptx
HUBSPOT AND MOTION AI CHATBOT ENABLED CRM.pptx
 
Michel et Augustin Recommandation marketing 2012
Michel et Augustin Recommandation marketing 2012Michel et Augustin Recommandation marketing 2012
Michel et Augustin Recommandation marketing 2012
 
Best of Branded Content Marketing 2015: Germany, Austria and Switzerland - Ed...
Best of Branded Content Marketing 2015: Germany, Austria and Switzerland - Ed...Best of Branded Content Marketing 2015: Germany, Austria and Switzerland - Ed...
Best of Branded Content Marketing 2015: Germany, Austria and Switzerland - Ed...
 
10 step marketing plan - mlee - fiesta spaghetti
10 step marketing plan - mlee - fiesta spaghetti10 step marketing plan - mlee - fiesta spaghetti
10 step marketing plan - mlee - fiesta spaghetti
 
Brand Review - Oasis / Coca Cola / Orangina
Brand Review - Oasis / Coca Cola / OranginaBrand Review - Oasis / Coca Cola / Orangina
Brand Review - Oasis / Coca Cola / Orangina
 
An Introduction to Email Marketing Best Practices
An Introduction to Email Marketing Best PracticesAn Introduction to Email Marketing Best Practices
An Introduction to Email Marketing Best Practices
 
Analyse de l'écosystème de Maisons du Monde
Analyse de l'écosystème de Maisons du MondeAnalyse de l'écosystème de Maisons du Monde
Analyse de l'écosystème de Maisons du Monde
 
Nature Et Decouverte
Nature Et DecouverteNature Et Decouverte
Nature Et Decouverte
 

Similar a Creating 'Vuetiful' Data-Driven User Interfaces

Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
Anton Narusberg
 

Similar a Creating 'Vuetiful' Data-Driven User Interfaces (20)

Kakunin E2E framework showcase
Kakunin E2E framework showcaseKakunin E2E framework showcase
Kakunin E2E framework showcase
 
Me and my importers
Me and my importersMe and my importers
Me and my importers
 
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
Design Patterns for JavaScript Web Apps - JavaScript Conference 2012 - OPITZ ...
 
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
Advantages of Vue JS - Presented at the Rangle.io VueJS Meetup in January
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with React
 
Android 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsAndroid 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture Components
 
Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)Architecting Single Activity Applications (With or Without Fragments)
Architecting Single Activity Applications (With or Without Fragments)
 
The happy path to Android development
The happy path to Android developmentThe happy path to Android development
The happy path to Android development
 
CQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellCQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshell
 
CQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellCQRS, React, Docker in a Nutshell
CQRS, React, Docker in a Nutshell
 
Docker cqrs react
Docker cqrs reactDocker cqrs react
Docker cqrs react
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
 
From Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS ApplicationsFrom Big to Massive – Scalability in AngularJS Applications
From Big to Massive – Scalability in AngularJS Applications
 
Designing Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native WorldDesigning Events-First Microservices For A Cloud Native World
Designing Events-First Microservices For A Cloud Native World
 
React & Flux Workshop
React & Flux WorkshopReact & Flux Workshop
React & Flux Workshop
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript Events
 
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
Designing The Right Schema To Power Heap (PGConf Silicon Valley 2016)
 
Xamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testingXamarin Test Cloud - from zero to hero in automated ui testing
Xamarin Test Cloud - from zero to hero in automated ui testing
 
Designing Events-first Microservices
Designing Events-first MicroservicesDesigning Events-first Microservices
Designing Events-first Microservices
 
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Creating 'Vuetiful' Data-Driven User Interfaces