SlideShare a Scribd company logo
RAPID – Resource API Design Language
Pushing the limits of language usability with XText
TED EPSTEIN, FOUNDER AND CEO
TANYA FESENKO, LEAD DEVELOPER
EclipseCon NA 2015, Xtext Day
1COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED.
™
™
Overview
• RepreZen: solving API interoperability
• Challenge: a better API description language
• RAPID Language Features
◦ Optional Fluency: accommodating coding styles
◦ Keyword Sequence: encourage, don’t Enforce
◦ Indent-Based Block Scoping: life without curly braces
• Implementation Overview
• Summary
• Q&A
2COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED.
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 3
/ Unify Data Models
/ Federate APIs
/ Integrate Faster
The Elevator Pitch
The Elevator Pitch
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 4
Make Canonical
Data Models
Practical
Enable Highly
Interoperable
APIs
Significantly
Lower Long-
Term Integration
Cost
• Frequently recommended, hard to implement
• Current reality: much easier to build from
scratch than to reuse existing data models
• We want to change that!
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 5
Make Canonical
Data Models
Practical
Enable Highly
Interoperable
APIs
Significantly
Lower Long-
Term Integration
Cost
• Frequently recommended, hard to implement
• Current reality: much easier to build from
scratch than to reuse existing data models
• We want to change that!
• Reusable data models: business-oriented,
technology-independent, semantically rich
• Allow variability through realization
• Message payloads still conform to canonical model
Property Subsets Perspective
<party dataSource=“MSDB”>
<partyId>123</partyId>
<partyName xsi:nil=“true” nullValue=“Not Available” />
<accounts>
<account dataSource=“A2” transType=“insert”>
<accountId>XYZ</accountId>
<balance xsi:nil=“true” isRestricted=“true” />
</account>
</accounts>
</party>
Metadata Contextual Constraints
The Elevator Pitch
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 6
Make Canonical
Data Models
Practical
Enable Highly
Interoperable
APIs
Significantly
Lower Long-
Term Integration
Cost
• Frequently recommended, hard to implement
• Current reality: much easier to build from
scratch than to reuse existing data models
• We want to change that!
• Reusable data models: business-oriented, technology-
independent, semantically rich
• Allow variability through realization
• Message payloads still conform to canonical model
• Service APIs speak the same language
• Clients can work with multiple APIs, without multiple DTOs,
SDKs, etc.
• Stop runaway spending on remedial integration technology
Changing the way we build APIs
Message
Schema
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 7
Business
Domain
Model
Realization
• Subset
• Perspective
• Constraints
• Metadata
Resource
Data
Model
Representation
• Media Type
• Format
• Conventions
• Hyperlinks
This needs to be
built into the API
modeling language.
Yet Another API Description Language?
YAADL? YAAPIDL?
There are at least four of these...
“The nice thing about standards is
that you have so many to chose from.”
- Andrew Tanenbaum
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 8
… and they’re pretty good.
◦ Web-based editors
◦ API Documentation with integrated
sandbox
◦ Syntax based on YAML or Markdown
◦ Interesting language-level reuse
◦ REST patterns built in
If we have to
build an API
modeling language,
it has to be good.
… any
ideas?
Who’s going to model these APIs?
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 9
…andDevelopers!
Developers!
Developers!
Business Analysts
Subject Matter Experts
Data Professionals
Enterprise Architects
Make it accessible,
readable, versatile.
What
she
said.
Demo – RAPID Usability Features
• Indent Syntax:
◦ Python-like block syntax, no curly braces
◦ Advanced highlighting to visualize structure
• Order Assist:
◦ Flexible sequence for declarations
◦ Reset to standard sequence using QuickFix or auto-format
• Optional Fluency
◦ Support terse and fluent syntax with optional keywords
◦ Semantic highlighting to distinguish optional vs. required keywords
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 10
11
Indent-Based Syntax
Structural Highlighting -
editbox.sourceforge.net
New Syntax –
indents define block scope
Previous Syntax –
braces for block scoping
Order Assist
12
Optional Fluency
13
Fluent
Terse
Implementation
Walkthrough
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 14
15
Work with Xtext
Xtext
Grammar
(*.xtext file)
16
Work with Xtext
Xtext
Grammar
(*.xtext file)
Generated code (Parser and UI)
17
Work with Xtext
The rest
(customized from generated code)
Lexer Formatter Content assist
Code
Templates
Prefs
Cross-
reference
Scope
Code
highlighter
Validation/
Quickfix
Outline …
Xtext
Grammar
(*.xtext file)
Generated code (Parser and UI)
Description Grammar
Code
Customization
for (each feature):
18
Three features
Feature 1:
Automate canonical ordering
19
Order Assist
20
methods
21
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
22
Allow arbitrary order in grammar
23
Allow arbitrary order in grammar
24
Allow arbitrary order in grammar
Disable code-assist and add
validator for duplicate single-
valued properties to prevent
overriding
25
Sort List< INode>
Compare INodes:
• Using sorting rules
• Preserving:
• List delimiters
• Whitespaces
• Attached symbols (*, +)
• Order of elements of the same
kind
Grammar Tree
Sorting rule:
Sequence<GrammarElement>
26
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Validation
Validation
27
MyJavaValidator #
checkMyElement(SemanticElement)
Validation
28
Semantic
Element
Syntax
Tree Node
getIncorrectly
OrderedChildren()
Incorrectly
ordered
Nodes
NodeModelUtils::getNode()
MyJavaValidator #
checkMyElement(SemanticElement)
29
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Formatter
30
FormatterDefaultNodeModelFormatter#format():
31
FormatterDefaultNodeModelFormatter#format():
32
FormatterDefaultNodeModelFormatter#format():
INode:
• offset
• text
• length
• grammarElement
• semanticElement
33
FormatterDefaultNodeModelFormatter#format():
Writes tokens
to character
stream and
then flushes it
The write
methods create
formatted
LineEntries with
use of formatter
configuration
(ElementLocators)
34
FormatterDefaultNodeModelFormatter#format():
TextRegion –
offset and
length in the
char stream
populated in
the write
methods
35
FormatterDefaultNodeModelFormatter#format():
Place for
customization
36
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Preferences
page
Usability: Preferences
37
38
Testing
1
2
3
4
5
How many
permutations for five
elements ?
5!=120
39
Testing
Xtend Active Annotations
120 green
tests!
40
Changes: Automate Canonical Ordering
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Preferences
pageFormatterValidation
Enable
arbitrary order
41
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Preferences
pageFormatterValidation
• Errors for single-value
property override
• Warnings for
"incorrect" order
Changes: Automate Canonical Ordering
42
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Preferences
pageFormatterValidation
Restore
canonical order
Changes: Automate Canonical Ordering
43
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Preferences
pageFormatterValidation
enable/disable
validation,
reordering in
formatter
Changes: Automate Canonical Ordering
Feature 2:
Optional fluency
44
What is Optional Fluency?
45
Fluent
Terse
46
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Implementation
47
48
Implementation
49
Changes: Optional Fluency
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Optional
fluency
Feature 3:
Indent-based block scoping in
Xtext
50
51
Indent-based block scoping in Xtext
Python-like notation
With curly braces
52
Indent-based block scoping in Xtext
Highlighting of boxes-
editbox.sourceforge.net
53
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
54
Grammar
NL - newline
WS – whitespace
BEGIN – indent
END - outdent
55
Grammar NL: not
hidden
NL - newline
WS – whitespace
BEGIN – indent
END - outdent
56
Grammar NL: not
hidden
NL - newline
WS – whitespace
BEGIN – indent
END - outdent
57
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Lexer
58
Custom Lexer
Custom
code
Generated /
Xtext code
Indent-based Syntax in Xtext -
tinyurl.com/pgcowct
Insert BEGIN and
END token
59
Content assist
60
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Content
Assist
61
Custom Lexers
Plural now
Custom code
Generated /
Xtext code
Content-assist
needs its own lexer
Custom Lexers
62
Custom
code
Generated /
Xtext code
Content Assist
63
Also see “Enhancing
Content Assist” from
XtextCON 2015 -
tinyurl.com/onou2hu
Content Assist
64
Also see “Enhancing
Content Assist” from
XtextCON 2015 -
tinyurl.com/onou2hu
Content Assist
65
Also see “Enhancing
Content Assist” from
XtextCON 2015 -
tinyurl.com/onou2hu
Content Assist
66
Place for
customization
Content-Assist Context Factory
67
Initialize data
Analyze data to
create content
assist contexts
Content
Assist
Contexts
Content-Assist Context Factory
68
Initialize data
Analyze data to
create content
assist contexts
Content
Assist
Contexts
Syntax tree nodes –
lastCompleteNode,
lastVisibleNode, currentNode,
datatypeNode
Semantic model - current model
Initialize data
Analyze data to
create content
assist contexts
Content
Assist
Contexts
Content-Assist Context Factory
69
Start a new token, complete
current one, collect
available alternatives, etc…
Initialize data
Analyze data to
create content
assist contexts
Content
Assist
Contexts
Content-Assist Context Factory
70
Customize to
respect indents
71
Implementation: Grammar
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
Formatter
Formatter
72
Assign correct value to
FormattingConfigBasedStream
#indentationLevel
No spaces around “invisible”
rules – synthetic (BEGIN and
END) and NL (newline)
No line wraps should be
introduced by formatter – line
wraps change structure of
Python-like models
73
Changes: Indent-based Syntax
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
FormatterContent
AssistLexer
Add BEGIN and
END terminal
rules
74
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
FormatterContent
AssistLexer
Synthesize
BEGIN and END
tokens
Changes: Indent-based Syntax
75
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
FormatterContent
AssistLexer
Show proposals
according to
indent level
Changes: Indent-based Syntax
76
The rest
(customized from generated code)
Xtext
Grammar
(*.xtext file)
Generated code
FormatterContent
AssistLexer
Preserve NLs
and indents
Changes: Indent-based Syntax
Summary
• Still an ongoing experiment
◦ Early feedback from users has been very positive.
◦ We welcome your feedback!
• Register for Early Access program at
get.reprezen.com
• Contacts:
◦ ted.epstein@reprezen.com
◦ tatiana.fesenko@reprezen.com
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 77
Questions
THANK YOU!
COPYRIGHT © 2015, MODELSOLV, INC. | ALL RIGHTS RESERVED. 78

