SlideShare uma empresa Scribd logo
1 de 19
Franco Lombardo – Agile software developer @Sme.UP
franco.lombardo@smeup.com
Twitter: @f_lombardo
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Unit testing on AS400?
Yes we can! (With Kotlin)
AS400 ~= RPG
AS400 programs
~=
RPG programs
(Report Program Generator)
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG – Cos’è l’RPG?
"RPG is an IBM proprietary
programming language
and its later versions are
available only on IBM i
or OS/400-based systems"
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Wikipedia
RPG – Cos’è l’RPG?
"RPG is an IBM proprietary
programming language
and its later versions are
available only on IBM i
or OS/400-based systems"
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Wikipedia
RPG – Available only on IBM i
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
How can you learn it?
RPG – Available only on IBM i
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
How can you create prototypes?
RPG – Available only on IBM i
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Infrastructure as code?
How to create and distribuire
pre-configured machines? (DevOps)
RPG – Available only on IBM i
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Horizontal scalability?
RPG – IBM proprietary
Could the language grow
independently from IBM?
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG – IBM proprietary
How to add new technologies
quickly?
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG interpreter – Toward a better RPG
Our idea:
create an RPG interpreter
- Open Source
- Portable: working both on IBM i,
and on other platforms (Kotlin + ANTLR)
- Extendable
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
extendable
RPG interpreter – From RPG to a DSL
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG interpreter – Unit tests in RPG
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG interpreter – A modern ecosystem
• Unit Tests
• Editor
• Debugger
• Version Control System
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Side effects of our project:
RPG interpreter – A sample workflow
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
RPG interpreter – Visual Studio Code
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
https://github.com/smeup/smeup-rpg/blob/master/docs/visual_studio_code.md
Interprete RPG – Visual Studio Code
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
Interprete RPG – JaRIKo
8-9 Novembre 2019ITALIAN AGILE DAYS 2019
A great team (thanks to Strumenta.com), but..
We want you!
https://github.com/smeup/jariko
Erbusco (BS) Headqarters
Via Iseo, 43 – 25030
+39 030 7724111
Sme.UP
Paderno Dugnano (MI)
Via Varese 6/A – 20037
+39 02 910871
Rivoli (TO)
Via Pavia, 11/B – 10098
+39 011 906211
Savigliano (CN)
Corso Roma 54 – 12038
+39 0172 31412
Lecco (LC)
Via della Pergola, 73 – 23900
+39 0341 496864
Parma (PR)
Strada dei Mercati, 16/E – 43126
+39 0521 940611
Roma (RM)
Via Prenestina, 390 – 00171
+39 06 5940517
Vigonza (PD)
Via Trevisan 1, – 35010
+39 049 8936173
Modena (MO)
Via Canaletto, 164 – 41122
+39 059 451721
Reggio Emilia (RE)
Via A.Gramsci, 88/A -42124
+39 0522 516121
Brescia (BS)
Via Padova, 11 – 25125
+39 030 2585325
Villaverla (VI)
Piazza delle Fornaci, 4 – 36030
+39 0444 1835222
Vercelli (VC)
Corso Giuseppe Garibaldi, 51 – 13100
+39 0161 56924
Udine (UD)
Via Mantova 108/E, – 33100
+39 0432 540364
info@smeup.com
+39 030 7724111
SME UP S.p.A.
Via Iseo, 43 - 25030 Erbusco (BS) - Italy
www.smeup.com

Mais conteúdo relacionado

Semelhante a Unit testing on AS400? Yes we can! (With Kotlin)

Building Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowBuilding Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowDatabricks
 
Ariadne: familiar GraphQL in Python
Ariadne: familiar GraphQL in PythonAriadne: familiar GraphQL in Python
Ariadne: familiar GraphQL in PythonMirumee Software
 
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...Bosnia Agile
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNick Pentreath
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Bertrand Delacretaz
 
DEF CON 27 - workshop - POLOTO - hacking the android apk
DEF CON 27 - workshop - POLOTO - hacking the android apkDEF CON 27 - workshop - POLOTO - hacking the android apk
DEF CON 27 - workshop - POLOTO - hacking the android apkFelipe Prado
 
Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unity Technologies
 
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019Unity Technologies
 
G PRO Wireless Master Creative + Style Guide
G PRO Wireless Master Creative + Style GuideG PRO Wireless Master Creative + Style Guide
G PRO Wireless Master Creative + Style GuideTim Hinson
 
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...Peter Gallagher
 
