• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact

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: Environment Variables – Global Variables Wearing Hiking Boots

    November 2, 2026 Gregory Simmons

    Sometimes a program knows one tiny piece of information that another program, several calls farther down the stack, needs to know.

    The obvious solution is to add another parameter. But sometimes that requires that new parameter added to one or more programs in the call stack. Before long, we’re passing a mushroom basket through half the forest even though most of the programs along the way have no interest in what’s inside it.

    There is another option that has been available on IBM i for a very long time: environment variables. IBM i supports both job-level and system-level environment variables. …

    Read more
  • Guru: When RNF0722 Won’t Let Your Legendary RPG Program Compile

    October 12, 2026 Gregory Simmons

    Some RPG programs have been around for decades. They started small enough. Then another calculation was added here, another subroutine there, a /COPY member or two, and years of enhancements, fixes, and changing business requirements.

    Eventually, some of them became colossal. And let’s face it, we all have “legacy” or, as some would argue, “legendary” programs that are older than a lot of our new hires.

    We all know these programs. They’re the ones everybody agrees should be broken apart someday, but they’re also important production programs that still need to be maintained today. And sometimes “today” presents a very …

    Read more
  • Guru: Two More Small But Handy RPG Enhancements: LIKE(*EXT) And %LOOKUPNE

    September 28, 2026 Gregory Simmons

    Not every trip into the field calls for hauling the whole pack, and not every search calls for scanning everything by hand. Two of the smaller enhancements in this batch of July PTFs for IBM i 7.5 and 7.6 are exactly that kind of quiet convenience: tools that let you reach for just the piece you actually need instead of doing more work than the job requires.

    DISCLAIMER: The mushroom names and file/field names used in the examples below are purely to give the sample programs some context and make them more interesting. Before foraging for or consuming any wild …

    Read more
  • Guru: Putting Failure Handling In Its Place

    August 24, 2026 Gregory Simmons

    One of the things I enjoy most about procedure-driven RPG is that it encourages us to think about responsibility. Every procedure should have a clear purpose. It should perform one task well and leave unrelated concerns to other parts of the application.

    That sounds straightforward enough, yet one responsibility often finds its way into nearly every procedure we write: failure handling.

    If you have worked with RPG for any length of time, you have probably encountered applications where nearly every procedure begins with a MONITOR operation. The procedure performs its work, catches any exception that occurs, logs an error, returns …

    Read more
  • Guru: Beyond Three-Part Naming – Running SQL Across Remote IBM i Systems

    August 3, 2026 Gregory Simmons

    In my article Guru: Finding Data in The Forest – Exploring Three-Part Naming In SQL, I helped you to get started with three-part naming. If you have a network of IBM i systems and haven’t availed yourself of this capability, you may be surprised at just how powerful it can be. Instead of relying on data transfers, replication, or intermediate files, SQL can reach directly into remote systems as though the data were local.

    That works well when you know exactly which remote system contains the data you need. But what happens when your network grows from a handful …

    Read more
  • Guru: Finding Data In The Forest – Exploring Three-Part Naming In SQL

    June 22, 2026 Gregory Simmons

    Anyone who has spent time foraging for mushrooms knows that location matters. A chanterelle found in the Pacific Northwest is not the same as one discovered in the hardwood forests of the Midwest. Experienced foragers do not simply note what they found. They record exactly where they found it: the region, the forest, and the specific location. Context matters.

    The same is true in SQL. Most IBM i developers are comfortable with two-part naming. A reference like MUSHLIB.FORAGE_LOG identifies both the schema and the object. It tells SQL where to look within a single system, much like noting the forest …

    Read more
  • Guru: SQL Sequences In RPG Let Db2 Handle The Counting

    June 1, 2026 Gregory Simmons

    There is something deeply satisfying about letting the database do the counting for you. In a world where we have spent decades hand-rolling identifiers, guarding them with locks, and hoping no job collides with another, SQL sequences feel like discovering a patch of mushrooms that quietly regenerate overnight. You stop worrying about scarcity and start focusing on what matters.

    In a procedure driven RPG system, this is exactly the kind of responsibility we want to isolate. Generating a new identifier is not business logic. It is not validation. It is not formatting. It is a single, well-defined action that deserves …

    Read more
  • Guru: Cohesion First – What A Procedure Should Be Responsible For

    April 6, 2026 Gregory Simmons

    One of the easiest mistakes to make in procedure-driven RPG is assuming that small procedures are automatically well-designed procedures. They are not. Size and cohesion are related, but they are not the same thing. A cohesive procedure has a single, clear responsibility. It exists to answer one business question or perform one business action. When a procedure tries to do more than that, it stops being a reusable building block and starts becoming a liability.

    In procedural RPG, nothing enforces this discipline. There is no compiler warning when a procedure quietly takes on a second responsibility. There is no language …

    Read more
  • Guru: IBM i Job Log Detective Brings Structure To Job Log Analysis In VS Code

    March 9, 2026 Gregory Simmons

    Remain Software has released a new Visual Studio Code extension called IBM i Job Log Detective, and it targets a pain point every IBM i developer understands: reading job logs efficiently.

    In addition to its marketplace availability, IBM i Job Log Detective is open source under the MIT license and can be found on GitHub at: https://github.com/RemainSoftware/jld

    There has never been anything wrong with IBM i job logs themselves. They are exhaustive, consistent, and remarkably detailed. When something fails, the job log contains the truth. The issue has always been consumption. Large QPJOBLOG files can run thousands of lines (or …

    Read more
  • Guru: Managing The Lifecycle Of Your Service Programs – Updates Without Chaos

    February 23, 2026 Gregory Simmons

    You’ve written your service programs, organized your modules, picked your activation groups, and maybe even set up a tidy binding directory. Everything seems perfect – until someone needs to update a procedure that half the shop’s programs depend on. Suddenly, that tidy structure can feel like a trap. Welcome to the reality of service program lifecycle management.

    The key principle here is simple: change with care. Any update to a service program can ripple across every program bound to it. Without a strategy, you’ll find yourself fielding calls about broken reports, failed jobs, or, worst of all, subtle logic errors …

    Read more

Previous Articles

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • Power Systems Turns In Another Great Quarter
  • Big Blue Is Right On Schedule With Fall 2026 IBM i Tech Refreshes
  • Guru: Environment Variables – Global Variables Wearing Hiking Boots
  • A New IBM i Entity Takes Shape: Power By Fortra
  • IBM i PTF Guide, Volume 28, Number 38
  • Critical PHP2Shell Security Vulns Evoke ‘Black October’
  • Why Fortra Partnered with FalconStor to Launch Continuity Care: A Validated Recovery Service for IBM i
  • Guru: Analyzing User Session Statistics, Part 2
  • Fresche Launches OpsIQ, a Free AI-Based Operation Assistant for IBM i
  • IBM i PTF Guide, Volume 28, Number 37

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle