My Presentations

I am a speaker for user groups, conventions, and webcasts. I currently give the following presentations

Sessions marked with (**) are "retired" sessions. I'm not actively speaking on these topics any longer, so the information in the handouts may not be up-to-date.

RPG and the IFS

Abstract:
How to get started using the Integrated File System from your RPG programs. The IFS is typically used for reading and writing "PC-style" files on the iSeries, and is an important tool for integrating with other computers or business partners.

Click here to download the handout for this presentation.

To download the IFSIO_H and ERRNO_H source members, click here: IfsSources.zip

Also, be sure to visit my on-line IFS Programming Tutorial!

Consuming Web Services from RPG with HTTPAPI

Abstract:
Web services have taken the world of IT by storm. This session discusses what a Web Service is and how the free HTTPAPI tool can be used to access (i.e. "consume") them from your RPG programs. This session provides examples of consuming currency exchange and UPS package tracking web services from RPG.

Click here to download a handout for this presentation

The UPS Tracking and Currency Exchange sample programs are now included with HTTPAPI. They are in the members named EXAMPLE16 and EXAMPLE18, respectively.

Also, be sure to visit the HTTPAPI Web Page!

Providing Web Services on IBM i

Abstract:
In this session, you'll learn how to provide web services using the tools that are included with IBM i. Scott will show you how to configure the HTTP servers so that they will call RPG programs, and how to write RPG code that acts as a web service. Both SOAP and REST web services will be covered.

Click here to download a handout for this presentation

Click here to download sample code for this presentation

XML From RPG Using Free Tools

Abstract:
XML is quickly becoming the standard format for e-business documents. This session discusses how open source software can be used to read and write XML documents in your RPG programs. Without the need for Java!

Click here to download a handout for this presentation

Click here to download Expat for iSeries, and the sample code that goes with it.

Parameters and Prototypes

Abstract:
We use parameters every day in our code. But do we know how they work? Or why eyey work the way they do? This presentation discusses the reasons why parameters are important, how they work, and why you should be using prototypes.

Click here to download a handout for this presentation

ILE Concepts (for the Impatient RPG Programmer)

Abstract:
Is it about time you learned ILE Concepts? Always wanted to, but never had the time or patience to learn them? With this presentation, you'll be up and running with ILE in no time.

Click here to download a handout for this presentation

Getting Started with APIs from RPG

Abstract:
APIs confuse or intimidate many RPG programmers. The API documentation, when you can find it, is rarely written in a way that's clear to RPG developers. This session covers the basics of what APIs are, how to find them in the Information Center, how to read the API descriptions and some of the common techniques needed to use them.

Click here to download a handout for this presentation

RPG Web Programmning

Abstract:
Did you know that Web applications can be written in ILE RPG? This presentation covers the basics of CGI programming, CGIDEV2 and Web services with HTTPAPI.

Click here to download a handout for this presentation

RPG Does TCP/IP

Abstract:
TCP/IP network communications are written using the socket API. This API is available to all ILE languages, including RPG.

You could use this to run interactive programs in batch by writing a program that acts as a 5250 terminal. Or you could transfer files with HTTP or FTP. Or access Web services. Or write your own custom applications that communicate over a TCP/ IP network.

By the end of this session, attendees will be able to:

  1. Write TCP/IP Client programs in RPG
  2. Write TCP/IP Server programs in RPG
  3. Find any needed documentation

Click here to download a handout for this presentation

Excel Spreadsheets from RPG with POI

Abstract:
Your business data is in RPG. Your users want Microsoft Excel. This session discusses how an RPG program can build and modify Excel spreadsheets by calling the POI Java classes.

By the end of this session, attendees will be able to:

  1. Know when to use and when not to use POI to create spreadsheets
  2. Create spreadsheets
  3. Modify existing spreadsheets

Click here to download a handout for this presentation

Accessing External Databases from RPG

Abstract:
RPGers often need to access data from 3rd party databases, such as Microsoft SQL Server, Oracle, MySQL and DB2 on other platforms. One way to do this is by using Java database (JDBC) drivers. Scott will share his experience in using this technique and show you how you can access non-i5OS databases from your RPG programs.

Click here to download a handout for this presentation

Pattern to Good ILE with RPG

Abstract:
You've learned all of the concepts of ILE, and this has given you a lot of new options. When you go back to the office, you find it's hard to use them! They just don't fit into the way you're accustomed to writing software. In your mind, you have a pattern for how programs should be written, and to use ILE effectively, you really need to learn a new pattern. This session discusses the new pattern of writing good, reusable ILE code.

Click here to download a handout for this presentation

Choices for Integrating RPG with the Web
(formerly called "RPG and the Web")

Abstract:
I've written some business logic in RPG. Now how do I make it available through a web interface? It seems like there are a million ways to web-enable an RPG program, and choosing the right technology to do so is a daunting task.