Creating a GraphQL API in Python: from Django to fully asynchronous
Creating a GraphQL API in Python: from Django to fully asynchronousCreating a GraphQL API in Python: from Django to fully asynchronous
Creating a GraphQL API in Python: from Django to fully asynchronousMirumee Software
 
Observability pillars applied to serverless
Observability pillars applied to serverlessObservability pillars applied to serverless
Observability pillars applied to serverlessSteve Houël
 
Debevec vrai-s-asia2019
Debevec vrai-s-asia2019Debevec vrai-s-asia2019
Debevec vrai-s-asia2019Joaquim Jorge
 
OSC2019_Tokyo_Spring_スポンサーLT
 OSC2019_Tokyo_Spring_スポンサーLT OSC2019_Tokyo_Spring_スポンサーLT
OSC2019_Tokyo_Spring_スポンサーLT虎の穴 開発室
 
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...Getting started with IoT with only your Laptop (Lightning Talk) - October 201...
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...Peter Gallagher
 
Getting started with IoT with only your Laptop - July 2019 - Digital Lincoln
Getting started with IoT with only your Laptop - July 2019 - Digital LincolnGetting started with IoT with only your Laptop - July 2019 - Digital Lincoln
Getting started with IoT with only your Laptop - July 2019 - Digital LincolnPeter Gallagher
 
go + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみるgo + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみる虎の穴 開発室
 
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperGenerative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperDanil Nagy
 
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...Peter Gallagher
 
Computer input and output devices
Computer input and output devicesComputer input and output devices
Computer input and output devicesINGAMULE SIRAJI
 

Semelhante a Unit testing on AS400? Yes we can! (With Kotlin) (20)

Building Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and KubeflowBuilding Notebook-based AI Pipelines with Elyra and Kubeflow
Building Notebook-based AI Pipelines with Elyra and Kubeflow
 
Ariadne: familiar GraphQL in Python
Ariadne: familiar GraphQL in PythonAriadne: familiar GraphQL in Python
Ariadne: familiar GraphQL in Python
 
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...
DevOps Transformation in Microsoft – Case Study by Ognjen Bajic and Ana Roje ...
 
Notebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and KubeflowNotebook-based AI Pipelines with Elyra and Kubeflow
Notebook-based AI Pipelines with Elyra and Kubeflow
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?
 
DEF CON 27 - workshop - POLOTO - hacking the android apk
DEF CON 27 - workshop - POLOTO - hacking the android apkDEF CON 27 - workshop - POLOTO - hacking the android apk
DEF CON 27 - workshop - POLOTO - hacking the android apk
 
Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020
 
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
What to expect in 2020: Unity roadmap - Unite Copenhagen 2019
 
G PRO Wireless Master Creative + Style Guide
G PRO Wireless Master Creative + Style GuideG PRO Wireless Master Creative + Style Guide
G PRO Wireless Master Creative + Style Guide
 
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...
Getting started with IoT with only your laptop - September 2019 - Dot Net Liv...
 
Creating a GraphQL API in Python: from Django to fully asynchronous
Creating a GraphQL API in Python: from Django to fully asynchronousCreating a GraphQL API in Python: from Django to fully asynchronous
Creating a GraphQL API in Python: from Django to fully asynchronous
 
Observability pillars applied to serverless
Observability pillars applied to serverlessObservability pillars applied to serverless
Observability pillars applied to serverless
 
Debevec vrai-s-asia2019
Debevec vrai-s-asia2019Debevec vrai-s-asia2019
Debevec vrai-s-asia2019
 
OSC2019_Tokyo_Spring_スポンサーLT
 OSC2019_Tokyo_Spring_スポンサーLT OSC2019_Tokyo_Spring_スポンサーLT
OSC2019_Tokyo_Spring_スポンサーLT
 
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...Getting started with IoT with only your Laptop (Lightning Talk) - October 201...
Getting started with IoT with only your Laptop (Lightning Talk) - October 201...
 
Getting started with IoT with only your Laptop - July 2019 - Digital Lincoln
Getting started with IoT with only your Laptop - July 2019 - Digital LincolnGetting started with IoT with only your Laptop - July 2019 - Digital Lincoln
Getting started with IoT with only your Laptop - July 2019 - Digital Lincoln
 
go + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみるgo + swaggerでAPIサーバーを作ってみる
go + swaggerでAPIサーバーを作ってみる
 
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopperGenerative Design - Week 2 - Parametric modeling in rhino and grasshopper
Generative Design - Week 2 - Parametric modeling in rhino and grasshopper
 
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...
Getting started with IoT with only your laptop and Workshop - May 2019 - Tech...
 
