• 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: Testing URLs With HTTP_GET_VERBOSE

    May 20, 2024 Gregory Simmons

    In my previous article Fooling around with SQL and RPG, I explored having a little fun with the HTTP_GET function to fetch a witty Dad Joke from https://icanhazdadjoke.com/. In this article, I want to demonstrate a more practical use of this great function. Or should I say, another version of HTTP_GET, that is HTTP_GET_VERBOSE, which also was introduced to us by the DB2 team in V7R3.

    In its simplest implementation, I can insert the URL I want to test into an SQL statement:

    select *
    from table(QSYS2.HTTP_GET_VERBOSE('https://icanhazdadjoke.com/',''))
    

    I will later want to run this embedded in an RPG …

    Read more
  • Guru: Fooling Around With SQL And RPG

    April 15, 2024 Gregory Simmons

    Editor’s Note: This was originally scheduled to be published on April 1. No joke. And for a lot of complex reasons, that could not happen. But, it’s still fun, so enjoy.

    I started out one morning, purely interested in having a bit of fun. Honest. In RSS within ACS, I often like to run this SQL:

     select *
     from json_table(
          QSYS2.HTTP_GET('https://icanhazdadjoke.com/',
                  '{"header": "Accept,application/json", "sslTolerate":"true"}'),
                  'lax $' columns ("joke" varchar(200) CCSID 1208)
          )
    

    Okay, that was fun. This is harmless, good fun. But then I thought, what if I put this into a simple RPG program? Then I …

    Read more
  • Guru: Procedure Driven RPG And Adopting The Pillars Of Object-Oriented Programming

    February 19, 2024 Gregory Simmons

    The four pillars of object-oriented programming (OOP): abstraction, encapsulation, inheritance, and polymorphism, were not created at a single point in time. They evolved gradually over several years, with contributions from various researchers and programmers. Here’s a brief overview of their evolution:

    1. Abstraction:

    • Alan Kay is credited with introducing the concept of abstraction in the 1960s with his work on Simula.
    • Abstraction gained further traction with the development of Smalltalk in the 1970s.
    1. Encapsulation:

    • David Parnas, in his 1972 paper “On the Criteria To Be Used in Decomposing Systems into Modules,” laid the groundwork for encapsulation by emphasizing the importance of
    …

    Read more
  • Guru: Getting Started With The Code 4 i Extension Within VS Code

    January 22, 2024 Gregory Simmons

    The Code for IBM i extension is growing in popularity and has certainly become my favorite source code editor. This article is not an attempt to convince you to drop RDi and switch to VS Code. Rather, I aim to share with you a few of my favorite settings and features in VS Code.

    Join In The Discussion

    Can’t figure out how to do something? Have a suggestion for a new enhancement? I am continually impressed with the speed at which I get responses when I post something. The team of coders and contributors to the Code for IBM i …

    Read more
  • Guru: Procedure Driven RPG Means Keeping Your Variables Local

    November 6, 2023 Gregory Simmons

    One of the things I love most about procedure driven RPG is that it allows me to keep my variables locally defined. Imagine this horror story that happens all too often in RPG shops.

    Jake: “Hey Gregory, Accounting just called; seems the rebalancing report program is acting up. Didn’t I hear you were working on that the other day?”

    Me: “Ugh, yes. All I had to do was reset this field that was used to show or not show the totaling line between branches. I tested in my library and the fix worked fine.”

    Jake: “Yeah, I had to change …

    Read more
  • Guru: Procedure Driven RPG With Linear-Main Programs

    September 11, 2023 Gregory Simmons

    A number of years ago, I started migrating away from writing subroutines and started writing procedures instead. Yes, quite often, this was simply because it was “new and shiny” and served no real benefit from their subroutine counterpart. However, as the language and I evolved, I found that my method of approaching every project was what I call procedure driven RPG.

    Let’s have a look at a simple RPG program. In this little program, to give it a purpose, I’m going to have a little fun with math and demonstrate the Fibonacci sequence:

    1	**Free
    
    2	Dcl-s i    Uns(3) Inz(3);
    
    …

    Read more
  • Guru: Speeding Up RPG By Reducing I/O Operations, Part 2

    June 12, 2023 Gregory Simmons

    Legacy code. Often one admits they have legacy code either with a chuckle or a wince. Nonetheless, it usually is admitted with bad connotations. We must remember though – legacy code becomes legacy code because it works. It performs its tasks day in and day out for many years and is forgotten about. Only the squeaky wheel gets the grease, right?

    The problem with this code is that, while it works, decades slip by, and technology evolves. As these decades roll along, we don’t just end up with a few programs that fit this ‘legacy code’ stereotype, we often end …

    Read more
  • Guru: Watch Out For This Pitfall When Working With Integer Columns

    May 22, 2023 Gregory Simmons

    Remember that awesome jungle game where you had to guide the hero through a series of increasingly hard obstacles to gather treasure? Jumping over snakes, scorpions, and rolling logs, swinging on vines over alligators –your timing had to be just right. Pitfall Harry survived in a world of 255 screens, each of which were 160 x 192 pixels and a dazzling 128 colors! Well today, I want to make you aware of a pitfall which caught me off guard a while back. I hope this article will help you avoid my pitfall.

    There I was, writing my code, happy as …

    Read more
  • Guru: Speeding Up RPG By Reducing I/O Operations, Part 1

    May 8, 2023 Gregory Simmons

    Perhaps one of the easiest ways to speed up an RPG program is to reduce the number of I/O operations it needs to perform. In this article let’s explore one simple method for moving toward dataset processing.

    Here I have a simple RPG program. Okay, admittedly, we don’t often get to write “simple” RPG programs, but for this example, I have stripped the RPG program down to just the read loop so I can demonstrate the conversion.

    1     Dcl-f AcctMstr Usage(*Input) Keyed;
    2     Dcl-pr entry ExtPgm('RPGRPT1');
    3       n Packed(3:0);
    4     End-Pr;
    
    5     Dcl-pi entry;
    6       inBranch Packed(3:0);
    7     End-pi;
    
    8     
    …

    Read more

Next Articles

Content archive

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

Recent Posts

  • IBM Pulls The Curtain Back A Smidge On Project Bob
  • IBM Just Killed Merlin. Here’s Why
  • Guru: Playing Sounds From An RPG Program
  • A Bit More Insight Into IBM’s “Spyre” AI Accelerator For Power
  • IBM i PTF Guide, Volume 27, Number 42
  • What You Will Find In IBM i 7.6 TR1 and IBM i 7.5 TR7
  • Three Things For IBM i Shops To Consider About DevSecOps
  • Big Blue Converges IBM i RPG And System Z COBOL Code Assistants Into “Project Bob”
  • As I See It: Retirement Challenges
  • IBM i PTF Guide, Volume 27, Number 41

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