SlideShare a Scribd company logo
1 of 82
Download to read offline
Eolian - Past year experiences and
the future
Shaping up our binding generation infrastructure
Daniel Kolesa
Samsung Open Source Group
d.kolesa@osg.samsung.com
@octaforge
EFL Developer Day 2015
Introduction
For those living under a rock
What is Eolian?
What is Eolian?
Most people are probably already aware of it
What is Eolian?
Most people are probably already aware of it
It’s several things
What is Eolian?
Most people are probably already aware of it
It’s several things
It’s a declarative format for describing APIs
What is Eolian?
Most people are probably already aware of it
It’s several things
It’s a declarative format for describing APIs
It’s a C library to deal with these declarations
What is Eolian?
Most people are probably already aware of it
It’s several things
It’s a declarative format for describing APIs
It’s a C library to deal with these declarations
It’s a generator for the core C API
Why is Eolian useful?
Why is Eolian useful?
Language independent API descriptions
Why is Eolian useful?
Language independent API descriptions
Automatic generation of bindings for any language
Why is Eolian useful?
Language independent API descriptions
Automatic generation of bindings for any language
Improved documentation possibilities
Why is Eolian useful?
Language independent API descriptions
Automatic generation of bindings for any language
Improved documentation possibilities
Better tooling
Why is Eolian useful?
Language independent API descriptions
Automatic generation of bindings for any language
Improved documentation possibilities
Better tooling
The possibilities are endless
Past and present
How was Eolian and how is it now?
Last year Eolian
How was it?
How was it?
Very basic
How was it?
Very basic
Supported C generation and nothing else
How was it?
Very basic
Supported C generation and nothing else
A messy parser/lexer created with a generator
How was it?
Very basic
Supported C generation and nothing else
A messy parser/lexer created with a generator
A lot of design problems
How did we fix it?
How did we fix it?
First project: write a new parser from scratch
How did we fix it?
First project: write a new parser from scratch
Gradual rewrite of Eolian from ground up
How did we fix it?
First project: write a new parser from scratch
Gradual rewrite of Eolian from ground up
Fixed design problems one by one
How did we fix it?
First project: write a new parser from scratch
Gradual rewrite of Eolian from ground up
Fixed design problems one by one
Through iterative approach, we got where we are currently
Main challenges of last year and the
present
Eolian type system
Eolian type system
Old Eolian used C strings to do types
Eolian type system
Old Eolian used C strings to do types
No verification
Eolian type system
Old Eolian used C strings to do types
No verification
Not suitable for other languages
Eolian type system
Old Eolian used C strings to do types
No verification
Not suitable for other languages
We needed our own type system
Real types represented in our in-memory database
Real types represented in our in-memory database
Basic type checking/verification (usage contexts etc.)
Real types represented in our in-memory database
Basic type checking/verification (usage contexts etc.)
Integration with variables/constants
Real types represented in our in-memory database
Basic type checking/verification (usage contexts etc.)
Integration with variables/constants
Structures and enumerations
Real types represented in our in-memory database
Basic type checking/verification (usage contexts etc.)
Integration with variables/constants
Structures and enumerations
Type aliases
Real types represented in our in-memory database
Basic type checking/verification (usage contexts etc.)
Integration with variables/constants
Structures and enumerations
Type aliases
Extern types and other smaller features
Custom constructors
Custom constructors
Old Eolian supported custom constructors for classes
Custom constructors
Old Eolian supported custom constructors for classes
We decided this is a bad idea
Custom constructors
Old Eolian supported custom constructors for classes
We decided this is a bad idea
We generate constructors using constructing functions now
Syntax revision
Syntax revision
Old syntax was very messy and inconsistent
Syntax revision
Old syntax was very messy and inconsistent
Complete refactoring of syntax was done
Syntax revision
Old syntax was very messy and inconsistent
Complete refactoring of syntax was done
Unification and stricter parsing
Syntax revision
Old syntax was very messy and inconsistent
Complete refactoring of syntax was done
Unification and stricter parsing
Focus on consistency
Complex types
Complex types
At first, we had generalized complex types
Complex types
At first, we had generalized complex types
This proved to be a bad idea
Complex types
At first, we had generalized complex types
This proved to be a bad idea
Provided several built-in complex types (array, hash etc.)
Complex types
At first, we had generalized complex types
This proved to be a bad idea
Provided several built-in complex types (array, hash etc.)
Greatly simplfied generation and syntax
Data sharing
Data sharing
We needed to share typedefs etc. between several classes
Data sharing
We needed to share typedefs etc. between several classes
Introduced .eot (eo type) files
Data sharing
We needed to share typedefs etc. between several classes
Introduced .eot (eo type) files
And introduced an import statement
Documentation
Documentation
Ongoing issue
Documentation
Ongoing issue
Doxygen will no longer cut it (specific to C/C++)
Documentation
Ongoing issue
Doxygen will no longer cut it (specific to C/C++)
Designed a custom format
Documentation
Ongoing issue
Doxygen will no longer cut it (specific to C/C++)
Designed a custom format
Removed documentation comments, introduced special syntax
Documentation
Ongoing issue
Doxygen will no longer cut it (specific to C/C++)
Designed a custom format
Removed documentation comments, introduced special syntax
Converted all EFL/Elementary docs to the new format
Documentation
Ongoing issue
Doxygen will no longer cut it (specific to C/C++)
Designed a custom format
Removed documentation comments, introduced special syntax
Converted all EFL/Elementary docs to the new format
Still being extended and improved
Current situation
Current situation
We’re mostly done
Current situation
We’re mostly done
API is nice and clean
Current situation
We’re mostly done
API is nice and clean
All major issues are solved
Current situation
We’re mostly done
API is nice and clean
All major issues are solved
Documentation still ongoing
Current situation
We’re mostly done
API is nice and clean
All major issues are solved
Documentation still ongoing
Ownership handling still ongoing
The future
What are we going to do now?
Stabilize!
Stabilize!
Stabilization is the primary goal
Stabilize!
Stabilization is the primary goal
Not happening for a few more releases
Stabilize!
Stabilization is the primary goal
Not happening for a few more releases
We need to finalize documentation
Stabilize!
Stabilization is the primary goal
Not happening for a few more releases
We need to finalize documentation
We need to handle ownership
Stabilize!
Stabilization is the primary goal
Not happening for a few more releases
We need to finalize documentation
We need to handle ownership
Refactor the implementation and fix all quirks
More testing and changes
More testing and changes
We need more generators to help us test
More testing and changes
We need more generators to help us test
We also need to update all of EFL eo files
More testing and changes
We need more generators to help us test
We also need to update all of EFL eo files
This should help uncover any potential problems
Thank you.
Daniel Kolesa
Samsung Open Source Group
d.kolesa@osg.samsung.com
@octaforge
EFL Developer Day 2015

