John Valance presented at NHMUG on Thursday March 22, 2018

John presented the following sessions:

Connecting the Dots (intro to web development with PHP)

New to web development, or trying to get started? Have you taken a PHP course, but are having trouble understanding how to build complete applications for the web? Or maybe you're a manager trying to get an understanding of how web applications work at a high level. This presentation will provide an overview of how browser-based database applications work, with an IBM i / RPG audience in mind. It will demonstrate the client-side languages - HTML, CSS and JavaScript - and show how PHP scripts running on a server can dynamically build web pages including content from an IBM i DB2 database.

We will discuss the HTTP protocol and how web servers work with HTML and PHP, look at some common formatting techniques in HTML and CSS, demonstrate how HTML forms interact with PHP scripts, and show what JavaScript is and how it makes the browser more functional. With these basics concepts in mind, you should be able to make better decisions about how to sort through the many options available for web-enabling your legacy databases.

This presentation is for beginner to novice web programmers, or those who would like to understand the technologies and languages involved in a typical web application.

This session is a recommended (not mandatory) pre-requisite for John's labs on HTML, PHP, and JavaScript.

--> Click HERE for this session handout <--


Web Mastery with JavaScript

While PHP and server-side languages are essential to web programming, these days JavaScript is an equally essential skill for any professional web programmer. Users have come to expect highly sophisticated web applications, far beyond what HTML and PHP can deliver. In order to develop these modern web and mobile applications, one must have a fair mastery of JavaScript.

So what is it? Not to be confused with Java, which typically runs on the server, JavaScript typically runs in the browser and allows you to create scripts that can control the browser experience after a web page has been downloaded from the server. This off-loads processing from the server and allows web applications to utilize some of the features associated with PC applications, such as a rich user interface and sub-second response times.

This session will introduce you to the concepts, capabilities and syntax of JavaScript, and help you understand how you might use JavaScript in your web applications. You will learn about using JavaScript to validate input forms and react to browser events such as page load, button clicks, mouse movement and keystrokes. You will also see how JavaScript can be used to change the content and appearance of web pages without reloading the entire page. It will also introduce some of the more advanced concepts of object oriented JavaScript and JSON (JavaScript Object Notation), Ajax (Asynchronous JavaScript and XML), and JavaScript frameworks, such as jQuery, which greatly simplify JavaScript programming tasks.

This is highly recommended as a prerequisite to my JavaScript lab, as well as my Introduction to jQuery presentation.

--> Click HERE for this session handout <--

SQL Stored Procedures and Application Modernization

Among the many modernization technologies available on IBM i, SQL is perhaps the one best known by RPG developers. This session won't focus on how to write SQL statements, but rather how to write scripts that combine SQL statements together into procedures that encapsulate database access and core business logic for use in a myriad of modern applications. We'll discuss how stored procedures fit into a modernization strategy, and why they are such a good fit for RPG programmers who want to participate in modernization projects. They're also a great fit for anyone new to IBM I who needs access to its database for applications in PHP, Java, Crystal Reports, IBM Web Query, Excel, Web Services, conversion projects, etc.

SQL is often embedded in other languages, such as RPG, PHP, Java, etc. But IBM provides the SQL Procedure Language (SQL/PL), which can be used to code complex or multiple SQL statements into procedures that can form the backbone of a service oriented architecture. These procedures can be called from any programming language. This can simplify the database access code in PHP, Java, and other host languages, while taking full advantage of DB2-specific SQL features.

Come and learn about the many features and benefits of SQL stored procedures, how to code them, and how to use them in your modernization strategy.

--> Click HERE for this session handout <--

Case Study: B2B e-Commerce With PHP on IBMi

This session will describe a recently completed project to create an online wholesale ordering system for a beverage manufacturing and distribution company with a BPCS/LX backend. The requirement was to create a browser-based order entry system for wholesale customers that do not have EDI capability. The system needed to have a simple, modern, intuitive interface, usable on desktop and tablet browsers. The order submission procees needed to feed into a BPCS/LX backend. The server language of choice was PHP, using Zend Framework 2.

This will be a high-level, project management focused presentation, highlighting the technologies and methodologies employed, and challenges faced and how they were resolved. Some of the topics to be covered include: requirements gathering, wireframing, HTML design, use of offshore resources, controlling database access with stored procedures, integration with ERP system, PDF form generation, e-mail acknowledgements, SSL setup, and security.

If you are considering creation of an e-commerce system, please come with your questions and learn how we got this system off the ground.