More Related Content

What's hot

Automated Frontend Testing
Automated Frontend TestingAutomated Frontend Testing
Automated Frontend Testing
Neil Crosby
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX, Inc.
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
Arawn Park
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
Chanwoong Kim
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature Overview
Jim Bethancourt
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
Insub Lee
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
Lorenzo Miniero
 
Python 테스트 시작하기
Python 테스트 시작하기Python 테스트 시작하기
Python 테스트 시작하기
Hosung Lee
 
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
NGINX Back to Basic 2 Part 2 (Japanese Webinar)NGINX Back to Basic 2 Part 2 (Japanese Webinar)
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
NGINX, Inc.
 
React Server Side Rendering with Next.js
React Server Side Rendering with Next.jsReact Server Side Rendering with Next.js
React Server Side Rendering with Next.js
Jamie Barton 👨🏻‍💻
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Tadahiro Ishisaka
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Justin Lin
 
EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1
Haytham Ghandour
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
NAVER Engineering
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
NAVER D2
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
if kakao
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
VMware Tanzu
 

What's hot (20)

Automated Frontend Testing
Automated Frontend TestingAutomated Frontend Testing
Automated Frontend Testing
 
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)NGINX Back to Basics: Ingress Controller (Japanese Webinar)
NGINX Back to Basics: Ingress Controller (Japanese Webinar)
 
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
Atlassian Bamboo Feature Overview
Atlassian Bamboo Feature OverviewAtlassian Bamboo Feature Overview
Atlassian Bamboo Feature Overview
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
 