The April 2008 issue of System iNEWS magazine provided a service program containing RPG business rules, and showed how to write a web front end and call that service program from three different web development languages (CGIDEV2, PHP, and Java). So readers can get a feel for the differences between them.

This presentation summarizes what you'll find in that issue, and will hopefully help you along the road to deciding on a technology for your own apps.

Click here to download a handout for this presentation

RPG User Defined Functions & Table Functions

Abstract:
RPG is the best language in the world for writing business rules. But what happens when you want to use those business rules from SQL? Or from a web application that accesses your business logic through SQL? DB2 for i lets you write User Defined Functions (UDFs) in high level languages like RPG. UDFs can be called from SQL statements run from anywhere, including ad-hoc queries, SQL run from web applications, and SQL run from the embedded SQL precompilers used by RPG and other languages.

UDFs can even return a table (often called a UDTF, User Defined Table Function) which lets them do the same sort of work that a stored procedure would do -- but unlike stored procedures, they can return result sets to any language, including PHP, Java, .NET and embedded SQL written in ILE RPG.

UDFs are a powerful tool for any programmer's toolbox.

Click here to download a handout for this presentation

Intro to the MySQL IBMDB2I Storage Engine

Abstract:

The IBMDB2I storage engine lets you use a MySQL database, while storing the data in traditional IBM i physical files. Those files can be used by MySQL applications (such as PHP, Java and PC software) as well as native applications such as RPG programs.

It's a great way to get robust, free, powerful open source software working on your system that you can then integrate with your existing business applications.

Click here to download a handout for this presentation

Setting up and Scripting the OpenSSH, SFTP and SCP Utilities on IBM i

Abstract:

It seems like everyone today is using the FTP protocol to send files. One problem: It's not very secure!

For security's sake, a lot of companies need to use SSH tools, including SSH itself, as well as the SCP and SFTP utilities. IBM provides the OpenSSH software to IBM i customers free of charge, but it runs in the PASE environment.

If you're not familiar with Unix, how do you set up OpenSSH? How do you use it? How can your RPG or CL programs run SFTP scripts? This session will tell you how.

Click here to download a handout for this presentation

Seminar: Web Services for RPGers

Abstract:

Web services have taken the world of IT by storm. Many RPG shops are planning to utilize them either as a consumer, for example to track UPS shipments, or as a provider, to provide an alternative interface to existing application functionality.

In this seminar, Scott will provide an introduction to the world of web services, explaining how they work and demystifying some of the buzz-words like SOAP, REST, XML and WSDL.

After studying the basics of web services, you will learn how an RPG program can be used as a web service. The seminar will also explore how web services can be accessed (or "consumed") by an RPG program utilizing Scott's free HTTPAPI tool. The session provides code examples of the functions discussed.

Length: 4.5 hrs (including breaks)

Click here to download a handout for this seminar

Click here to download the code samples for this seminar

Seminar: Web Services and XML for RPGers

Abstract:

In order to understand web services technology, an understanding of XML is needed. This seminar is an "extended version" of the preceding one, it covers XML concepts first, and then proceeds to discuss the same web services content as the preceding seminar did.

Length: 8.0 hrs (including breaks)

Click here to download a handout for this seminar

Click here to download the code samples for this seminar

Three Approaches to Web with RPG

Abstract:

The trend in providing an interactive web-based application has changed. Years ago, we would write programs that output HTML, and that HTML would be displayed in a browser. Today, the best practice is to use a JavaScript framework. Frameworks save developers a lot of work, and provide a nicer experience.

In this talk, Scott will demonstrate:

  • How to create an interactive web application in RPG using the open source CGIDEV2 tool.
  • How that CGIDEV2 application can be improved by using a framework
  • How it would work as an Open Access application. Better or worse?

Length: 75 minutes

Click here to download a handout for this session

Working with JSON in RPG with YAJL

Abstract:

JSON (JavaScript Object Notation) is quickly becoming an important document format for business data interchange, so what's the best way to process it from RPG? JSON provides the same benefits as XML, but is smaller (and so transmits over a network more quickly) and is much more efficient than XML to work with in web applications. Naturally, this means that your RPG business applications need to learn how to speak JSON in order to talk to many of the newer web services or exchange data with many tech-savvy business partners.

In this session, Scott will explain how the open source YAJL tool can be used from an RPG program to process or generate JSON in an efficient manner.

Length: 75 minutes

Click here to download a handout for this session

To Contact Scott Klement

If you'd like Scott to speak for your user group or convention, or if you have any question for him, please use the Comment Form

If you have a question about HTTPAPI itself, please do not contact Scott directly, but instead use the FTPAPI mailing list. This list is the official place to ask questions about both the FTPAPI and HTTPAPI open source projects.

Click here to sign up for the FTPAPI mailing list.

Click here to read or search the FTPAPI mailing list archives.

I have prepared a Speaker's Bio for Local User Groups to put on their web sites or in their newsletters if they'd like. Click here for that bio.