#OceanTech17: Three Days of Inspiration in July

July 20-22, 2017, Costa Mesa, CA

I always look forward to participating in the OCEAN Tech conference. It’s an impressive example of a local user group bringing affordable education to its members.

Read more

Use an IBM i Service to Find Your Technology Refresh (TR) Level

IBMi Technology RefreshWith another new IBM i Technology Refresh upon us, here’s a quick reminder how to find your server’s current TR level.

It’s getting easier and easier to do. An IBM i Service using DB2 and SQL provides the TR level more cleanly than older approaches. I love that we can use the universal SQL to expose the innards of our beloved system!

Read more

RPG & DB2 Summit: March 21-23, 2017, in Orlando

In just two weeks I’ll have the pleasure of joining some of the top IBM i development experts in Orlando for the RPG & DB2 Summit. Run by Susan Gantner, Jon Paris and Paul Tuohy, this conference is full of big personalities who create a warm, friendly environment that’s perfect for learning.

I enjoy the community feeling and how excited everyone is to solve development problems and share tips and techniques.

The RPG & DB2 Summit is one of the few training events that focuses exclusively on topics of interest to IBM i developers. That includes PHP and SQL, of course!

Check out the session grid and pay special attention to the Hands-on PHP Workshop on Monday, March 20, followed by several PHP and open source sessions given by yours truly and Zend’s Mike Pavlak, plus a whole array of SQL sessions. And maybe a few on RPG.

I think they should change the name of the conference to the RPG, PHP, SQL & DB2 Summit, don’t you?

Come join us!

WMCPA 2017: A Glimpse into the Future of IBM i

Every year I look forward to WMPCA’s Spring Technical Conference. And it’s not just because this active IBM i user group does a great job of bringing experts to beautiful Wisconsin (in March!) to teach a broad range of IBM i topics.

I also love meeting the next generation of IBM i talent, always represented by Jim Buck’s RPG students at Gateway Technical College.

And, of course, there are many PHP and open source sessions to choose from, including these from me:

  • Make Your IBM i Sizzle with WordPress
  • Apache Web Server Magic on IBM i
  • Using DB2 and SQL with Open Source Languages on IBM i
  • PHP Tricks for the RPG Programmer: Graphics, Excel, PDFs, E-Mail and More

Also check out these sessions from our good friend Mike Pavlak:

  • PHP Web Security in an Insecure World
  • Web Services with PHP on IBM i

I could go on and on with recommendations, but I’m sure you’ll find plenty to love on your own.

Join us at the WMCPA Spring Technical Conference on March 14-16, 2017, at the Lake Lawn Resort on the shores of Delavan Lake!

 

WMCPA IBM i conference: March 15-17, 2016

Join me and 27 other speakers at the Wisconsin Midrange Computer Professional Association (WMCPA) spring technical conference, March 15-17, 2016, at the Lake Lawn Resort on the shores of Delavan Lake.

Featured speakers: Alison Butterill, Tim Rowe. Speakers: Robert Andrews, Jim Bainbridge, Aaron Bartell, Stacy Benfield, Larry Bolhuis, David Brault, Chris Bremer, Jim Buck, Tom Cremieux, Gus Delgado, Richard Dolewski, Von Enselman, Byron Franz, Charles Guarino, Scott Klement, Richard Milone, Floyd Del Muro, Greg Patterson, Mike Pavlak, Trevor Perry, Jim Ritchhart, Richard Schoen, Alan Seiden, Grant Smith, Matt Staddler, Paul Tuohy

Details: https://www.wmcpa.org/index.php/conference2016

ZendCon 2015 starts October 19

This year’s ZendCon has a new location—Las Vegas—and more IBM i speakers than ever, including:

  • Tony Cairns (IBM)
  • Massimiliano Cavicchioli (Zend)
  • Jim Oberholtzer (Agile Technology Architects)
  • Mike Pavlak (Zend)
  • Stephanie Rabbani (BCD)
  • Chuk Shirley (Sabel Steel)
  • Shlomo Vanunu (Zend)
  • and myself, Alan Seiden (Alan Seiden Consulting)

Tutorial day, Oct. 19, is recommended at this premier PHP conference. I’ll present “Db2 and PHP in Depth,” a three-hour tutorial of techniques for using IBM i’s native database, which can help make PHP applications more secure, easier to write, and faster. I’ll also present new features of Db2 and PHP’s Db2 interface that were inspired largely by comments and requests of past ZendCon attendees. Special guest Tony Cairns from IBM is expected, too, for a lively discussion about practical PHP development on IBM i. Bring your questions.

