Sessions - Programming Tools

If you write new software or maintain existing RPG applications, you’ll learn about the latest techniques for RPG IV and ILE. Plus, no matter what language you use, you will want experience with the Rational Development Tools that will make you more productive.

2018 sessions will include:


  • Introduction to Processing XML in RPG and SQL Too!
  • XML and JSON Rest Web Services for Everyday RPG and SQL Consumption
  • Advanced Data Structures - with Free-form
  • Processing and Creating JSON from RPG
  • RPG Tips & Techniques
  • Using Free Tools By Example - using free (or nearly free) software
  • What's New in RPG?
  • Developer Productivity – Playbook for Moving to RPG Sub-Procedures and Locally Scoped Variables
  • Free Format RPG
  • Future Proofing Your RPG Applications
  • RPG: The Power of the Prototype
  • Easily Modify Report Programs (Because You Have Better Things to Do)
  • Fun!(damental) and Fun!(ctional) Table-driven Programming

Open Source

  • IBM i IFS Containers
  • Intro to Git
  • Intro to Node.js
  • Intro To Open Source On IBM i
  • Node.js Transacts with DB2 and RPG
  • WebSockets, Node.js, IBM i, and Watson
  • Using Db2 and SQL with Open Source Languages on IBM i
  • iHeart Open Source
  • MariaDB on IBM i
  • Turn On the LAMP – please!
  • Tap Into Open Source from RPG

  • PHP and Db2 Essentials
  • Speedy PHP on IBM i
  • Strategic Modernization with PHP
  • PHP Development Tools
  • PHP Syntax
  • PHP7 – Benefits of Upgrading

  • Making RDi go POP! with iSphere
  • Putting the Pedal to the Metal for RDi
  • RDi DDS Designer

Advanced Data Structures - Now with Free-Form! 
Application Lifecycle Management for IBM i development
Automatic conversion of RPGLE source code to Free Format RPG
Debugging with RDP/RDi   
Designing Screens and Reports with RDi/RDP 
From STRDBG to the RDP Debugger
Generating XML with RPG << new session >> 
IBM i Developers' Roadmap
Latest RPG Enhancements in V6 and V7
Look Out Below! A 50,000 Foot Overview of RDi (Rational Developer)
Meeting users' needs with free software 
My Favorite Things about RSE (aka RDi/RDP) 
Not your father’s RPG! A look at RPG’s latest Free Form enhancements
Processing XML with RPG 
RPG and the IFS (Summit)
RPG Native Mobile Apps
RPG Open Access - By Example  
RPG Subprocedures - Beyond the Basics 
RPG Subprocedures - The Basics 
RPG User Defined Functions & Table Functions 
Test-driven to Behavior-driven Development - The New Buzz
The Science and Use of ILE Service Programs
Value of Rational Developer for i for the Modern RPG Programer
Working With JSON in RPG
NEUGC 2018 Sessions by Track – Programming Tools 

Easily Modify Report Programs (Because You Have Better Things to Do) 

       (Ted Holt)

No matter how much hardware and software technologies change, some things always stay the same. A prime example is the generation of columnar reports. Whereas columnar reports were once printed on green-bar paper, nowadays they show up in spreadsheets, PDF files, and web browsers. You have challenging work that needs to be done, so why spend hours making simple modifications to report programs? Let Ted Holt show you how to write report programs that are quickly and easily modified as requirements change.

Fun!(damental) and Fun!(ctional) Table-driven Programming (Ted Holt)

In table-driven programming, a programmer specifies program logic in an array (also known as a table) instead of coding procedural control statements.

In this presentation, Ted Holt begins by contrasting procedural and table-driven programming. Next he walks through an example that demonstrates that table-driven programming can solve problems that procedural programming can’t. Finally, Ted illustrates the power of table-driven programming by sharing a utility he developed using table-driven techniques.

Programmers who attend this session will be exposed to new ideas and techniques that will augment their tool chests. Managers will be challenged to think of new ways to develop applications that support end users.

What's New in RPG? (Jon Paris)

Not just the very latest release as of the event, but also reviewing all the highlights of the releases in V7.

Advanced Data Structures - with Free-form (Jon Paris)

Same basic session as last year but with significant updates.

Using Free Tools By Example - using free (or nearly free) software (Jon Paris)

Often open source - to help developers - things like Help Desk sw, test data generation, wikis, and tools for building modern apps quickly.

Processing and Creating JSON from RPG (Jon Paris)

RPG Tips & Techniques (Jon Paris)

A collection of RPG techniques that Jon finds interesting.

RPG: The Power of the Prototype (Susan Gantner)
Everyone who does free format RPG has to know how to use prototypes to replace their old parm lists. However may people don't understand how much prototypes can do for them. 
In this session, I cover prototype basics but concentrate more on exploiting the often overlooked features of prototypes.

Developer Productivity – Playbook for moving to RPG Sub-Procedures and Locally Scoped Variables (Ray Everhart)
Developers can benefit greatly from creating sub procedures in their existing programs. This session reinforces the benefits of locally scoped variables and walks step by step though the process needed to convert existing code to use sub procedures as well as developing a template for future development.
Learning Objectives 
1. How to demonstrate the business value that comes from modularization.
2. How to identify which logic should be placed into a sub procedure.
3. How to properly scope variables.
4. How to standardize the handling of errors.

Free Format RPG (Susan Gantner)

Covers free form RPG in much more detail than the "What's new in RPG" kind of sessions can do.

Future Proofing Your RPG Applications (Susan Gantner)

This would cover the basics of that article as well as include examples of some of the things we mentioned there. We'll also include some things that weren't in that article such as: where will the future RPGers come from? 

XML and JSON REST Web Services for Everyday RPG and SQL Consumption          (Charles Guarino)

A web service extends your applications in a way that no traditional programming can. They allow you to get real time information for almost any requirement. We’ll discuss what web services are, how they function and how you can begin using them on your own system. Get step-by-step instructions on the entire Web service process from receiving an XML or JSON document to successfully parsing its information to a display or database file.  See working RPG code of an XML parsing program and watch how we consume a RESTful web service.

Updates include i7.1 SQL enhancements which make consuming web services a snap. This session includes source code to get started using dynamic Web services today!

Introduction to Processing XML in RPG and SQL Too! (Charles Guarino)

XML has quickly become a standard method of encoding data. It can be used for full document transmittals or data provided via a web service. The extraction of this data into useable information is called parsing. RPG provides two different methods for parsing. This session goes step by step through the entire process of receiving an XML document to successfully parsing it to a database file. The XMLINTO and XML-SAX statements will be reviewed. The challenges and requirements of both statements will be discussed. At the end of this session, you will be able to identify which parsing method works best for your particular situation. Included with this session are program listings that you can take back and put to use immediately. Updates to this session include i7.1 TR6’s exciting SQL XML processing.

Learning Objectives:
1) Gain a basic understanding of XML syntax
2) Learn how XML parsing has been implemented into RPG.
3) See live examples of the XML parsers at work.

Open Source

Intro to Git (Aaron Bartell)

In short, Git allows you to keep a detailed history of source code changes with very little effort.  Git is free, open source, and easy to install on IBM i.  You can even use Git to manage RPG source.  What are you waiting for?  Git is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is arguably the most popular way to manage source code versions industry wide.

What we will cover:

  • Introduction to what Git is and how it works
  • Installation of Git on IBM i
  • How to connect with Bitbucket/GitHub via SSH
  • Basic flows of usage
  • Visual Git tooling

Intro to Node.js (Aaron Bartell)

Node.js is here.  Yep, Javascript on the server side of things.  Is this a good thing?  That's what we'll be looking to decipher as we walk through the following points at a high level, all the while relating it to the RPG programmer mindset to more easily draw similarities.  And seriously, Javascript is employment insurance.  You have life insurance and car insurance, and, and, and;  well, why not employment insurance.  Learn something (Javascript, and inherently Node.js) that is applicable to every single website on the internet.

In this session we will learn about the following:
  • Why Node.js? We already have Java, PHP, Ruby.
  • How to obtain and install Node.js
  • Make Node talk to your RPG and DB2
  • What's this i/o blocking stuff I hear about Node.js?
  • Javascript syntax - brief intro
  • Javascript callbacks - they're everywhere, but how do they affect your programming in Node?
  • Create a simple "hello world" app without using frameworks.

Node.js transacts with DB2 and RPG (Aaron Bartell)

When IBM introduced Node.js to IBM i they included a full fledge DB2 for i database driver written directly against the SQL CLI APIs.  No middle layer JDBC or MySQL in the mix.  They also provided the iToolkit, a seamless way to call RPG (or any other type of resource or program on IBM i) directly from Node.js.  Very cool.  This means adopting Node.js doesn't mean abandoning your huge investment in RPG; instead you can revitalize it.  That makes good business sense.

In this session we will do the following:
  • Walk through the various features and ways to communicate with existing DB2 tables directly from Node.js.
  • Talk about blocking and non-blocking database i/o
  • How to interface with DB2 for i Services to create a cool realtime WebSockets app that displays WRKACTJOB type information
  • Introduce XMLSERVICE and its feature set.
  • Walk through the various features and ways to communicate with existing RPG programs directly from a Node.js program that is running on the same IBM i!  
  • Show how to do iterative development using the Node.js REPL capabilities (programming in a real-time response environment) - a great tool and approach for learning how to code in 
  • Learn how to modularize your Node.js calls to RPG to make them reusable.
  • Discuss how to make stateful requests to an RPG *SRVPGM.

