SlideShare ist ein Scribd-Unternehmen logo
1 von 109
Downloaden Sie, um offline zu lesen
Configuring in the Browser, Really!
Tim Geisler, Heribert Schütz
webXcerpt Software GmbH
tg@webxcerpt.com, hs@webxcerpt.com
CWG 2015, Prague 2015-04-28
Our History
● Product configuration since 2002,
with SAP since 2007
● Built and maintained
– Models
– Modeling environments
– Configuration frameworks
Problem 1: Modeling
Problem 1: Modeling
● Framework-specific modeling tools
Problem 1: Modeling
● Framework-specific modeling tools
● Lack of abstraction features and data structures
– Loops, functions
– Arrays, objects (with methods)
Problem 1: Modeling
● Framework-specific modeling tools
● Lack of abstraction features and data structures
– Loops, functions
– Arrays, objects (with methods)
● Models not represented as human-readable text
– Edit, search & replace
– Discuss, annotate
– Compare, manage revisions
Problem 1: Modeling – Solution A
Problem 1: Modeling – Solution B
Problem 1: Modeling – Solution B
Our solution so far:
Problem 1: Modeling – Solution B
Our solution so far:
● Customer-specific modeling languages
Problem 1: Modeling – Solution B
Our solution so far:
● Customer-specific modeling languages
● Modeling environments based on Eclipse and
Xtext
Problem 1: Modeling – Solution B
Our solution so far:
● Customer-specific modeling languages
● Modeling environments based on Eclipse and
Xtext
● Automated generation of model representation
for target framework
Problem 1: Modeling – Solution B
Our solution so far:
●
Customer-specific modeling languages
● Modeling environments based on Eclipse and Xtext
● Automated generation of model representation for target framework
●
See also CWG talks
– Vienna 2010:
ConfigModeler and VClipse -
languages and IDEs
for product modeling
– Cologne 2011:
Domain-Specific Languages
for Product Modeling
– Berlin 2012:
How to Build Your Own
Product-Modeling Environment?
Problem 1: Modeling – Solution C
Problem 1: Modeling – Solution C
● Use a programming language
– For application-specific inferencing
– But also to build up the model
Problem 1: Modeling – Solution C
● Use a programming language
– For application-specific inferencing
– But also to build up the model
● Use programming tools
– Editors/IDEs
– Debuggers and profilers
– Revision control
– Test and CI frameworks
Problem 1: Modeling – Solution C
● Use a programming language
– For application-specific inferencing
– But also to build up the model
● Use programming tools
– Editors/IDEs
– Debuggers and profilers
– Revision control
– Test and CI frameworks
● General purpose tools and languages
– Maturity
– Re-usable knowledge, may already be available
– Large communities and „ecosystems“
Problem 2: User Experience
Problem 2: User Experience
Problem 2: User Experience
● Performance
Problem 2: User Experience
● Performance
– Client-server round trips
Problem 2: User Experience
● Performance
– Client-server round trips
● Rigid UI
– UI structure imposed by framework
– High costs for application-specific UI
Problem 2: User Experience
● Performance
– Client-server round trips
● Rigid UI
– UI structure imposed by framework
– High costs for application-specific UI
● Need to be online
Problem 2: User Experience
● Performance
– Client-server round trips
● Rigid UI
– UI structure imposed by framework
– High costs for application-specific UI
● Need to be online
Increasing gap:
Configurators ↔ Modern web applications
In the meantime ...
In the meantime ...
In the meantime ...
Client hardware
improved
In the meantime ...
Client hardware
improved
● CPU
● Memory
In the meantime ...
Client hardware
improved
● CPU
● Memory
● Even on mobiles
In the meantime ...
Client hardware
improved
● CPU
● Memory
● Even on mobiles
… but the speed of light remained the same.
In the meantime ...
In the meantime ...
Browser improvements:
In the meantime ...
Browser improvements:
● JavaScript performance
In the meantime ...
Browser improvements:
● JavaScript performance
● Standardized features
– UI extensions
– Offline applications
– Local storage
– …
In the meantime ...
Browser improvements:
● JavaScript performance
● Standardized features
– UI extensions
– Offline applications
– Local storage
– …
● Improved compatibility
http://kangax.github.io/compat-table/es5/
In the meantime ...
A software ecosystem for web applications
flourished:
● Web-application frameworks
● Preprocessors for JavaScript/HTML/CSS
● Libraries
● Build tools
● ...
In the meantime ...
In the meantime ...
Web browsers have become a
serious application platform.
In the meantime ...
Web browsers have become a
serious application platform.
Even for the business logic.
In the meantime ...
Web browsers have become a
serious application platform.
Even for the business logic.
And they are getting better and better.
Configuring in the Browser:
Configuring in the Browser:
Implement configurators in JavaScript.
Configuring in the Browser:
Implement configurators in JavaScript.
JavaScript is also
a reasonable choice for modeling.
Demo
Optical Transport
Demo Example:
Hierarchical Configuration
SwitchRackSolution Board (Module) Transceiver (Wavelength)
Demo
http://opencpq.webxcerpt.com/examples/optical-transport/
^
– a JavaScript-based Configurator Framework
● Building-block library
– Components
– Dependencies
– a JavaScript-based Configurator Framework
● Building-block library
– Components
– Dependencies
● Combine building blocks with JavaScript
– a JavaScript-based Configurator Framework
● Building-block library
– Components
– Dependencies
● Combine building blocks with JavaScript
● Add application-specific building blocks
– a JavaScript-based Configurator Framework
● Building-block library
– Components
– Dependencies
● Combine building blocks with JavaScript
● Add application-specific building blocks
● A light-weight layer based on ReactJS and
Bootstrap
– a JavaScript-based Configurator Framework
– an Open-Source Project
Source code and links to live demos
available on Github:
https://github.com/webXcerpt/openCPQ
– an Open-Source Project
Source code and links to live demos
available on Github:
https://github.com/webXcerpt/openCPQ
Liberal MIT license
– an Open-Source Project
Source code and links to live demos
available on Github:
https://github.com/webXcerpt/openCPQ
Liberal MIT license
Use, adapt,
integrate, contribute!
– an Open-Source Project
Modeling with openCPQ:
Cases with Details
Modeling with openCPQ:
Cases with Details
var configuration = CSelect([
unansweredCase("Select Configuration Mode"),
ccase("Switches", "Optical Switches",
CQuantifiedList({}, "Optical Switch",
opticalSwitches)),
ccase("Rack", "Racks",
CQuantifiedList({}, "Rack",
rack)),
ccase("Solution", "Solution",
solution),
]);
cases
details
Modeling with openCPQ:
Cases with Details
function boards(isDoubleWidthSlot) {
return CSelect([
for (b of components.boards)
if (!b.doubleWidth ||
isDoubleWidthSlot)
ccaseBOM(b.name, b.label,
ports(b.ports))
]);
}
var configuration = CSelect([
unansweredCase("Select Configuration Mode"),
ccase("Switches", "Optical Switches",
CQuantifiedList({}, "Optical Switch",
opticalSwitches)),
ccase("Rack", "Racks",
CQuantifiedList({}, "Rack",
rack)),
ccase("Solution", "Solution",
solution),
]);
cases
details
cases
details
Data-Driven Modeling
with openCPQ
Data-Driven Modeling
with openCPQ
Data-Driven Modeling
with openCPQ
Data-Driven Modeling
with openCPQ
Data-Driven Modeling
with openCPQ
function boards(isDoubleWidthSlot) {
return CSelect([
for (b of components.boards)
if (!b.doubleWidth || isDoubleWidthSlot)
ccaseBOM(b.name, b.label,
aggregate("power", b.power,
ports(b.ports)))
]);
}
Data-Driven Modeling
with openCPQ
function boards(isDoubleWidthSlot) {
return CSelect([
for (b of components.boards)
if (!b.doubleWidth || isDoubleWidthSlot)
ccaseBOM(b.name, b.label,
aggregate("power", b.power,
ports(b.ports)))
]);
}
Concise specification of complex models
Modeling with openCPQ:
Application-specific Abstractions
Modeling with openCPQ:
Application-specific Abstractions
Modeling with openCPQ:
Application-specific Abstractions
Modeling with openCPQ:
Application-specific Abstractions
CNameSpace("props", CGroup([
cmember("ConfigType", "Configuration Type",
CNamed("props", "ConfigType", {valueAccessor: n => n.value}, CSelect([
ccase("NEW", "New Configuration"), ccase("EXT", "Upgrade / Extension"),
]))),
cmember("Server", "Server", ep.table([
ep.rowInteger("clients", "Connected clients"),
crow("Size", "Server size", ({props}) => props.ConfigType === "EXT"
? [ep.eCell("Size", CSelect([for (s of serverSizes) ccase(s)])),
() => ep.pCell("Size", CSelect([for (s of serverSizes)
onlyIf(serverSizes.indexOf(s) >= serverSizes.indexOf(ep.E(props.Size)),
"Downgrade not supported", [ccase(s)])]))]
: [ep.pCell("Size", CSelect([for (s of serverSizes) ccase(s)]))]
),
ep.rowBoolean("redundancy", "Redundant server"),
])),
])),
How it Works
Change Propagation
core
state
Change Propagation
core
state inference
full
state
Change Propagation
core
state
user
interfaceinference render
full
state
Change Propagation
core
state
user
interfaceinference render
full
state
core
state
user
update
Change Propagation
core
state
user
interfaceinference render
full
state
core
state
user
interface
full
state
user
update
inference render
Change Propagation
core
state
user
interfaceinference render
full
state
core
state
user
interface
full
state
core
state
user
interface
full
state
user
update
user
update
inference render
inference render
Change Propagation
core
state
user
interfaceinference render
full
state
core
state
user
interface
full
state
core
state
user
interface
full
state
user
update
user
update
inference render
inference render
non-incremental
propagation
Change Propagation
core
state
user
interface
full
state
user
update
core
state
user
interface
full
state
user
update
core
state
user
interface
full
state
Change Propagation
core
state
user
interface
full
state
user
update
derived
update
core
state
user
interface
full
state
user
update
core
state
user
interface
full
state
Change Propagation
core
state
user
interface
full
state
user
update
derived
update
derived
update
core
state
user
interface
full
state
user
update
core
state
user
interface
full
state
Change Propagation
core
state
user
interface
full
state
user
update
derived
update
derived
update
core
state
user
interface
full
state
user
update
derived
update
derived
update
core
state
user
interface
full
state
Change Propagation
core
state
user
interface
full
state
user
update
derived
update
derived
update
core
state
user
interface
full
state
user
update
derived
update
derived
update
core
state
user
interface
full
state
incremental
propagation
Change Propagation
Change Propagation
Trade-off:
● Non-incremental propagation:
Change Propagation
Trade-off:
● Non-incremental propagation:
– Redo inference steps
● CPU consumption
– Redo rendering
● CPU consumption
● Flicker, loss of UI state (focus, scroll, selection), ...
● Incremental propagation:
Change Propagation
Trade-off:
● Non-incremental propagation:
– Redo inference steps
● CPU consumption
– Redo rendering
● CPU consumption
● Flicker, loss of UI state (focus, scroll, selection), ...
● Incremental propagation:
– Keep track of dependencies
● Error-prone (unless completely shielded from the modeler)
● Consumes memory and CPU
Change Propagation
core
state
user
interface
full
state
user
update
derived
update
core
state
user
interface
full
state
user
update
derived
update
core
state
user
interface
full
state
inference
inference
inference
mixed
propagation
React:
A JavaScript library for building user interfaces
React:
A JavaScript library for building user interfaces
● Unique approach:
– not a widget library
– not an MVC framework
React:
A JavaScript library for building user interfaces
● Unique approach:
– not a widget library
– not an MVC framework
● Virtual DOM ("VDOM"):
– Representation of the DOM tree as a JavaScript
data structure (cheap!)
React:
A JavaScript library for building user interfaces
● Unique approach:
– not a widget library
– not an MVC framework
● Virtual DOM ("VDOM"):
– Representation of the DOM tree as a JavaScript
data structure (cheap!)
● Upon each update:
React:
A JavaScript library for building user interfaces
● Unique approach:
– not a widget library
– not an MVC framework
● Virtual DOM ("VDOM"):
– Representation of the DOM tree as a JavaScript data
structure (cheap!)
● Upon each update:
– User code
● generates VDOM from your model
● possibly using XML templating integrated into JavaScript ("JSX")
React:
A JavaScript library for building user interfaces
● Unique approach:
– not a widget library
– not an MVC framework
● Virtual DOM ("VDOM"):
– Representation of the DOM tree as a JavaScript data structure
(cheap!)
● Upon each update:
– User code
● generates VDOM from your model
● possibly using XML templating integrated into JavaScript ("JSX")
– React
● diffs the VDOM with the previous VDOM
● applies only the diff to the actual DOM
Architecture
State
(JSON)State
(JSON)
Nodes
Nodes
VDOM
VDOM DOM
Types render()
apply
delta
Product
Model
Updates
Architecture
State
(JSON)State
(JSON)
Nodes
Nodes
VDOM
VDOM DOM
Types render()
apply
delta
Product
Model
Updates
Architecture
State
(JSON)State
(JSON)
Nodes
Nodes
VDOM
VDOM DOM
Types render()
apply
delta
Product
Model
Updates
SAP Integration
SAP Integration
● Models
– Conversion of LO-VC and IPC models to openCPQ
● Schema, basic logic: automatable with VClipse extension
● Complex logic: manual conversion
SAP Integration
● Models
– Conversion of LO-VC and IPC models to openCPQ
● Schema, basic logic: automatable with VClipse extension
● Complex logic: manual conversion
– Model storage and management
● Just static resources
● App server not needed (but can be used)
SAP Integration
SAP Integration
● Data
(e.g. materials with classification information)
– Live vs. pre-exported
– Bundling with application vs. loading on demand
SAP Integration
● Data
(e.g. materials with classification information)
– Live vs. pre-exported
– Bundling with application vs. loading on demand
● Runtime
– Loading and saving configurations
● External configurator API
● Mimic IPC
Summary
Summary
Take advantage of modern browser
technology for product configuration.
Summary
Take advantage of modern browser
technology for product configuration.
Powerful modeling based on JavaScript,
React, and openCPQ.
Summary
Take advantage of modern browser
technology for product configuration.
Powerful modeling based on JavaScript,
React, and openCPQ.
Flexible and fast user interface.
Summary
Take advantage of modern browser
technology for product configuration.
Powerful modeling based on JavaScript,
React, and openCPQ.
Flexible and fast user interface.
Use, adapt, integrate, contribute!
https://github.com/webXcerpt/openCPQ
Our Offer
Our Offer
Discuss:
● Use cases, modeling challenges, …
● Integrations
Our Offer
Discuss:
● Use cases, modeling challenges, …
● Integrations
Cooperate:
● Professional services, training, ...
● For end users or integrators

