28th Annual New Hampshire / Vermont IBM i User Group Meeting

Wednesday, June 8, 2016 - Fireside Inn, West Lebanon NH

This event was free to IBM i professionals, and sponsored by NHMUG and VTMUG

IBM Announcements - Steve Fier, IBMSteve Fier

Steve will cover the latest IBM Announcements including:

  • IBM i 7.3 and 7.2 TR4
  • Significant DB2 enhancements, especially around analytics
  • Security updates
  • RPG and open-source tools
  • Hardware enhancements

About Steve

Steve Fier has been with IBM over 30 years, initially starting as a systems engineer, and then becoming a senior marketing specialist. His current role is POWER Platform Leader for the Northeast, responsible for former System i and System p products. Steve's areas of expertise include application development, DB2 for i, Windows Integration and Server Consolidation.

What you need to know to upgrade to IBM i 7.3 - Pete Massiello, iTech Solutions Pete Massiello

When doing an upgrade to IBM i, it's more work to plan the upgrade than to execute the upgrade itself. Once you have a plan, the actual upgrade is simple. Do you know what you need to upgrade to IBM i 7.3?

Pete Massiello, president of iTech Solutions, and past-president of COMMON, has helped many IBM i users make the move to upgrading their OS level. He will get you on the right path to an upgrade by helping you answer these key questions:

  • What is the right size for the load source?
  • How do i increase the licensed internal code?
  • Which version of Java is compatible with the new release?
  • Which console options are no longer available with 7.3?
  • Do I have the correct set of disks for the upgrade?
  • What do I need to do differently when upgrading from 5.4, 6.1, 7.1 or 7.2?

About Pete

Pete Massiello has been working with the AS/400, iSeries, IBM i since 1989, focusing on systems management and technical support. He has held numerous technical positions throughout his career and is currently the President of iTech Solutions Group, an IBM Premier Business Partner delivering solutions and services to IBM i shops throughout the United States. He is a member of IBM's certification test writing team and an IBM Certified Systems Expert with certifications in iSeries Design, Administration, Virtualization, Implementation, LPAR, and HMC Management.

Pete has a BS in Computer Science from Hofstra University and an MBA from the University of New Haven. He was President of COMMON from 2010 to 2012, and is now Immediate Past President, a COMMON Hall of Fame speaker, and a frequent speaker at user groups all over the world. In 2011, IBM established the Champions award for Power Systems; Pete was one of the first recipients.

Modernizing IBM i Applications - Dan Cruikshank, IBMDan Cruikshank

Session 1 - Data Modeling Overview

Building a solid database foundation requires the use of modern design tools. Using the tools provided with IBM Data Studio, Rational Business Developer, Infosphere Data Architect and other bundled products, a Database Architect/Engineer can develop graphical data models; conceptual, logical and physical.

Having a tool is one thing, being able to use it is another. This session will cover topics such as: What is Data Modeling?, How do I use these tools to create Conceptual, Logical, Dictionary and Physical Data Models and Using the tools to diagram entities, tables, views, relationships and other shapes

The following is the agenda for this session:

  • Data Modeling Concepts
  • Types of Graphical Data Models
  • Getting Started with IBM Graphical Tools
  • Diagramming Concepts

Session 2 - Embedding SQL in High Level Language Programs

In this session you will be introduced to SQL programming techniques that take advantage of advanced data centric development methods such as blocked FETCH and INSERT, extended indicators, ROW NUMBER, ROW CHANGE TIMESTAMP, ARRAY types, GLOBAL variables, , MERGE, result set consumption in host languages and dynamic SQL descriptors.

We will discuss how to exploit these new capabilities to build advanced data centric applications based on concepts such as optimistic locking and stateless pagination. In addition, techniques on how to populate and access arrays in SQL routines will be discussed.

The following is the agenda for this session:

  • Getting Started with Embedded SQL
  • Variables and Indicators
  • Cursors and Result Set Consumption
  • Dynamic SQL

Handouts

Down load the handouts for Dan's sessions:

Overview of Data Modeling Using IBM Graphical Tools
Embedded SQL the IBM i Way

About Dan

Dan is an IBM Sr. Consultant and is a member of the IBM DB2 for i Center of Excellence team which is part IBM Rochester Lab Services. Dan has published several articles relating to IBM i performance analysis, database optimization and database reengineering. More recently he has done webinars and user group presentations on application development methodologies and database re‐engineering topics (e.g. DDS to DDL, RPG Open Access). Dan’s main role is to illuminate, educate and enable IBM i customers in how to take advantage of this remarkable system and it’s integrated, state of the art relational database. 


