SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Similaire à 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
 
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
 
Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unity 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
 

Similaire à 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
 
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
 
Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020Unite Copehagen 2019 - Unity Roadmap 2020
Unite Copehagen 2019 - Unity Roadmap 2020
 
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
 

Plus 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
 

Plus 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
 

Dernier

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Dernier (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
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
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

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

Notes de l'éditeur

  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»