Computer input and output devices
Computer input and output devicesComputer input and output devices
Computer input and output devices
 

Mais de Franco Lombardo

Kotlin from-scratch 3 - coroutines
Kotlin from-scratch 3 - coroutinesKotlin from-scratch 3 - coroutines
Kotlin from-scratch 3 - coroutinesFranco Lombardo
 
Kotlin from-scratch 2 - functions
Kotlin from-scratch 2 - functionsKotlin from-scratch 2 - functions
Kotlin from-scratch 2 - functionsFranco Lombardo
 
Interprete Kotlin per l’RPG e libreria Web Components: Open Source per la m...
Interprete Kotlin per l’RPG  e libreria Web Components: Open Source per  la m...Interprete Kotlin per l’RPG  e libreria Web Components: Open Source per  la m...
Interprete Kotlin per l’RPG e libreria Web Components: Open Source per la m...Franco Lombardo
 
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019Franco Lombardo
 
Un interprete Kotlin per il linguaggio RPG AS400 - IBM i
Un interprete Kotlin per il linguaggio RPG AS400 - IBM iUn interprete Kotlin per il linguaggio RPG AS400 - IBM i
Un interprete Kotlin per il linguaggio RPG AS400 - IBM iFranco Lombardo
 
Agile Happiness - Agile O'Day 2018
Agile Happiness - Agile O'Day 2018Agile Happiness - Agile O'Day 2018
Agile Happiness - Agile O'Day 2018Franco Lombardo
 
Rock scissors-paper-kata
Rock scissors-paper-kataRock scissors-paper-kata
Rock scissors-paper-kataFranco Lombardo
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con ScalaFranco Lombardo
 

Mais de Franco Lombardo (14)

happiness_2023.pdf
happiness_2023.pdfhappiness_2023.pdf
happiness_2023.pdf
 
Kotlin from-scratch 3 - coroutines
Kotlin from-scratch 3 - coroutinesKotlin from-scratch 3 - coroutines
Kotlin from-scratch 3 - coroutines
 
Kotlin from-scratch 2 - functions
Kotlin from-scratch 2 - functionsKotlin from-scratch 2 - functions
Kotlin from-scratch 2 - functions
 
Kotlin from-scratch
Kotlin from-scratchKotlin from-scratch
Kotlin from-scratch
 
Interprete Kotlin per l’RPG e libreria Web Components: Open Source per la m...
Interprete Kotlin per l’RPG  e libreria Web Components: Open Source per  la m...Interprete Kotlin per l’RPG  e libreria Web Components: Open Source per  la m...
Interprete Kotlin per l’RPG e libreria Web Components: Open Source per la m...
 
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019
TDD su AS400? Con Kotlin si può fare! - Italian Agile Days 2019
 
Un interprete Kotlin per il linguaggio RPG AS400 - IBM i
Un interprete Kotlin per il linguaggio RPG AS400 - IBM iUn interprete Kotlin per il linguaggio RPG AS400 - IBM i
Un interprete Kotlin per il linguaggio RPG AS400 - IBM i
 
Agile Happiness - Agile O'Day 2018
Agile Happiness - Agile O'Day 2018Agile Happiness - Agile O'Day 2018
Agile Happiness - Agile O'Day 2018
 
Agile Happiness 2
Agile Happiness 2Agile Happiness 2
Agile Happiness 2
 
Agile Happiness
Agile HappinessAgile Happiness
Agile Happiness
 
Java per as400
Java per as400Java per as400
Java per as400
 
Rock scissors-paper-kata
Rock scissors-paper-kataRock scissors-paper-kata
Rock scissors-paper-kata
 
A First Date With Scala
A First Date With ScalaA First Date With Scala
A First Date With Scala
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
 

Último

From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIInflectra
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbankkasambamuno
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit MilanNeo4j
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationElement34
 
What is a Recruitment Management Software?
What is a Recruitment Management Software?What is a Recruitment Management Software?
What is a Recruitment Management Software?NYGGS Automation Suite
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksJinanKordab
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...naitiksharma1124
 
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphGraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphNeo4j
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...drm1699
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaNeo4j
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringPrakhyath Rai
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Conceptsthomashtkim
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jNeo4j
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In hararekasambamuno
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 

Último (20)

