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.


2017 sessions will include:


RPG
  • Easily Modify Report Programs (Because You Have Better Things to Do)
  • RPG your XML
  • Introduction to Processing XML in RPG and SQL Too!
  • Application Developer Modernization Jumpstart
  • What's New in RPG
  • RPG Tools to Make Your Life Easier
  • Advanced Data Structures ( *Now with Free-Form! )
  • RPG Open Access - By Example
  • ILE Activation Groups and Binder Language





Open Source

  • First Step Into Cloud
  • IBM i IFS Containers
  • The Why and How: Open Source on IBM i
  • Node.js transacts with DB2 and RPG



Ruby on Rails

  • Intro to Ruby
  • Intro to Rails




RDi/RSE

  • The ABC's of RDi Shortcuts
  • The Less Frequent RDi FAQ's - More stuff to know!
  • Look What You Can Do with RDi
  • Debugging with RDi 
  • Designing DDS Screens & Reports with RDi 



PHP

  • My Favorite Zend Studio Tips & Techniques
  • 30 PHP Tips on IBM i in 60 Minutes (All Levels)
  • PHP and RPG Integration Examples
  • Exploring DB2 Data Access in PHP (Beginner)
  • What's New with Zend Server for IBM i (Beginner)
  • PHP Standard Error Processing (Beginner)
  • PHP 101 for IBM i (Beginner)



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 2017 Sessions by Track – Programming Tools 
RPG

Advanced Data Structures ( *Now with Free-Form! ) (Jon Paris) 


Have you ever used two dimensional arrays in your RPG programs? Or used the new template support to create your own data types? Do you know how to use group fields? How to map the *IN indicators so that you can give them names? Do you know how to code these in the new free-form style?


If you answered "No" to any or all of these questions then this is the session for you. We'll give you a basic introduction to all of these topics and show you practical examples of their usage. P.S. We should also mention that some of the basic techniques discussed here are the technical underpinnings needed to fully utilize RPG's Open Access. So if you see Open Access in your future you might want to check this session out.