John Valance presents PHP and web topics to NHMUG

John Valance presented PHP and web topics at the NHMUG meeting on Thursday February 11th, 2016

Connecting the Dots: Building Web Applications with PHP, HTML, CSS, and Javascript

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.

Learning Objectives

  • Provide an overview of how browser-based database applications work, with an IBM i / RPG audience in mind
  • Help RPG programmers and managers, with little or no web development experience, understand the major concepts and technologies involved in building web applications.
  • Provide demos and code examples of the major languages involved in typical web applications: HTML, CSS, JavaScript, PHP and SQL
  • Provide a conceptual introduction to my 3 web development labs: 1) HTML and CSS; 2) PHP and DB2 on i; and 3) JavaScript introduction.

Audience

  • 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.
  • RPG programmers interested in starting out with web development
  • Managers who would like to understand the major concepts and languages involved in developing web applications on IBM i.

PHP – Beyond the Basics

This presentation will cover some intermediate topics in PHP programming that you can use to go beyond the basics of PHP syntax and SQL selects, enabling you to create some useful business applications. Topics covered will include: logic for paging through large record sets, session management and cookies, easily creating CSV files from DB2 data and streaming them to the browser, and sending email with attachments and HTML formatting using Zend Framework. A basic familiarity with PHP syntax is assumed.

OO and Ahh! The Power of Object Oriented PHP

While PHP allows for both a procedural as well as an object-oriented coding style, today most professional PHP application packages are created using object-oriented techniques. Why? – because this results in code that is more organized, easier to maintain and extend, with fewer bugs. This session will start with a review of PHP functions and data scope – concepts that are fundamental to understanding objects. It will then cover the basics of creating classes and instantiating objects. The concepts will be presented in the context of a real-life example: creating an HTML form input class, which can be used to build an input form for displaying and updating database record contents. We will also extend this class to handle more specialized classes for select and textarea tags.This is an introductory session on OO – – no prior OO experience is required, but a familiarity with PHP syntax and web application development is helpful.

Easy Web Reports and Documents with JODReports

Would you like to be able to provide your users or customers with PDF reports and documents via a web interface? Looking for a low cost or no cost solution, involving minimal programming? JODReports is an open source solution that allows you to define report templates in a word processor supporting the Open Document Text (ODT) standard. You can easily design a document using Open Office Writer, and specify variable fields that can receive data from your IBM i applications. Single page documents such as invoices, order confirmations, statements, work orders, etc., as well as database reports are easily merged with data supplied as XML, and the resulting document can be retrieved as PDF, which can be delivered immediately to a web user to be viewed, printed, saved, or sent as an email attachment. You can also add simple scripting within your document to conditionally display parts of a document based on a test expression, repeat a document portion (e.g. a table row), and more. Setup is simple, and requires a windows server to run OpenOffice as a service, plus a Tomcat web server to run the JODReports jar file, both of which are free and easy to install.

Come to this presentation and learn how to generate PDF reports and documents dynamically, with no licensing costs! In this session we will use a PHP script to call JODReports, but any language that can generate XML and can process an HTTP request/response can make use of this free tool.

Biography

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 is also 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 is the president and founder of Division 1 Systems, a software and services firm based in Burlington, Vermont (www.div1sys.com).

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


 Ted Holt Came to NH!

Ted Holt presented at the NHMUG meeting on Thursday December 3rd, 2015

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

Easily Modified Reports.ppt
Easily Modified Reports a.pdf
Easily Modified Reports b.pdf
Easily Modified Reports c.pdf
Easily Modified Reports d.pdf

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.

Programming with Assertions

Assertions.ppt
assert.prototype.rpgle.txt
assert.rpgle.txt

An assertion is a routine that checks the validity of an assumption and stops execution if it finds the assumption to be false. When used during program development and maintenance, assertions save time and effort by pointing out errors. Each problem that an assertion brings to light is a problem you don't have to search for. Assertions also work well in production, where you can use them to cancel programs before errors can occur.

Assertions have long been used in the Unix world. Now they are available in the world of i for business, and Ted Holt shows you how to put them to work for you.. Attend this presentation and add a powerful tool to your programming toolbox.

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

Table-driven Programming.ppt
Table-driven programming a.pdf
Table-driven programming b example program.pdf
Table-driven programming c example output.pdf

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.

Thirty SQL Tips in Sixty Minutes

20 SQL Tips.ppt

