SlideShare uma empresa Scribd logo
1 de 98
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Creating 'Vuetiful' Data-Driven User Interfaces

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 Evan Schultz
 
A Journey with React
A Journey with ReactA Journey with React
A Journey with ReactFITC
 
Android 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsAndroid 103 - Firebase and Architecture Components
Android 103 - Firebase and Architecture ComponentsKai Koenig
 
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)Gabor Varadi
 
The happy path to Android development
The happy path to Android developmentThe happy path to Android development
The happy path to Android developmentAndré Jonas
 
CQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellCQRS, ReactJS, Docker in a nutshell
CQRS, ReactJS, Docker in a nutshellAndrea Giuliano
 
CQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellCQRS, React, Docker in a Nutshell
CQRS, React, Docker in a NutshellClaudio D'Alicandro
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basicsAnton Narusberg
 
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 ApplicationsSebastian Fröstl
 
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 WorldLightbend
 
Yahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsYahoo presentation: JavaScript Events
Yahoo presentation: JavaScript EventsPeter-Paul Koch
 
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)Dan Robinson
 
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 testingGeert van der Cruijsen
 
Designing Events-first Microservices
Designing Events-first MicroservicesDesigning Events-first Microservices
Designing Events-first MicroservicesJ On The Beach
 
Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Advanced React Component Patterns - ReactNext 2018
Advanced React Component Patterns - ReactNext 2018Robert Herbst
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - IntroductionABC-GROEP.BE
 
Sperimentazioni lezione6 from_designtoapplication copy
Sperimentazioni lezione6 from_designtoapplication copySperimentazioni lezione6 from_designtoapplication copy
Sperimentazioni lezione6 from_designtoapplication copySalvatore Iaconesi
 
04 activities - Android
04   activities - Android04   activities - Android
04 activities - AndroidWingston
 

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

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
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - Introduction
 
Sperimentazioni lezione6 from_designtoapplication copy
Sperimentazioni lezione6 from_designtoapplication copySperimentazioni lezione6 from_designtoapplication copy
Sperimentazioni lezione6 from_designtoapplication copy
 
04 activities - Android
04   activities - Android04   activities - Android
04 activities - Android
 

Último

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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.pdfsudhanshuwaghmare1
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Creating 'Vuetiful' Data-Driven User Interfaces