SlideShare a Scribd company logo
1 of 57
eclipsecon
Reston, March 9, 2016
with Sirius
Robust and Scalable Modeling Workbenches
Tips and tricks
©AkiraFujii-http://www.spacetelescope.org/images/heic0516f/
Maxime Porhel
Obeo
A dedicated tooling
A dedicated tooling
A dedicated tooling
A dedicated tooling
Help Sirius find the elements to display
Use the best query language for the task
Synchronization options and advanced tools
Style and color customization
Additional mappings and tools contribution
Outline
Viewpoint specification model
Mappings and tool declaration
Sub Node
● List
○ node mappings to define list elements
● Free form
Viewpoint specification model
Several kind of containers
● Compartments
○ container mappings to define compartments
○ fixed or dynamic
○ vertical / horizontal stacks
Supported children presentations:
Viewpoint specification model
● Domain Class
Naive approach
● No Semantic Candidates Expression
● Precondition expression to filter
elements
Note:
● Green: EClass qualified name
● Yellow: interpreted expression
©NASAGoddardSpaceFlightCenter-https://www.flickr.com/photos/gsfc/15284914831
Demo
Mapping Evaluation
● Empty semantic candidates expression
-> Sirius looks for candidates into all loaded semantic/domain model
● eAllContents() on each domain resource content
● Not efficient
● No control on the displayed elements
Naive approach
jkjknnnunjn
©AcidPix-https://www.flickr.com/photos/acidpix/6461577407
©GaryPosner-https://www.flickr.com/photos/gjpimages/7343085638
Diagram elements computation
From the element to refresh (and its description/mapping):
● Get available mappings to refresh
○ activated Viewpoints, activated Layers
○ children mappings + reused mappings
Diagram elements computation
● For each mapping found
○ Evaluation of the semantic candidates expression from the current domain element
(or eAllContents() on each domain resource if empty)
○ Filter with the specified domain class
○ On each candidate, evaluate the precondition
○ Create the diagram element, assign a style
From the element to refresh (and its description/mapping):
Diagram elements computation
empty semantic candidates
+ big models
+ many (sub) mappings
+ many complex precondition expressions
⇒ Poor performances
Worst conditions
Diagram elements computation
Try as much as possible to write efficient semantic candidates expression:
● Avoid empty semantic candidates expression and eAllContents when possible
● Follow the structural features defined in the meta model
● Use the inverse cross references to look for elements with a reference to another
element.
○ eInverse(Type) in AQL and Acceleo3
○ access to the ECrossReferenceAdapter from a Java service
● Use the specialized interpreters when possible (var: / service: / feature:)
● Try to integrate your precondition in your semantic candidate expression
aql: mainExpression -> select( e | e.precondition)
Your role
Sirius Profiler
Help Sirius find the elements to display
Use the best query language for the task
Synchronization options and advanced tools
Style and color customization
Additional mappings and tools contribution
Outline
Mapping synchronization
Mapping synchronization
● Synchronized mapping: Sirius looks for mapping candidates
● Unsynchronized mapping: Sirius refreshes styles and sub elements.
● Allows to create contextual diagrams:
○ User controls the elements he wants to see on his diagram
○ Sirius does not create elements for non-synchronized mappings
○ Delete from diagram is enabled
Mapping synchronization
● Specifier must create some ‘insertion’ tools
○ Selection Wizards
○ Drop tools (from Model Explorer)
○ Double clics
○ Menus
● Mappings of edge, border nodes, list elements often put as synchronized
Advanced tools: Direct edit (F2)
Easy edit mask creation
● {0} : {1}
● split user text into String variables
Advanced tools: Java service
Java services can be used to do more.
Ecore Tools:
direct edit of EStructuralFeatures (nodes/edges)
● « Something » => change name of feature
● «:SomeType » => only change the eType
● «1» => only set cardinality to 1..x
● « * » => only set cardinality to x..*
● « /Something » => make the feature derived
● « = something » => set the default value literal
● [...]
Advanced tools: Element select variable
Displays a selection dialog
when the user execute a tool
List or tree
Single / Multiple result
Advanced tools: Filter listener
To control the visibility of a palette tool
Reacts to model changes
(Sirius or semantic)
Demo
©NASAGoddardSpaceFlightCenter-https://www.flickr.com/photos/gsfc/
Help Sirius find the elements to display
Use the best query language for the task
Synchronization options and advanced tools
Style and color customization
Additional mappings and tools contribution
Outline
Provide mappings and tools
● Ready to deploy Eclipse plugin
Viewpoint Specification Project
Provide mappings and tools
● 1..* per Viewpoint Specification Project
● EMF model, can have links to other VSM
● Possibility to extends/complete VSM defined in other plugins
Viewpoint Specification Model
Provide mappings and tools
● Declares Diagram / Table / Tree description
● but also Diagram Extension
Viewpoint
● Activation controlled by the user
Provide mappings and tools
● 1 default Layer
● 0..* additional Layers
Diagram Description
● references a diagram description (defined anywhere)
● provides additional Layers
Diagram Extension Description
Provide mappings and tools
● optional?
● active per default?
● contains top level mappings and tool section
Layer
● activation controlled by the user if optional
Provide mappings and tools
● to spezialize mappings
● provide new styles / children mappings
Node / Container / Edge mapping import
Provide mappings and tools
● contains other tool sections
● declares or reuses tools
Tool Section
Demo
©GrayLensman-https://www.flickr.com/photos/toptechwriter/457189539
Help Sirius find the elements to display
Use the best query language for the task
Synchronization options and advanced tools
Style and color customization
Additional mappings and tools contribution
Outline
User colors
Predefined colors
User Color Palette
● User fixed color: RGB, System color chooser
● Computed Color: interpreted expression to compute R, G, B
● Interpolated Color
○ Define several color steps (value/color)
○ Expression to compute a value from the element to decorate
Conditional Styles
● Available for every kind of mapping
● 0..* conditional style
● Each conditional style contains a different style
Conditional Styles
Node styles
Conditional Styles
Container styles
Conditional Styles
Edge styles
● Routing style (oblique, manhattan, tree)
● Line style
● Source / Target arrows
● Begin / Center / End labels
Conditional Styles
● Precondition must be exclusive
● Sirius takes the first whose precondition evaluation returns true.
● The ‘default’ style is taken if no conditional style can be applied
Style Customizations
● Defined in a Layer
● Style Customization has a precondition
● More fine grained customization (than the Conditional Styles)
● Property Customization
○ target one EStructuralFeature of the Sirius style descriptions
○ applied on all styles or selected ones
eclipse.org/sirius/gallery.html
©NASAGoddardSpaceFlightCenter-https://www.flickr.com/photos/gsfc/4545825554
Help Sirius find the elements to display
Use the best query language for the task
Synchronization options and advanced tools
Style and color customization
Additional mappings and tools contribution
Outline
● var: direct access to Sirius variables
● feature: direct access to the named features of the current element
(and EMF pseudo-features)
● service: direct call of a Java method
(that follows some naming conventions, see documentation)
● aql: Acceleo Query Language
(introduced with Sirius 3.0, recommended since 3.1)
● [ /]: Acceleo3 expression
Provided interpreters
Notes:
. extensible through extension point
. tooltip: the expected type of result and the available variables
. completion on empty expression: available interpreters
Provided interpreters
AQL
● stronger type information than Acceleo3 - allows stronger type analysis
● implementation specifically tailored for the Sirius use case
● complex or custom logic: Java Services
● predicatable ordering and performance overhad
● simple for querying EMF models
● evaluation: fast and collect errors
● validation: strong and precise
Recommended query language for Sirius 3.1.0
Provided interpreters
Provided interpreters
AQL vs Query Legacy
AQL: 3x faster (average)
Takeaways
Help Sirius find the elements to display
Use AQL and the specific interpreters
Think about your models topology
Use inverse cross references
Big models? Remember the contextual diagrams
Help the user with advanced tools
Conditional styles completely change the
appearance of an element
Style customizations allow a more fine grained
customization
Use Viewpoint, Diagram Extensions, Layers to deal with
different aspects in your modelers
Sys2Soft
Performances depends on your .odesign specification
Measure, Improve, Repeat
Properties view customization in Sirius 4
Work in Progress
Stay tuned
siriuscon.org
“Keep on the good work!! :)
“Awesome day at #SiriusCon in Paris.
“Overall well done!
“Was nice to meet enthusiastic community!
“The right formula to maintain!
©MatthiasRipp-https://www.flickr.com/photos/56218409@N03/15371262455©SeanDreilinger-https://www.flickr.com/photos/seandreilinger/2326448445
©NASA,ESACredit:G.Bacon(STScI)-http://www.spacetelescope.org/images/heic0516b/
Thank you!
Maxime Porhel
mporhel.github.io/slides/
maxime.porhel@obeo.fr
@mporhel
Evaluate the Sessions
Sign in and vote at eclipsecon.org
- 1 + 10