Later in the week I’ll present “Create a welcoming development environment on IBM i,” based on my experience leading PHP projects for IBM i, and “Strategic Modernization with PHP,” which shows the possibilities on the IBM i platform and the strengths of various approaches. Expect to hear valuable advice from your colleagues, too.

I’m looking forward to attending talks, talking to sponsors, chatting with many of my blog and newsletter readers, meeting clients, and getting to know Rogue Wave, the company that recently acquired Zend.

Information about ZendCon: http://zendcon.com

iTalk with Tuohy interview

I recently joined speaker and consultant Paul Touhy for a spontaneous, personal ‘iTalk with Tuohy’ recorded chat, described thus: “Paul Tuohy talks to development guru Alan Seiden about developing in PHP, the PHP for IBM i Toolkit, performance for developers and getting your work-work balance right.”

The free recording is available here: http://www.ibmsystemsmag.com/ibmi/trends/iTALK-WITH-TUOHY/seiden-development-balance

Slides from today’s talk on leveraging RPG with the PHP Toolkit and XMLSERVICE

I’ve posted the updated slides from a talk I just presented about the PHP for IBM i Toolkit. The talk was given at a free virtual conference presented by the COMMON user group and was sponsored by BCD.

The slides are available on my “past presentations” page.

I’d like to hear how you are using the toolkit. Post comments here.

IBM i performance tools are for developers, too

At last Friday’s OCEAN conference in Costa Mesa, Calif., IBM’s Dawn May and I presented “The Art of Performance Diagnostics,” showing how we’ve used tools that are free (Performance Data Investigator) and low-cost (Job Watcher) and included with IBM i to identify and resolve performance bottlenecks that would have been difficult using traditional green-screen tools alone.

One audience member said, “Developers should know about these tools! They aren’t just for system administrators.” With these tools and with documentation such as the IBM i Performance FAQ, performance expertise is within reach of developers as well as sysadmins.

How do IBM i performance tools help developers to be more effective? Developers can:

  • Respond to any reported slowdowns by looking at recent performance data. IBM i captures performance statistics transparently, enabling developers or admins to “go back in time” to look at past performance.
  • Even better, identify and resolve problems proactively during testing, rather than waiting for users to report problems.
Speakers Alan Seiden and Dawn May presenting The Art of Performance Diagnostics for IBM i at the OCEAN conference, July 17, 2015. Photo by Matthew Murtha

Alan Seiden and Dawn May presenting The Art of Performance Diagnostics for IBM i at the OCEAN conference, July 17, 2015. Photo by Matthew Murtha

Determining the proper procedure name in toolkit calls

Exact name is required when calling a service program’s procedure

Some developers make a common mistake when calling a procedure in a service program using the PHP Toolkit for IBM i or any toolkit based on XMLSERVICE. It’s easy to supply the wrong procedure name, or the right name in the wrong case (upper/lower/mixed). Using this example of calling a procedure using the toolkit, we find the following (correct) program/procedure call:

$result = $conn->PgmCall('MYPGM', 'MYLIB', $params, $retParam, 
                         array('func'=>'myproc'));

The procedure name ‘myproc’ must be given exactly as it is, not ‘MYPROC’ or ‘MyProc’, because under some circumstances the name may be case-sensitive.

How to determine the correct procedure name

Run the DSPSRVPGM command, using your desired library and program names as parameters:

DSPSRVPGM SRVPGM(MYLIB/MYPGM) DETAIL(*PROCEXP)

The above command will return service program information, including the names of all procedure exports. For example:

        Display Service Program Information                       
                                                    
Service program  . . . . . . . . . . . . :   MYPGM                           
  Library  . . . . . . . . . . . . . . . :     MYLIB                          
Owner  . . . . . . . . . . . . . . . . . :   PROGRAMMER                        
Service program attribute  . . . . . . . :   RPGLE                             
Detail . . . . . . . . . . . . . . . . . :   *PROCEXP                          
                                                                               
                              Procedure Exports:                               
                                                                               
Procedure Name                                       ARGOPT 
myproc                                               *NO    
orderHeader                                          *NO

This service program contains two procedures: ‘myproc’ and ‘orderHeader’. Thus, to call the former, we’d supply array(‘func’=>’myproc’) in the PgmCall method. If we wanted to call the second procedure, we’d use array(‘func’=>’orderHeader’), observing case sensitivity, which often matters (a topic for another day).