Python 테스트 시작하기
Python 테스트 시작하기Python 테스트 시작하기
Python 테스트 시작하기
 
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
NGINX Back to Basic 2 Part 2 (Japanese Webinar)NGINX Back to Basic 2 Part 2 (Japanese Webinar)
NGINX Back to Basic 2 Part 2 (Japanese Webinar)
 
React Server Side Rendering with Next.js
React Server Side Rendering with Next.jsReact Server Side Rendering with Next.js
React Server Side Rendering with Next.js
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
 
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 SpringSpring 2.0 技術手冊第六章 - Hibernate 與 Spring
Spring 2.0 技術手冊第六章 - Hibernate 與 Spring
 
EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1
 
JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event Loop
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
 
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
 

Viewers also liked

Practicas pfsense vlan
Practicas pfsense vlanPracticas pfsense vlan
Practicas pfsense vlan
Deibis Moreno
 
Site-to-Site IPSEC VPN Between Cisco ASA and Pfsense
Site-to-Site IPSEC VPN Between Cisco ASA and PfsenseSite-to-Site IPSEC VPN Between Cisco ASA and Pfsense
Site-to-Site IPSEC VPN Between Cisco ASA and Pfsense
Harris Andrea
 
Building with Watson - Interpreting Language Using the Natural Language Class...
Building with Watson - Interpreting Language Using the Natural Language Class...Building with Watson - Interpreting Language Using the Natural Language Class...
Building with Watson - Interpreting Language Using the Natural Language Class...
IBM Watson
 
Livro pfsense 2.0 pt br
Livro pfsense 2.0 pt brLivro pfsense 2.0 pt br
Livro pfsense 2.0 pt br
Wenderson Teixeira Paulo
 
pfSense, OpenSource Firewall
pfSense, OpenSource FirewallpfSense, OpenSource Firewall
pfSense, OpenSource Firewall
Erik Kirschner
 
pfSense Installation Slide
pfSense Installation SlidepfSense Installation Slide
pfSense Installation Slide
Sopon Tumchota
 
Gohan
GohanGohan
Gohan
Nachi Ueno
 