More Related Content

What's hot

Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Oriol López Massaguer
 
Procedure oriented programming
Procedure oriented programmingProcedure oriented programming
Procedure oriented programmingMrShahbazRafiq
 
Implementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in DottyImplementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in DottyMartin Odersky
 
Java annotations
Java annotationsJava annotations
Java annotationsSujit Kumar
 
Object Oriented PHP Overview
Object Oriented PHP OverviewObject Oriented PHP Overview
Object Oriented PHP OverviewLarry Ball
 
Adbms 17 object query language
Adbms 17 object query languageAdbms 17 object query language
Adbms 17 object query languageVaibhav Khanna
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMlucenerevolution
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Very Small Tutorial on Terrier 3.0 Retrieval Toolkit
Very Small Tutorial on Terrier 3.0 Retrieval ToolkitVery Small Tutorial on Terrier 3.0 Retrieval Toolkit
Very Small Tutorial on Terrier 3.0 Retrieval ToolkitKavita Ganesan
 
Maths&programming forartists wip
Maths&programming forartists wipMaths&programming forartists wip
Maths&programming forartists wipkedar nath
 
Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Asfand Hassan
 
Python for katana
Python for katanaPython for katana
Python for katanakedar nath
 
APP CAMP #2.
APP CAMP #2.APP CAMP #2.
APP CAMP #2.Othaimeen
 