--> Click HERE for this session handout <--


John Valance has worked on the IBM midrange platform since 1983 and on web development since 1998. As a consultant and developer, John specializes in database and web application development on the IBM i platform. He has also been a trainer for Zend Technologies, teaching PHP Foundations for IBM i Programmers, and is a Zend Certified Engineer. He has extensive programming experience in RPG, Java, PHP, and JavaScript, and he enjoys explaining new programming concepts to RPG programmers. John is a frequent presenter at user groups, and has created presentations and labs on many web development topics. John was elected to the COMMON board of directors for a 3-year term in May 2017. John is the president and founder of Division 1 Systems, a software and services firm based in Burlington, Vermont (

Growing up in New York City, John started his career in the NY area, but moved to Vermont in 1994 to raise a family and has been there ever since. John is also an accomplished musician, playing a variety of instruments and styles.

John can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..



Charles Guarino came to NHMUG on Thursday January 18, 2018 

Charlie presented the following sessions:

RPG! It's Alive with New TreasuresCharlie

“New” RPG Free Form enhancements? Well sure, but that happened at 7.1. Time marches on and so do the enhancements. Today’s RPG is living, vibrant and ever-evolving, keeping pace and meeting the requirements and needs of TODAY’S programming community.

If you haven’t been keeping up you are missing out on the many new treasures that will not only improved the readability of your code but also the reliability. Long live RPG!

Putting the Pedal to the Metal for RDi

Need a crash course on seeing if RDi is right for you (hint – it is) but can’t commit an entire day on a workshop? In this session we will cover the key points of Eclipse navigation, source code editing, program debugging and graphical screen and report design. Even after only one session you will see how a modern workbench is where you need to be using to stay in the game of application development.

The less frequent RDi FAQs - More stuff to know!

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.

XML and JSON REST Web Services for Everyday RPG and SQL Consumption

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!


Charles Guarino has been an Information Technology consultant for the vast majority of his career. He is also the founder and President of Central Park Data Systems, Inc., a Long Island and New York City area based IBM midrange consulting and corporate training company. In addition, he is a professional speaker presenting at technical conferences and events across the United States and Europe. He is a frequent contributor of articles and webcasts for the IBM i community, with topics covering a broad range of IT topics and strategies. Charles is a member of COMMON’s Speaker Excellence Hall of Fame and The Long Island Software and Technology Network’s Twenty Top Techies. Recently Charles became the proud recipient of the Al Barsa Memorial Scholarship Award. Additionally, he currently serves as a board member of COMMON and also participates on COMMON’s Strategic Education Team (SET). Other professional endeavors have included being the president and monthly Q&A host of the Long Island System User’s Group LISUG (

Charles can be reached at This email address is being protected from spambots. You need JavaScript enabled to view it..
LinkedIn -
Twitter - @charlieguarino

Mike Pavlak presented to NHMUG on Thursday December 7th!

This meeting was held at the Backyard Brewery, formerly known as The Yard Restaurant

Meeting Handouts: 

--> Download zip file of handouts by clicking HERE <--


Introduction to Python on IBM i

Come get your first look at Python and learn some of the basics! Also, learn about the product offerings that enable you to do software development with the language on the platform. Upon completing this class, you will be able to acquire, install, and use the language on IBM i, as well as extend its power using contributions from the larger open source community. We will also explore Db2 Data Access and IFS file system access as primary use cases for Python on IBM i.

Learning Objectives:

  1. Installation of Python on IBM i
  2. Multiple methods of use and access
  3. Db2 data access from Python

Business Uses for Python on IBM i

Does Python on IBM i have a practical use or is this just a solution looking for a problem? In this session we will explore the typical use cases for Python in the open source community and apply some to IBM i. In addition, specific IBM i centric use cases will be explored to give the attendee the opportunity to judge for themselves how to best leverage Python in the combined open source and IBM i space.

Learning Objectives:

  1. Learn how Python is used in Open Source environments
  2. Explore how Python can be exploited in IBM i centric environments 
  3. See several examples of open source Python applications in action on IBM i

PHP on IBM i: Getting Started

PHP has become a significant component of the IBM i development portfolio. This session introduces the steps to get started with PHP in the typical IBM i environment. Topics include software installation, configuration, troubleshooting and basic PHP script creation. Participants will learn how to enable Db2 content quickly and easily using the world’s most popular web scripting language.

Learning objectives:

  1. Understand the installation process for PHP on IBM i 
  2. Learn fundamentals of a simple PHP script.
  3. Gather best resources for developing PHP skills

PHP101 for IBM i

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.


Biography - Mike Pavlak, Fresche Solutions

Mike has wide experience with IBM systems, first with the mainframe and since 1992, with midrange solutions. He spent many years developing applications in RPG, CL and PHP before joining Tripp Lite as the Develoment manager and later as the IT Director. Most recently, Mr. Pavlak was at Zend Technologies, working as a solutions consultant with their IBM i sales team before joining Fresche Solutions as an IT Strategist.

Mr. Pavlak has written extensively on IBM i solutions, notably for IBM Systems Magazine, and as technical editor for iPro Developer and System iNEWS. A noted expert on PHP, he recently participated in a lively iTalk with Paul Tuohy on the Influence of PHP on Open Source, and has contributed to blogs, podcasts and webinars at Zend and other organizations. He’s a familiar face at user groups, trade shows and industry events, leading sessions on modernization, PHP and the future of i.


Paul Tuohy returned to NHMUG on Tuesday September 19th, 2017!

It is with great excitement that we had a return visit from Paul Tuohy on Tuesday September 19th, 2017.
Paul is a world renowned speaker and well known throughout the IBM i community.

Paul presented the following sessions:

Paul Tuohy

RPG on the Move: Mobilize Your i

Choices and challenges in the world of mobile applications

Mobile applications are the hot topic of the day and your old RPG green-screen skills and tools are just not going to make the grade. In this session Paul discusses some of the factors you have to consider when embarking on the development of your first mobile applications.

Topics to be covered include:

  • Design considerations for mobile - from F-keys to touch sensitivity
  • Platform options - iPad? iPhone? Android? Blackberry? Tablets?
  • Local processing or server/browser based?
  • Can you do it with RPG? And what are your other language choices

Introduction to AJAX for RPG Programmers

Although it has been around for a number of years Asynchronous JavaScript and XML (AJAX) has suddenly become a hot topic. What is all the fuss about? What relevance does AJAX have for the RPG programmer?

AJAX provides a means of having a web page communicate with a server, either synchronously or asynchronously. Combined with CGI programming techniques (CGIDEV2 is used in the presentation), you now have a means of dealing interactively with a web page i.e. changing the contents of a web page without having to re-write the whole page.

And best of all, it is already installed on every PC, all you have to do is use it!.

In this session you will learn:

  • The background to AJAX
  • How it works
  • Examples of how to use it

I Didn't Know You Could Do That With SQL

You have started to master SQL but you have a sneaky suspicion that there might be more to it.

In this session you will learn valuable and time saving techniques with SQL that let you avoid writing code. You will learn how to use SQL Subquery or Subselect in an SQL SELECT, INSERT, UPDATE, DELETE or CREATE TABLE statement to reference multiple tables without having to do a join of the tables involved. You will see how to use CASE and UNION statements, Common Table Expressions (CTEs) and where to use Full Outer Join and Hidden Time Stamp columns.

This session is based on the SQL function available in V5R4, V6R1, and V7R1 of OS/400 or i5/OS, assumes you have a basic understanding of relational database concepts and SQL.

Externalizing Database Processing in RPG IV

One of the major considerations for the ongoing modernization of applications is how to make functionality accessible to multiple interfaces. But no matter how the application interfaces may change (green screen, web, client server, mobile phones etc.) or how data may arrive on the system (FTP, EDI, XML etc.) you can be sure that all of the data is going to end up in a database.

Externalized database processing provides a means of encapsulating database access. This session discusses why you may want to externalize database processing in RPG IV and how to do it.



ComCon is a company owned and run by Paul Tuohy. It specializes in consultancy, software development and training for the IBM i (System i, i5, iSeries and AS/400).

Paul Tuohy has worked in the development of IBM Midrange applications since the '70s. He has been IT manager for Kodak Ireland Ltd. and Technical Director of Precision Software Ltd. As well as being CEO of ComCon he is also one of the co-founders of System iDeveloper, a consortium of top experts and educators on i technology. He has been teaching and lecturing since the mid-'80s.

Paul is the author of "Re-engineering RPG Legacy Applications", "The Programmers Guide to iSeries Navigator" and the self teach course "iSeries Navigator for Programmers".

He also writes regular articles for most of the industry publications and is one of the quoted industry experts in the IBM Redbook "Who knew you could do that with RPG IV?".

As well as speaking at renowned RPG & DB2 Summit conferences and other conferences around the world Paul is also an award winning speaker at numerous US Common conferences.