Weitere ähnliche Inhalte

Was ist angesagt?

Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody EclipseBill Duncan
 
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEInstalling Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEFraser Chadburn
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWareMichael Vorburger
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision developmentYoss Cohen
 
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...mfrancis
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaFrank Braun
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming PlatformsAnup Hariharan Nair
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
Buildingwebapplicationswith.net
Buildingwebapplicationswith.netBuildingwebapplicationswith.net
Buildingwebapplicationswith.netKolagani Veera
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overviewFaisal Aziz
 
Randomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRandomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRamdas Mozhikunnath
 

Was ist angesagt? (19)

desktop_resume
desktop_resumedesktop_resume
desktop_resume
 
Kumar_J
Kumar_JKumar_J
Kumar_J
 
Rhapsody Eclipse
Rhapsody EclipseRhapsody Eclipse
Rhapsody Eclipse
 
Diwakar Nag
Diwakar NagDiwakar Nag
Diwakar Nag
 
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSEInstalling Installing IBM Rational Rhapsody Designer and Architect for MBSE
Installing Installing IBM Rational Rhapsody Designer and Architect for MBSE
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
 
MPHS RC Design Flow
MPHS RC Design FlowMPHS RC Design Flow
MPHS RC Design Flow
 
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
Workflow for Development, Release and Versioning with OSGi / bndtools- Real W...
 
RohitJindal
RohitJindalRohitJindal
RohitJindal
 
Getting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in AdaGetting started with IBM Rational Rhapsody in Ada
Getting started with IBM Rational Rhapsody in Ada
 
CAN FD Stack Introduction & Related FAQ
CAN FD Stack Introduction & Related FAQCAN FD Stack Introduction & Related FAQ
CAN FD Stack Introduction & Related FAQ
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
Buildingwebapplicationswith.net
Buildingwebapplicationswith.netBuildingwebapplicationswith.net
Buildingwebapplicationswith.net
 
Resume
ResumeResume
Resume
 
.Net language support
.Net language support.Net language support
.Net language support
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
Randomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS CollegeRandomization and Constraints - Workshop at BMS College
Randomization and Constraints - Workshop at BMS College
 

Ähnlich wie Configuring in the Browser, Really!

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkSandeep Adwankar
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk NewsESUG
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...Alexandr Savchenko
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...Fwdays
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Jeremy Likness
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application StrategiesBIOVIA
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)Oursky
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...AEGIS-ACCESSIBLE Projects
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xErik Gur
 
Supporting Architectural Variabiality in Software Product Lines
Supporting Architectural Variabiality in Software Product LinesSupporting Architectural Variabiality in Software Product Lines
Supporting Architectural Variabiality in Software Product LinesJaime Chavarriaga
 