More Related Content

Similar to [E-Dev-Day 2015][1/4] Eolian - Past Year Experiences and the Future (Daniel Kolesa)

High Level Application Scripting With EFL and LuaJIT
High Level Application Scripting With EFL and LuaJITHigh Level Application Scripting With EFL and LuaJIT
High Level Application Scripting With EFL and LuaJITSamsung Open Source Group
 
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)EnlightenmentProject
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
 
Enlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitEnlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitSamsung Open Source Group
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Chef
 
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...EnlightenmentProject
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetDevoteam Revolve
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mortapeiron
 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software designKfir Bloch
 
All we like sheep: Cloning as an Engineering Tool
All we like sheep: Cloning as an Engineering ToolAll we like sheep: Cloning as an Engineering Tool
All we like sheep: Cloning as an Engineering Toolmigod
 
Preparing an Open Source Documentation Repository for Translations
Preparing an Open Source Documentation Repository for TranslationsPreparing an Open Source Documentation Repository for Translations
Preparing an Open Source Documentation Repository for TranslationsHPCC Systems
 
Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019Eamonn Boyle
 
Scripting with Python to interact with Capella model
Scripting with Python to interact with Capella modelScripting with Python to interact with Capella model
Scripting with Python to interact with Capella modelObeo
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentAxel Fontaine
 
Transitioning Android Teams Into Kotlin
Transitioning Android Teams Into KotlinTransitioning Android Teams Into Kotlin
Transitioning Android Teams Into KotlinGarth Gilmour
 

Similar to [E-Dev-Day 2015][1/4] Eolian - Past Year Experiences and the Future (Daniel Kolesa) (20)

High Level Application Scripting With EFL and LuaJIT
High Level Application Scripting With EFL and LuaJITHigh Level Application Scripting With EFL and LuaJIT
High Level Application Scripting With EFL and LuaJIT
 
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)
[E-Dev-Day-US-2015][8/9] he EFL API in Review (Tom Hacohen)
 
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...
 
Eo fosdem 15
Eo fosdem 15Eo fosdem 15
Eo fosdem 15
 
Enlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & ToolkitEnlightenment: A Cross Platform Window Manager & Toolkit
Enlightenment: A Cross Platform Window Manager & Toolkit
 
Python overview
Python overviewPython overview
Python overview
 
groovy & grails - lecture 1
groovy & grails - lecture 1groovy & grails - lecture 1
groovy & grails - lecture 1
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
 
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...
 
Achieving Continuous Delivery with Puppet
Achieving Continuous Delivery with PuppetAchieving Continuous Delivery with Puppet
Achieving Continuous Delivery with Puppet
 
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
Puppet Camp Paris 2014: Achieving Continuous Delivery and DevOps with Puppet
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software design
 
All we like sheep: Cloning as an Engineering Tool
All we like sheep: Cloning as an Engineering ToolAll we like sheep: Cloning as an Engineering Tool
All we like sheep: Cloning as an Engineering Tool
 
Preparing an Open Source Documentation Repository for Translations
Preparing an Open Source Documentation Repository for TranslationsPreparing an Open Source Documentation Repository for Translations
Preparing an Open Source Documentation Repository for Translations
 
Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019Kotlin for Android - Goto Copenhagan 2019
Kotlin for Android - Goto Copenhagan 2019
 
OOoEclipse talks now C++
OOoEclipse talks now C++OOoEclipse talks now C++
OOoEclipse talks now C++
 
Scripting with Python to interact with Capella model
Scripting with Python to interact with Capella modelScripting with Python to interact with Capella model
Scripting with Python to interact with Capella model
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
 
Transitioning Android Teams Into Kotlin
Transitioning Android Teams Into KotlinTransitioning Android Teams Into Kotlin
Transitioning Android Teams Into Kotlin
 

Recently uploaded

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 

Recently uploaded (20)

Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 

[E-Dev-Day 2015][1/4] Eolian - Past Year Experiences and the Future (Daniel Kolesa)