SQL is THE data access language. It runs interactively from green screens and System i Navigator. It's in RPG and COBOL programs, in ODBC and JDBC. It's ubiquitous, and it's everywhere, too! You can't know too much about SQL. In this session, Ted Holt presents an assortment of powerful, effective, and easily implemented SQL tips and techniques.

These tips and techniques are based on DB2 for i, but many of them apply equally to other platforms. There's something for everyone, from the SQL novice to the advanced user. Come learn some new techniques and reacquaint yourself with some you may have forgotten.

Biography

Ted Holt is a Senior Software Developer with Profound Logic Software, a provider of modernization solutions for the IBM i world. He has worked within the information technology industry since 1981, primarily with IBM midrange computers. His industry experience includes the fields of manufacturing, healthcare, education, retail, and wholesale. He holds a master's degree in computer science from the University of Southern Mississippi and has taught in community colleges, universities, and vocational/technical schools.

Ted is the author of several books on programming topics, including OpenQuery File Magic!, Complete CL, Power CL, Qshell for iSeries and the MC Press Encyclopedia of Tips, Techniques, and Programming Practices for iSeries and AS/400. He is a regular speaker for the RPG and DB2 Summit and serves as technical editor and writer for Four Hundred Guru, a technical newsletter published by itjungle.com.


 AAron Bartell In NH

Aaron Bartell spoke to the NHMUG user group on Thursday October 1, 2015

Links to presentation materials:

Here are the links to the presentation materials:

Intro to Node.js

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.

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, DB2, RPG - Talking at Last

Let’s say you’re considering learning Node.js but know one primary requirement is that existing DB2 tables and RPG business logic must be easily accessible from Node.js. Problem solved, because that’s where IBM's Node.js DB2 for i driver and XMLSERVICE fits in.

The Node.js DB2 for i Connector was provided by IBM and provides capabilities to interact with existing DB2 tables.

XMLSERVICE is a single library of open source RPG code that enables XML scripting calls of IBM i resources using most any language available on your platform.

In this session we will walk through the various features and ways to communicate with existing DB2 tables and RPG programs directly from a Node.js program that is running on the same IBM i! We will also be walking through 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 Node.js.

Node.js: Building Your First App With Expressjs

Node.js is a hot topic in IBM i circles because of its recent port. Doing a "Hello World" app in Node.js is very simple, but what about developing something more substantial with full model-view-controller capabilities? This session aims to take you beyond your first pass at Node.js and show how to use one of the most popular Node.js web frameworks, Express.js.

In this session we will learn about the following:

  • Installing ExpressJs with npm (Node Package Manager)
  • Model: DB2 for i access
  • View: Template Engines and how to use them
  • Controller: Routing requests
  • Implement web sockets to make the app insanely interactive

Git on IBM i

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with its feature set. It is arguably the most popular way to manage source code versions industry wide.

Some things to know about Git:

  • It keeps a history of everything that has changed in a source file
  • You can group changes together so you can gain perspective of what all changed for a particular feature request
  • You can create branches which have many purposes with one being you can eliminate the need to make backup copies of source members before making your changes. We often make backups so we can see how it originally was. Branches also make it easy to quickly test something and throw it away if it didn't work out without affecting the primary code base.
  • Another feature of branches is to facilitate process flow (i.e. branches for development, test, staging, production)
  • Git has some very excellent merging capabilities which is nice for when two developers were working on the same source member and their changes need to be combined back into one

Here's the kicker… did you know you can use Git on IBM i? Did you know you can use it for all your source including RPG?

Attend this session for an introduction to Git, install instructions, how it works, basic features, and how it can be used in your environment.

Biography

Aaron Bartell provides hands-on application development services using open source technologies for companies running on IBM i. Through virtual consulting engagements, Aaron is able to jump-start development initiatives while serving as an extension of your internal development team. Aaron facilitates adoption of open source technologies through internal staff training, speaking engagements at conferences, and the authoring of best practices within IBM i industry publications and www.litmis.com. As Director of IBM i Innovation for Krengeltech, Aaron pursues initiatives which enable IBM i shops to embrace today’s leading technologies including Ruby on Rails, Node.js, and Git to facilitate GitHub/BitBucket communications. Aaron is a passionate advocate of modern technologies and active within their corresponding online communities. Connect with Aaron via email at This email address is being protected from spambots. You need JavaScript enabled to view it.

Aaron lives with his wife and five children in Southern Minnesota. He enjoys the vast amounts of laughter having a young family brings, along with camping and music. He believes there's no greater purpose than to give of our life and time to help others.