From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
 
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
Workshop -  Architecting Innovative Graph Applications- GraphSummit MilanWorkshop -  Architecting Innovative Graph Applications- GraphSummit Milan
Workshop - Architecting Innovative Graph Applications- GraphSummit Milan
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 
What is a Recruitment Management Software?
What is a Recruitment Management Software?What is a Recruitment Management Software?
What is a Recruitment Management Software?
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with GraphGraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
GraphSummit Milan & Stockholm - Neo4j: The Art of the Possible with Graph
 
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
Abortion Pills For Sale WhatsApp[[+27737758557]] In Birch Acres, Abortion Pil...
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
^Clinic ^%[+27788225528*Abortion Pills For Sale In harare
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 

Unit testing on AS400? Yes we can! (With Kotlin)

  • 1. Franco Lombardo – Agile software developer @Sme.UP franco.lombardo@smeup.com Twitter: @f_lombardo 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Unit testing on AS400? Yes we can! (With Kotlin)
  • 2. AS400 ~= RPG AS400 programs ~= RPG programs (Report Program Generator) 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 3. RPG – Cos’è l’RPG? "RPG is an IBM proprietary programming language and its later versions are available only on IBM i or OS/400-based systems" 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Wikipedia
  • 4. RPG – Cos’è l’RPG? "RPG is an IBM proprietary programming language and its later versions are available only on IBM i or OS/400-based systems" 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Wikipedia
  • 5. RPG – Available only on IBM i 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 How can you learn it?
  • 6. RPG – Available only on IBM i 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 How can you create prototypes?
  • 7. RPG – Available only on IBM i 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Infrastructure as code? How to create and distribuire pre-configured machines? (DevOps)
  • 8. RPG – Available only on IBM i 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Horizontal scalability?
  • 9. RPG – IBM proprietary Could the language grow independently from IBM? 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 10. RPG – IBM proprietary How to add new technologies quickly? 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 11. RPG interpreter – Toward a better RPG Our idea: create an RPG interpreter - Open Source - Portable: working both on IBM i, and on other platforms (Kotlin + ANTLR) - Extendable 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 extendable
  • 12. RPG interpreter – From RPG to a DSL 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 13. RPG interpreter – Unit tests in RPG 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 14. RPG interpreter – A modern ecosystem • Unit Tests • Editor • Debugger • Version Control System 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 Side effects of our project:
  • 15. RPG interpreter – A sample workflow 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 16. RPG interpreter – Visual Studio Code 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 https://github.com/smeup/smeup-rpg/blob/master/docs/visual_studio_code.md
  • 17. Interprete RPG – Visual Studio Code 8-9 Novembre 2019ITALIAN AGILE DAYS 2019
  • 18. Interprete RPG – JaRIKo 8-9 Novembre 2019ITALIAN AGILE DAYS 2019 A great team (thanks to Strumenta.com), but.. We want you! https://github.com/smeup/jariko
  • 19. Erbusco (BS) Headqarters Via Iseo, 43 – 25030 +39 030 7724111 Sme.UP Paderno Dugnano (MI) Via Varese 6/A – 20037 +39 02 910871 Rivoli (TO) Via Pavia, 11/B – 10098 +39 011 906211 Savigliano (CN) Corso Roma 54 – 12038 +39 0172 31412 Lecco (LC) Via della Pergola, 73 – 23900 +39 0341 496864 Parma (PR) Strada dei Mercati, 16/E – 43126 +39 0521 940611 Roma (RM) Via Prenestina, 390 – 00171 +39 06 5940517 Vigonza (PD) Via Trevisan 1, – 35010 +39 049 8936173 Modena (MO) Via Canaletto, 164 – 41122 +39 059 451721 Reggio Emilia (RE) Via A.Gramsci, 88/A -42124 +39 0522 516121 Brescia (BS) Via Padova, 11 – 25125 +39 030 2585325 Villaverla (VI) Piazza delle Fornaci, 4 – 36030 +39 0444 1835222 Vercelli (VC) Corso Giuseppe Garibaldi, 51 – 13100 +39 0161 56924 Udine (UD) Via Mantova 108/E, – 33100 +39 0432 540364 info@smeup.com +39 030 7724111 SME UP S.p.A. Via Iseo, 43 - 25030 Erbusco (BS) - Italy www.smeup.com

Notas do Editor

  1. Tecnologia e innovazione
  2. Alison Butterill,
  3. Guarda caso le tecnologie che girano sul mio portatile sono quelle che consentono il «DevOps». «Sulla mia macchina funzionava»