IBM i IFS Containers (Aaron Bartell)

In this session we will introduce the ibmichroot (IBM i Chroot) open source project.  Think of this technology being similar to being able to create a bunch of micro instances of IBM i all on a single instance of IBM i.  This is accomplished by using PASE's chroot utility and is what I'm terming "IFS Containers".  This technology is excellent for those running applications in PASE (i.e. Node.js, Ruby, Python, PHP).  It will keep PASE applications completely separate from one another so there is no toe stepping.  I often use this technology for creating separate environments for development, testing, staging and production.  Further, the ibmichroot project facilitates the download and install of AIX binaries from hosts hundreds of open source programs from the Linux world that have been made to work on AIX.  Some of the more notable ones include: gcc, Git, Nginx, joe (server-side editor), bash, zsh, Perl, bzip2, ghostscript, Ruby and many more.  Having these tools on IBM i brings about a new level of parity with other platforms.

On final note, yum support was recently added to the ibmichroot project and we will be talking about how that is a game changer for IBM i and open source.

In this session we will learn the following:
  • What are containers and how are they used
  • Learn about chroot command
  • Manual chroot IFS Container creation
  • Introduce IBM i Chroot project and how to install it
  • Creating new IFS Containers using IBM i Chroot project
  • Learn about pre-packaged IFS Container configurations and how to make your own
  • How to install open source packages

Intro To Open Source On IBM i (Aaron Bartell)

Open source on IBM i is growing at an incredibly fast pace.  Is it for you?  Why should you consider it?  We'll walk through the reasoning of why pursuing open source is as much of a business decision as it is a technology decision.  We'll discuss commercial vs. open source software and associated costs.  Then we'll dive into describing the PASE environment on IBM i and how it facilitates open source.  We'll describe how to access and navigate PASE.  And lastly we'll describe some tangible examples of how you can adopt open source at a small scale to "test the waters".

In this session we'll discuss the following:
  • Is your IBM i dept keeping up with tech innovation
  • Open source community
  • Is open source safe
  • A business decision and not just an IT decision
  • What about support
  • Cost of open source
  • Challenges
  • Package managers
  • Licenses
  • Where does it run on IBM i
  • Revitalizing your RPG investment

WebSockets, Node.js, IBM i, and Watson (Aaron Bartell)

HTML5 gave us WebSockets. IBM gave us Watson. Did you know we can easily access Watson from IBM i for our own business purposes? Did you know there is a free tier for Watson so you can get started without spending a dime? Sooooo stinkin' cool.

In this session we will learn the following:

  • What are WebSockets
  • Walk through the creation of a simple WebSocket app using Node.js
  • Learn about what Watson is and available APIs.
  • How you can call on Watson from IBM i using Node.js. 
  • How WebSockets work to communicate from browser to IBM i and from IBM i to Watson.
  • How the Node.js library makes it dead simple to do WebSockets.
  • Walk through creation of WRKACTJOB WebSocket app.

Using DB2 and SQL with Open Source Languages on IBM i (Alan Seiden)

DB2's ever-expanding capabilities can simplify development in open source languages such as PHP, Ruby, Node.js, and Python. These languages, known for their ease in building web and mobile applications, can run most types of SQL, but why complicate them with repetitive database code that distracts from their power and simplicity?  This talk shows examples of how to reduce tedious coding by using such DB2 structures as Views, User Defined Functions, stored procedures, Row and Column Access Control (RCAC), LIMIT/OFFSET, exciting new DB2 Services, and more. Security, performance, and ease of maintenance in the open source scripting languages will be the result of the recommendations and techniques given in this talk.

Learning Objectives

1. Learn DB2 techniques that improve security, performance, simplicity

2. Understand how coding in open source scripting languages can be made simpler and more powerful by use of DB2's modern capabilities.

iHeart Open Source (Erwin Early)

Ever wondered about open source and whether or not you should consider open source solutions in the IBM i environment – then this session is for you!  We will start by taking a quick look at the Open Source ecosystem and then dive into some specific open source offerings including PHP and MySQL/MariaDB.

Turn on the LAMP – please! (Erwin Early)

The computer world is full of light, or so it seems with the proliferation of LAMP-based applications, and the good news is that you have all of the components on your IBM I needed to leverage the large ecosystem of LAMP-based applications.  This session will explore the definition of LAMP and the components of IBM I that support LAMP applications.  From there we will provide an overview of some of the more popular categories of LAMP applications, including CRM, WIKI, eCommerce, and others.  Along the way we will walk through live installations of several LAMP applications on IBM I to show how easy it is to leverage open source solutions on the i platform.