Viewers also liked (9)

pfSense
pfSensepfSense
pfSense
 
Practicas pfsense vlan
Practicas pfsense vlanPracticas pfsense vlan
Practicas pfsense vlan
 
Site-to-Site IPSEC VPN Between Cisco ASA and Pfsense
Site-to-Site IPSEC VPN Between Cisco ASA and PfsenseSite-to-Site IPSEC VPN Between Cisco ASA and Pfsense
Site-to-Site IPSEC VPN Between Cisco ASA and Pfsense
 
66_pfSenseTutorial
66_pfSenseTutorial66_pfSenseTutorial
66_pfSenseTutorial
 
Building with Watson - Interpreting Language Using the Natural Language Class...
Building with Watson - Interpreting Language Using the Natural Language Class...Building with Watson - Interpreting Language Using the Natural Language Class...
Building with Watson - Interpreting Language Using the Natural Language Class...
 
Livro pfsense 2.0 pt br
Livro pfsense 2.0 pt brLivro pfsense 2.0 pt br
Livro pfsense 2.0 pt br
 
pfSense, OpenSource Firewall
pfSense, OpenSource FirewallpfSense, OpenSource Firewall
pfSense, OpenSource Firewall
 
pfSense Installation Slide
pfSense Installation SlidepfSense Installation Slide
pfSense Installation Slide
 
Gohan
GohanGohan
Gohan
 

Similar to RAPID - Building a highly usable API Design language with XText

Alfresco share 4.1 to 4.2 customisation
Alfresco share 4.1 to 4.2 customisationAlfresco share 4.1 to 4.2 customisation
Alfresco share 4.1 to 4.2 customisation
Muralidharan Deenathayalan
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep Dive
Gabriel Michaud
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET Dmytro Mindra
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers
 
Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018
Timothy Spann
 
M meijer api management - tech-days 2015
M meijer   api management - tech-days 2015M meijer   api management - tech-days 2015
M meijer api management - tech-days 2015
Freelance Consultant / Manager / co-CTO
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
Daryl Walleck
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
Rodolfo Finochietti
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
 
What’s new in the 4.5
What’s new in the 4.5What’s new in the 4.5
What’s new in the 4.5
Yuriy Seniuk
 
Omni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing WorkOmni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing Work
inside-BigData.com
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Callon Campbell
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
FHIR Server internals - sqlonfhir
FHIR Server internals - sqlonfhirFHIR Server internals - sqlonfhir
FHIR Server internals - sqlonfhir
Brian Postlethwaite
 
Deep learning on HDP 2018 Prague
Deep learning on HDP 2018 PragueDeep learning on HDP 2018 Prague
Deep learning on HDP 2018 Prague
Timothy Spann
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
Malam Team
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
Lois Patterson
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
Jack Molisani
 
ITB2019 Keynotes Day 2 - Ortus Team
ITB2019 Keynotes Day 2 - Ortus TeamITB2019 Keynotes Day 2 - Ortus Team
ITB2019 Keynotes Day 2 - Ortus Team
Ortus Solutions, Corp
 

Similar to RAPID - Building a highly usable API Design language with XText (20)

Alfresco share 4.1 to 4.2 customisation
Alfresco share 4.1 to 4.2 customisationAlfresco share 4.1 to 4.2 customisation
Alfresco share 4.1 to 4.2 customisation
 
Contract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep DiveContract-Based Web Services API Deep Dive
Contract-Based Web Services API Deep Dive
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
 
Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018
 
M meijer api management - tech-days 2015
M meijer   api management - tech-days 2015M meijer   api management - tech-days 2015
M meijer api management - tech-days 2015
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
 
What’s new in the 4.5
What’s new in the 4.5What’s new in the 4.5
What’s new in the 4.5
 
Omni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing WorkOmni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing Work
 
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
Global Azure 2022 - Architecting Modern Serverless APIs with Azure Functions ...
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
FHIR Server internals - sqlonfhir
FHIR Server internals - sqlonfhirFHIR Server internals - sqlonfhir
FHIR Server internals - sqlonfhir
 
Diwakar Nag
Diwakar NagDiwakar Nag
Diwakar Nag
 
Deep learning on HDP 2018 Prague
Deep learning on HDP 2018 PragueDeep learning on HDP 2018 Prague
Deep learning on HDP 2018 Prague
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
 
ITB2019 Keynotes Day 2 - Ortus Team
ITB2019 Keynotes Day 2 - Ortus TeamITB2019 Keynotes Day 2 - Ortus Team
ITB2019 Keynotes Day 2 - Ortus Team
 

Recently uploaded

TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 

Recently uploaded (20)

TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 

RAPID - Building a highly usable API Design language with XText