• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • 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: Playing Sounds From An RPG Program

    October 20, 2025 Mike Larsen

    I received a request to play audio sounds when an event took place on a display file. I hadn’t done this before, but I thought it was interesting to find out how it could be done. As with many tasks, it turns out there are more than one way to do this. My goal was to choose a method to make the process as seamless as possible.

    At first, the request was to play two sounds: one that would signal a positive event, and another to signal a negative event. But, as I started working with the project, I found …

    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: Decoding Base64 ASCII

    August 18, 2025 Chris Ringer

    A co-worker of mine recently asked me how to decode a base64 ASCII string in RPG, received from an HTTP response. My response was “that’s easy”, simply use the relevant SQL function BASE64_DECODE. I promptly wrote some sample code and after some debugging I realized this function threw me a curveball.

    Let me demonstrate the issue and offer a simple solution.

    01 **Free
    02 ctl-opt DftActGrp(*No) Copyright('(C) Chris Ringer');
    
    03 dcl-s string_UTF8   varchar(1000) ccsid(*UTF8);
    04 dcl-s base64_UTF8   varchar(1350) ccsid(*UTF8);
    05 dcl-s decoded_UTF8  varchar(1000) ccsid(*UTF8);
    06 dcl-s decoded_Hex   varchar(1000) ccsid(*HEX);
    
    07 Exec SQL Set Option Commit=*NONE, Naming=*SYS;
    08 string_UTF8 = 
    …

    Read more
  • Guru: A Faster Way To Sign A JWT

    July 21, 2025 Chris Ringer

    In my prior article, which you can read here, I discussed using the OpenSSL tool to asymmetrically sign a JWT. I like OpenSSL because it’s an open source solution available on many platforms and easy to use. But the decision to use OpenSSL should be coupled with the performance level expectations (the PLA) for your project.

    For instance, how many tokens will you need to create in a given interval? Will your newly minted tokens expire 24 hours from now or in 5 minutes? In my case currently, only about 5 JWTs are needed per day so …

    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: Creating An SQL Stored Procedure That Returns A Result Set

    May 12, 2025 Mike Larsen

    Continuing to build out the stored procedure series, I’m going to show how to create an SQL stored procedure that returns a result set. This is very similar to the previous article where I showed how to do this using RPG. In this example, we’re just using pure SQL to achieve the same results.

    I created an SQL script (Figure 1) that selects all rows from the Departments table. The SQL statement is the same as the one I used in the RPG program from the prior article, but I’ll describe it again here. I didn’t add any selection criteria …

    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

Previous Articles Next Articles

Content archive

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

Recent Posts

  • Big Blue Is Still Talking About Future Power Processors, Which Is Good
  • Who To Consult With On Your Cloud Strategy, And Who To Manage It
  • Guru: DateTime Rules Of Thumb
  • i-Rays Performance Analyzer Now Ready for Prime Time, Omniology Says
  • CNX Adds AI To Valence Development Tool
  • Q&A With IBM’s New GM Of Power, Hillery Hunter
  • When IBM i Skills Become A Resilience Risk
  • Guru: Load A Varying-Dimension Array With One SQL Fetch
  • You Have To Speak IBM’s Language If You Want To Be Heard
  • Raz-Lee Revs iSecurity Suite With 2026 Updates

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