Mel for beginners
Mel for beginnersMel for beginners
Mel for beginnerskedar nath
 

What's hot (18)

Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?Can programming be liberated from the von neumann style?
Can programming be liberated from the von neumann style?
 
Procedure oriented programming
Procedure oriented programmingProcedure oriented programming
Procedure oriented programming
 
Implementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in DottyImplementing Higher-Kinded Types in Dotty
Implementing Higher-Kinded Types in Dotty
 
Java annotations
Java annotationsJava annotations
Java annotations
 
Datatype
DatatypeDatatype
Datatype
 
Object Oriented PHP Overview
Object Oriented PHP OverviewObject Oriented PHP Overview
Object Oriented PHP Overview
 
Adbms 17 object query language
Adbms 17 object query languageAdbms 17 object query language
Adbms 17 object query language
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
 
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVMText Classification with Lucene/Solr, Apache Hadoop and LibSVM
Text Classification with Lucene/Solr, Apache Hadoop and LibSVM
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Very Small Tutorial on Terrier 3.0 Retrieval Toolkit
Very Small Tutorial on Terrier 3.0 Retrieval ToolkitVery Small Tutorial on Terrier 3.0 Retrieval Toolkit
Very Small Tutorial on Terrier 3.0 Retrieval Toolkit
 
From DOT to Dotty
From DOT to DottyFrom DOT to Dotty
From DOT to Dotty
 
Dotnet :Attributes
Dotnet :AttributesDotnet :Attributes
Dotnet :Attributes
 
Maths&programming forartists wip
Maths&programming forartists wipMaths&programming forartists wip
Maths&programming forartists wip
 
Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)
 
Python for katana
Python for katanaPython for katana
Python for katana
 
APP CAMP #2.
APP CAMP #2.APP CAMP #2.
APP CAMP #2.
 
Mel for beginners
Mel for beginnersMel for beginners
Mel for beginners
 

