Gregory Simmons
Gregory Simmons is a software engineer with PC Richard & Son. He started on the IBM i platform in 1994, graduated with a degree in Computer Information Systems in 1997, and has been working on the OS/400 and IBM i platform ever since. He has been a registered instructor with the IBM Academic Initiative since 2007, holds a COMMON Application Developer certification, and was recently acknowledged with a speaker award at POWERUp23 as well as a Level 1 Contributor badge with IBM. When he’s not trying to figure out how to speed up legacy programs, he enjoys hiking, backpacking, SCUBA diving, hunting, and fishing.
-
Guru: Service Programs And Activation Groups – Design Decisions That Matter
February 9, 2026 Gregory Simmons
If you have been writing service programs for a while, you might treat binding like flipping a light switch: write some code, compile it, bind it, done. It works – until it doesn’t. Behind the scenes, IBM i is doing a lot more than just connecting your program to a library of procedures. And if you’re not paying attention to activation groups and how you structure your service programs, you might be setting yourself up for sluggish performance or debugging nightmares down the road.
Let’s demystify what is really happening when you bind and why activation groups deserve more of …
Read more -
Guru: Binder Source Is Your Service Program’s Owner’s Manual
February 2, 2026 Gregory Simmons
If service programs are the backbone of modular RPG development, then binder source is the owner’s manual you didn’t know you needed. It’s not glamorous, but it’s the piece that ties everything together: Controlling what you export, defining your public API, and managing change over time. Yet, far too many shops treat binder source as optional – if they use it at all. That’s a mistake.
Let’s start with what binder source actually does. When you create a service program, you need to tell the system which procedures should be visible to callers. You could just use EXPORT(*ALL) and call …
Read more -
Guru: Access Client Solutions 1.1.9.11 – Security First, With Continued Investment In SQL Tooling
January 26, 2026 Gregory Simmons
Big Blue has released IBM i Access Client Solutions (ACS) version 1.1.9.11, and while the release is anchored by an important security fix, it also reflects IBM’s continued investment in the SQL tooling that has become central to day-to-day IBM i development and administration. This is not a feature-heavy update on its own, but it arrives after a series of releases that have steadily expanded the usefulness of both Run SQL Scripts and SQL Performance Center.
The primary driver for upgrading to ACS 1.1.9.11 is the remediation of CVE-2025-66516, an XML External Entity vulnerability related to how ACS processes certain …
Read more -
Guru: Taming The CRTSRVPGM Command – Options That Can Save Your Sanity
January 19, 2026 Gregory Simmons
If you have ever run CRTSRVPGM without paying attention to its parameters, you are not alone. Many developers just accept the defaults and move on, only to discover later that those defaults can introduce subtle bugs or unnecessary headaches. The command looks simple, but it is packed with options that can either make your life easier or create a ticking time bomb in your system. Let’s talk about a couple of the most important ones.
One parameter that deserves special attention is OPTION. By default, this parameter is blank, which seems harmless, but that blank value means you’re allowing duplicate …
Read more -
Guru: CRTSRVPGM Parameters That Can Save or Sink You
January 12, 2026 Gregory Simmons
It was 2 a.m., and the phone wouldn’t stop ringing. A production job had failed, and the error logs weren’t making any sense. After an hour of digging, the culprit finally revealed itself: the wrong procedure had been bound in a service program. Somehow, a silent duplicate had snuck through, and everything downstream was broken. If you’ve ever been in that situation, you know that “it compiles, it runs” is the worst mindset you can have when creating service programs. The parameters on CRTSRVPGM exist for a reason, and ignoring them can turn a simple build into a nightmare at …
Read more -
Guru: A First Look at Bob, The IBM i Assistant That’s Closer Than You Think
December 8, 2025 Gregory Simmons
I recently was granted early access to IBM’s new Project Bob, and I have been putting the Bob-IDE through its paces to understand what IBM is aiming for and what IBM i developers should expect as the offering matures. Bob is IBM’s emerging AI-powered development assistant and IDE ecosystem designed to modernize how developers work on the IBM i.
One of the first things that stands out is that the Bob-IDE is not an extension like the older WCA4i project, which was in extension form. IBM learned a lot from that experience, and those lessons led them to take a …
Read more -
Guru: When Attention Turns To You – Writing Your Own ATTN Program
September 22, 2025 Gregory Simmons
Most IBM i users press the Attention key without much thought. They’re used to the familiar system-supplied menu popping up, or maybe a command line depending on how their profile is configured. But buried in the system is a powerful customization point: you can assign your own ATTN program. Doing so gives you the ability to intercept that key and provide functionality tailored exactly to your shop’s needs. There are three main ways to establish an attention program, each with its own strengths and tradeoffs.
The most obvious method is at the user profile level. Within the profile’s attributes is …
Read more -
Guru: WCA4i And Granite – Because You’ve Got Bigger Things To Build
September 15, 2025 Gregory Simmons
They said AI would change everything. Then most of it turned into chatbot demos and marketing decks. But watsonX Code Assistant for i (WCA4i for short), backed by IBM’s own Granite large language model, is doing something IBM i developers might actually care about: Helping you understand, transform, and evolve legacy code without tossing decades of business logic into the fire.
WCA4i isn’t trying to slap a web UI over your green screens or auto-generate JavaScript for the sake of buzzwords. It’s aimed at something deeper – leveraging an AI foundation model that’s actually trained on IBM i code and …
Read more -
Guru: When Procedure Driven RPG Really Works
July 14, 2025 Gregory Simmons
In the vast and varied ecosystems of Earth, few interactions between species have captured the imagination of scientists and casual observers alike as much as the relationship between bottlenose dolphins and puffer fish. This curious dance, often involving the deliberate provocation of the puffer fish to trigger its natural defense mechanism, has led to many interpretations – from simple play to speculative pharmacological experimentation. I submit to you today, that in the digital ocean of RPG development, developers should interact with their procedures in ways that, to the outside eye, might seem equally cryptic, yet are deeply intentional, meticulously orchestrated, …
Read more -
Guru: Unlocking The Power Of %CONCAT And %CONCATARR In RPG
April 14, 2025 Gregory Simmons
When working with strings in RPG, especially in modern free-format code, the %CONCAT and %CONCATARR built-in functions (BIFs) offer efficient and readable solutions for combining strings. These functions simplify the process of concatenating multiple string values, making your code cleaner and easier to maintain. In this article, we will explore how they work and demonstrate their practical applications.
The %CONCAT BIF allows you to combine multiple strings. It’s a more efficient and readable alternative to traditional concatenation using the + operator.
Here’s a simple example:
**Free Ctl-Opt Main(CONCAT_1) ActGrp(*Caller); Dcl-Pr pause ExtProc('sleep'); time_to_sleep Uns(10) Value; End-Pr; Dcl-Proc CONCAT_1; Dcl-S firstName… Read more