Introduction to Processing XML in RPG and SQL Too! (Charlie 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.




Application Developer Modernization Jumpstart (Charlie Guarino)

Modernize, modernize, it’s a word you hear more and more about. With the colossal shifting demands on today’s application developers, how do you keep up? And what exactly is a modern application developer anyway? For starters, it’s someone who can speak to today’s technologies. And not necessarily with expertise in every area, but certainly at least know what exists. 


Join us for a rapid fire discussion on the many tools and technologies that every developer should know about. It’s all about 21st century career survival.




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.



What's New In RPG (Jon Paris)

The V7 releases of RPG have radically changed the language. Among other new features, you can now code RPG in completely free format - and with no 80 columns restrictions! Later updates have extended RPG's error handling model, making it much simpler to ensure that things are "tidied up" in the event of an exception. New direct inline coding eases the coding (and subsequent understanding of) nested Data Structures in free format. 


In addition to these latest enhancements, Jon will also cover other V7 features including:

  • Sorting and Searching of Data Structure Arrays
  • Support For Alias Names
  • New and Updated BIFs - Including Scan/Replace, Minimum and Maximum
  • Changes in Prototyping rules
  • And last but not least how performance improvements for large return values can make your subprocedures easier to deploy as web services.



RPG Tools to Make Your Life Easier (Jon Paris)

While it is true that the majority of free open source software is written in languages such as PHP, Java, C, Python, etc. there is an ever growing set of RPG tools available that can save you both time and money. In this session Jon will introduce you to a few of these tools and give you some pointers on where to find others.

We will be discussing and demonstrating tools that can help:

  • Building of RPG-based web sites
  • Providing and consuming web services
  • Generating and consuming XML and JSON
  • Building and updating Excel spreadsheets (real spreadsheets not just CSVs)
  • Convert your old fixed-format RPG to modern free-form
  • Send emails

Which ones will you add to your toolbox?




ILE Activation Groups and Binder Language (Susan Gantner)

This session looks at the essential information you need to know about using ILE's Activation Groups. We will discuss which default parameters to avoid and how to save time and trouble maintaining your code. We will also look at the essential information you need to know about using ILE's Binder Language. We will discuss which default parameters to avoid and how to save time and trouble maintaining your code. We will focus on maintenance issues related to Service Programs, including Binder Language basics.



RPG your XML (Jon Paris)


In this session we'll look at RPG's native support for XML processing, including the latest enhancements. We'll also include a brief overview of the Data Structure features added in V5R2 that are critical to understanding how the XML support works. Whether you are using XML for web services or data interchange, dealing with XML in RPG can be challenging. V5R4 brought welcome relief in the form of new RPG language support that greatly simplified parsing XML within your programs. While useful, there were issues that IBM subsequently addressed in enhancements released in V6 and 7. The result is a powerful set of XML processing capabilities that are also easy to use once the basics are grasped.




RPG Open Access – By Example (Jon Paris)


This session introduces you to the fundamentals of RPG ‘s Open Access (OA) by taking you through the process of designing a simple Open Access handler. OA provides a mechanism that allows you to simplify how an RPG program interacts with interfaces that the RPG language does not natively support. For example things such as web services, the IFS, data queues, spreadsheets, browsers and more. By using a suitably designed OA handler, your programmers can access such interfaces through native RPG I/O operations (such as READ, WRITE, CHAIN, UPDATE, etc.). They don’t have to understand the underlying mechanics, they can simply use their existing RPG skills. 


As we worked with OA we realized that all OA handlers were fundamentally the same. So we developed a template program that now forms the foundation for all the OA handlers that we write. We will introduce you to this template by working through the process of designing a simple OA handler that writes CSV data to the IFS, replacing the need for the use of CPYTOIMPF. Hopefully we can convince you that developing OA handlers is well within your capabilities and that they can play an important role in your future development tasks.




Ruby On Rails
Intro to Ruby (Aaron Bartell)
Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.  And guess what? It is now formally ported to IBM i!   Attend this session to gain an introductory perspective about the language, how to install it, where to get support, how to write a sample program, invoke it, and much more.  We will also dive into the awesome reality of “gems”, how they work, and how to get them.  Lastly we will look into some real-world scenarios of how you can use the Ruby language on your IBM i to do basic system administration tasks.



Intro to Rails  (Aaron Bartell)

“Rails is an open-source web framework written in the Ruby language that's optimized for programmer happiness and sustainable productivity.  It lets you write beautiful code by favoring convention over configuration.”  Are all these statements true?  That’s what we aim to find out by walking through the creation of a small application from start to finish and calling out the various features of the Rails framework and how useful they are.  Not sold yet?  Check out what James Duncan Davidson had to say about Rails - somebody that wasn’t necessarily inclined to be a Kool-Aid drinker because of being entrenched in the Java world.    “Rails is the most well thought-out web development framework I’ve ever used. And that’s in a decade of doing web applications for a living. I’ve built my own frameworks, helped develop the Servlet API and have created more than a few web servers from scratch. Nobody has done it like this before.” - James Duncan Davidson, Creator of Apache Tomcat and Ant.



RDi/RSE
Debugging with RDi (Susan Gantner)
Into each programmer's life, a some bugs must fall. In this session, Susan will cover how to use the debugger that's built into RDi - Rational Developer for i. If you've tried using the debugger that's integrated with the RSE tool for editing code and struggled with making it work, you may find that 3 little words can make all the difference: Service Entry Points. Come here to see how to use SEPs when debugging your programs. We'll also cover how (and why) to create and use debug configurations for those occasions when SEPs may not be the best choice.



The ABC's of RDi Shortcuts (Charlie Guarino)

There’s the long way and then there’s the short way of doing stuff. RDi, with its full collection of shortcuts easily speeds up your source code development. This session is a live demonstration of the what, wheres, whys and hows of the most popular shortcuts. Just using a few of them can really make a difference. Use them all? No contest.




The Less Frequent RDi FAQ's - More Stuff to Know! (Charlie Guarino)

RDi is a game changer and continues to improve how developers are maintaining and developing their applications everywhere. And with the breadth of functionality there is almost never enough time to answer all of the questions at our sessions. Here we will go through some of the most challenging and obscure questions and provide live demonstration to answer them. Let’s learn together how RDi can further your productivity in ways you never thought possible.




Look What You Can Do with RDi (Susan Gantner)

There is so much functionality packed into RDi (aka, Rational Developer for i), it's hard to keep track. In this session Susan will focus on a few of the lesser-known features that keep her addicted to RDi for development work. We'll look at features such as the ability to create and use your own snippets and templates and spotlight a few favorite keyboard shortcuts that are often overlooked. We'll also introduce you to a new and extremely useful (and free!) plug-in toolset called iSphere. 


If you're an RDi user, perhaps you'll share some of your own favorites. And if you're not already an RSE user, come find out some of what you're missing.




Designing DDS Screens & Reports with RDi (Susan Gantner)


Rational Developer for i contains a graphical DDS screen and report designer as part of the toolset. It is integrated with RSE (Remote System Explorer) so that you can use views that you use with RSE, such as Outline, Properties and the RSE source editor, while designing your DDS code. Focusing mostly on DDS screens, Susan will demonstrate how the graphical designer works and compare and contrast it with old CODE Designer. She will also share why she doesn't use the built-in DDS Design Perspective and what changes she makes to her own RSE perspective to make it work as effectively for DDS design as for RPG coding.




PHP

PHP and RPG Integration Examples (Mike Pavlak)

In this session we will explore several examples of how PHP scripts can use the Open Source Toolkit to access RPG Business Logic. Implementation of the toolkit will be reviewed along with examples of simple RPG program calls, RPG Subprocedure calls, complex interfaces like data structures and more.



My Favorite Zend Studio Tips and Techniques (John Valance)

If you're new to using Zend Studio, or if you haven't yet had training in using this tool, you may not be aware of many of its features, some of which can save you a lot of time and frustration. Zend Studio is the PHP editor provided free to IBM i customers with a full year of free support and upgrades. Using a live version of Zend Studio, we will cover some basic concepts of the IDE and demonstrate my favorite features and techniques. I will discuss perspectives and contrast the Remote System Explorer with the PHP Perspective, and demonstrate some of the advantages of the PHP perspective for developing larger projects. We'll also cover editing shortcut keys, creating templates, using filters, and more.




Exploring DB2 Data Access in PHP (Beginner) (Mike Pavalak)

The DB2 extension built in to PHP is a curious beast and works well right out of the gate. But could there be more to look at? In this presentation we explore the basics of the DB2 connection and review examples of how to manipulate library lists. In addition, we’ll explore concepts of standard connect & persistent connections and review when it’s best to use each. Also an exploration of performance optimization techniques and recent changes will be reviewed.



What's New with Zend Server for IBM i (Beginner) (Mike Pavlak)

This session focuses on latest version of the PHP stack for IBM i. The presentation reviews the IBM/Zend partnership, examines the installation and architecture of the new product suite and explores the features of the commercial and community editions of Zend Server for IBM i. Participants that are both new to PHP and those that have an existing application set will benefit and learn from this update on PHP and IBM i.



30 PHP Tips on IBM i in 60 Minutes (All Levels) (Mike Pavlak)

Inspired by longtime presenters at the Summit, this discussion looks at the most popular tweaks, hacks and just plain good practices the for IBM i PHP community to enjoy. Sometimes you just need a shopping list of things to watch out for and many of the tips that are scattered throughout these presentations are consolidated in a single place. Performance, security and best practices and more will be discussed.



PHP Standard Error Processing (Beginner) (Mike Pavlak)

The MONMSG feature of CL programs delivers a power method of managing errors in a reactive and sometimes proactive manner. Similar features exist in PHP. This session focuses on the entire error management component of the PHP application. From error logging to error recovery, we explore the various types of error messages and demonstrate some standard methods for handling errors inside of a PHP application.



PHP 101 for IBM i (Beginner) (Mike Pavlak)

This session provides and introduction to PHP code on IBM i. This presentation builds upon the concepts explored in the ‘Getting Started’ session. Topics include everything from Hello World through a database listing and i5 Program call. Participants include anyone looking to explore options beyond just RPG or Net.Data.



Open Source
** 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
The Why and How: 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:
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:

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



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 perzl.org. perzl.org 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



First Step into Cloud (Aaron Bartell)

I know, I know. Doing IBM i in the cloud can be scary. Some would rather sit through 10hrs of presidential debates than attempt IBM i in the cloud. But what if the risk was minimal and the initial cost was low? What if you could easily hit the delete button if things didn't work out? Web application workloads have been leaving IBM i because of our hesitancy of "sticking our box on the web". What if you could instead stick someone else's IBM i in the cloud, install your web app there, and have it seamlessly connect to your back office IBM i via an encrypted line? There is a way to ease into using an IBM i in the cloud and this session will teach you how.
This session will cover:

  •  Overview of DRDA and how it can be used to communicate from one IBM i DB2 instance to another.
  •  Configure IBM i cloud machine to make a DB2 DRDA encrypted connection to your backoffice IBM i
  •  Config back office IBM i to receive DRDA connection
  •  Configure an IBM i cloud machine to serve up a simple customer order inquiry web application.
  •  Configure web app on cloud IBM i to use LetsEncrypt.org's free and automated digital certificates.



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