Similar to How to Make Robust and Scalable Modeling Workbenches with Sirius - EclipseCon NA 2016

Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Chauvin Mariot
 
SE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTSE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTnikshaikh786
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBArangoDB Database
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languagesppd1961
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptTemesgenAzezew
 
Functional Programming in JavaScript & ESNext
Functional Programming in JavaScript & ESNextFunctional Programming in JavaScript & ESNext
Functional Programming in JavaScript & ESNextUnfold UI
 
Graph db - Pramati Technologies [Meetup]
Graph db - Pramati Technologies [Meetup]Graph db - Pramati Technologies [Meetup]
Graph db - Pramati Technologies [Meetup]Pramati Technologies
 
Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxVigneshkumar Ponnusamy
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)Michael Rys
 
School of Computing, Science & EngineeringAssessment Briefin.docx
School of Computing, Science & EngineeringAssessment Briefin.docxSchool of Computing, Science & EngineeringAssessment Briefin.docx
School of Computing, Science & EngineeringAssessment Briefin.docxanhlodge
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript IntroductionThanh Tai
 
2014 10 java 8 major new language features
2014 10 java 8 major new language features2014 10 java 8 major new language features
2014 10 java 8 major new language featuresNeil Brown
 
1 Project 2 Introduction - the SeaPort Project seri.docx
1  Project 2 Introduction - the SeaPort Project seri.docx1  Project 2 Introduction - the SeaPort Project seri.docx
1 Project 2 Introduction - the SeaPort Project seri.docxhoney725342
 
An Intro to Scala for PHP Developers
An Intro to Scala for PHP DevelopersAn Intro to Scala for PHP Developers
An Intro to Scala for PHP DevelopersHuffPost Code
 
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...VMware Tanzu
 
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...Jitendra Bafna
 
Understanding Implicits in Scala
Understanding Implicits in ScalaUnderstanding Implicits in Scala
Understanding Implicits in Scaladatamantra
 

Similar to How to Make Robust and Scalable Modeling Workbenches with Sirius - EclipseCon NA 2016 (20)

Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
SE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPTSE-IT JAVA LAB OOP CONCEPT
SE-IT JAVA LAB OOP CONCEPT
 
Custom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDBCustom Pregel Algorithms in ArangoDB
Custom Pregel Algorithms in ArangoDB
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.ppt
 
Functional Programming in JavaScript & ESNext
Functional Programming in JavaScript & ESNextFunctional Programming in JavaScript & ESNext
Functional Programming in JavaScript & ESNext
 
Graph db - Pramati Technologies [Meetup]
Graph db - Pramati Technologies [Meetup]Graph db - Pramati Technologies [Meetup]
Graph db - Pramati Technologies [Meetup]
 
Fundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptxFundamentals of Data Structures Unit 1.pptx
Fundamentals of Data Structures Unit 1.pptx
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
 
School of Computing, Science & EngineeringAssessment Briefin.docx
School of Computing, Science & EngineeringAssessment Briefin.docxSchool of Computing, Science & EngineeringAssessment Briefin.docx
School of Computing, Science & EngineeringAssessment Briefin.docx
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
2014 10 java 8 major new language features
2014 10 java 8 major new language features2014 10 java 8 major new language features
2014 10 java 8 major new language features
 
1 Project 2 Introduction - the SeaPort Project seri.docx
1  Project 2 Introduction - the SeaPort Project seri.docx1  Project 2 Introduction - the SeaPort Project seri.docx
1 Project 2 Introduction - the SeaPort Project seri.docx
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
 
An Intro to Scala for PHP Developers
An Intro to Scala for PHP DevelopersAn Intro to Scala for PHP Developers
An Intro to Scala for PHP Developers
 
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
A Modern Interface for Data Science on Postgres/Greenplum - Greenplum Summit ...
 
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...
Engineering Student MuleSoft Meetup#6 - Basic Understanding of DataWeave With...
 
Understanding Implicits in Scala
Understanding Implicits in ScalaUnderstanding Implicits in Scala
Understanding Implicits in Scala
 

Recently uploaded

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

How to Make Robust and Scalable Modeling Workbenches with Sirius - EclipseCon NA 2016