MariaDB on IBM i (Erwin Early)

MariaDB provides the database component of the ubiquitous LAMP stack and it is available for IBM i.  This session will explore a number of concepts for MariaDB including installation, management, and troubleshooting.  Additionally, the session will explore the db2 storage engine for MariaDB which enables applications written with MariaDB APIs for storage/retrieval of data to actually store/retrieve that data in DB2 tables.

Tap Into Open Source from RPG (Jon Paris)

Using utilities in languages like PHP and Python from RPG programs.


PHP and Db2 Essentials (Alan Seiden)

DB2 is the heart of IBM i. For PHP applications, the DB2 database provides performance, data integrity, remote connectivity, and security. This session will show the right way to use DB2 with PHP. Topics include: NEW features of DB2 and ibm_db2 that can make life easier for developers, performance tips, prevention of SQL injection, library list options, and how to connect IBM i's DB2 from Windows and Linux.

Learning Objectives

1. Understand how to get the best performance from DB2 with PHP on IBM i

2. Take steps to secure applications by using parameter markers (prepared statements)

3. Learn about new features that help performance and stability

4. Make the right choices when configuring your application for library lists and more

Speedy PHP on IBM i (Alan Seiden)

Delight your users with snappy, quick PHP-based applications running on IBM i.

  • Configure Zend Server for performance
  • Optimize DB2 and the IBM i toolkit
  • Diagnose bottlenecks
  • Leverage unique IBM i performance tools

You’ll come away brimming with ideas that you can use immediately to improve your application’s performance

Learning Objectives

1. Use Zend and IBM tools to detect bottlenecks

2. Know how to configure the PHP environment for performance

Strategic Modernization with PHP (Alan Seiden)

You know you need to modernize your IBM i applications, but where to start? In this talk, Alan will inspire you with creative examples of modernization on IBM i that provided a strong return on investment while controlling risk.  Learn how to choose projects with the best return on investment, and then complete them with confidence. We will lead an honest discussion of the most effective strategies. Can RPG programmers learn PHP? Yes. Can new PHP developers be integrated into an existing IT department? Yes. Both approaches have merit. 

See creative ways to use PHP, not only to create new GUI front-ends, but to add jazzy features to existing interactive RPG programs. Please your users and business people by incorporating PHP into your shop.  During a recent broadcast of this talk to COMMON Europe, one attendee said: "Great intro for how to do modernization! Thank you!"

Learning Objectives

1. See how PHP and other open-source languages can satisfy business needs and today's users.

2. How to get started with PHP

3. How PHP integrates with RPG and traditional resources

PHP Development Tools (Erwin Early)

Everything from text editors to Integrated Development Environments (IDE) can be used to develop PHP code.  This session will take a look at some of the more popular PHP development tools including PHPStorm and PDT.

PHP Syntax (Erwin Early)

PHP is the most popular open-source scripting language for coding business logic into web applications.  This session will help you to get your feet wet with PHP by going through the syntax of the language and exploring basic capabilities.  Both procedural and Object Oriented (OO) coding is supported by PHP and while this session will stay mainly focused on procedural an introduction to Object Oriented programming in PHP will be provided.

PHP7 – Benefits of Upgrading (Erwin Early)

While version 7 of PHP has been available since late 2015, many companies are just now looking at moving to the current version.  This session will explore various features of version 7, as well as highlighting those features/functions from earlier versions of PHP that are deprecated in the latest version.  Additionally, the session will take a look at migration strategies for moving from version 5 to version 7 of PHP and highlight now separate subsystems for version 7 and version 5 of the PHP engine on IBM I can be leveraged to perform a step-wise migration of your PHP application(s).


Putting the Pedal to the Metal for RDi  (Charles Guarino )

You keep hearing about these web service “things” but are not really sure what they are, where they fit into your toolset or why they’re important. IBM continues to add native functionality, positioning the Power System as a key player in this technology. In this fast moving session we will discuss the ins and outs of web services and the many ways you can work with them on IBM i. Points of discussion include how web services work, where to find them and a demonstration of the tooling you will find, TODAY, already available in your own shop.

Making RDi go POP! with iSphere (Charles Guarino)

What if I told you there is a tool that plugs in to RDi that adds a boat load of features, so many that you will never know how you got this far without them? And what if I also told you these tools not only exist but are free?  Welcome to the world of iSphere, a collection of RDi enhancements that further cements RDi's place as the leader in IBM i application development. It provides much of the “missing” functionality that today’s developers need. This session features a step by step review of these features.

Learning Objectives: 
How the free tool iSphere adds tremendous value and capabilities to RDi. 

RDi DDS Designer (Susan Gantner)