Introduction to Visual studio 2012
Introduction to Visual studio 2012 Introduction to Visual studio 2012
Introduction to Visual studio 2012 Prashant Chaudhary
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!Supercharge
 

Ähnlich wie Configuring in the Browser, Really! (20)

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
Innovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and FrameworkInnovations in Sencha Tooling and Framework
Innovations in Sencha Tooling and Framework
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
 
Dust.js
Dust.jsDust.js
Dust.js
 
(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies(ATS6-DEV02) Web Application Strategies
(ATS6-DEV02) Web Application Strategies
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...13 providing an ide for creating, simulating and assessing accessible applica...
13 providing an ide for creating, simulating and assessing accessible applica...
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
Supporting Architectural Variabiality in Software Product Lines
Supporting Architectural Variabiality in Software Product LinesSupporting Architectural Variabiality in Software Product Lines
Supporting Architectural Variabiality in Software Product Lines
 
Introduction to Visual studio 2012
Introduction to Visual studio 2012 Introduction to Visual studio 2012
Introduction to Visual studio 2012
 
Good bye Massive View Controller!
Good bye Massive View Controller!Good bye Massive View Controller!
Good bye Massive View Controller!
 

Kürzlich hochgeladen

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Kürzlich hochgeladen (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Configuring in the Browser, Really!