Hey there, fellow IBM i RPG Nerds. I was revisiting a couple of old posts about source code commenting and compile directives and it got me thinking about these marvelous, often overlooked features of IBM-i source code. Today, let’s dive into RPG compiler directives! If you have ever stared at a mile-long compiler listing wondering …

Read More

This morning, it’s time to revisit an old blog titled “IBM i ACS – Download SPLF (Spool Files) as PDF” and check it’s still accurate and add a little sparkle for newcomers to the IBM i (aka AS400 & ISERIES) world… If you’re anything like me, you’ve spent way too many hours staring at green-screen …

Read More

The Mysterious “M” in Your DDS: Naming Conventions vs Keyboard Shifts This morning I opened a DSPF and spotted what looked like a data type of “M” against a field that smelled numeric. My first thought? “Since when did IBM i add an M type?” Turns out the original developer had a very correct reason …

Read More

…and it has a couple of cool/must-have updates Current Latest Version This is the freshest drop. IBM pushes these updates a few times a year, so always grab the newest one. Previous Recent Releases Why You Should Update Right Now Version 1.1.9.11 fixed a nasty XML External Entity (XXE) injection vulnerability (CVE-2025-66516) that could let …

Read More

(Before You Become a Walking Error Message) If you’re new to the IBM i world, congratulations – you’ve just stepped into one of the most powerful, stable, gloriously quirky computing platforms ever built. But before you can call yourself anything other than “that person who keeps locking QSYSOPR,” you need to memorise a handful of …

Read More

“This week I’ve been mostly writing sub-procedures” If you have spent any time writing modern RPGLE on IBM i, you’ve seen small sub-procedures, bloated sub-procedures, simple, complex and plain crazy sub-procedures. Over the last week, I’ve been working hard to modernize a whole bunch of legacy RPG and SQL RPG code into cohesive, reusable sub-procedures …

Read More

If you have ever stared at a dusty fixed-format RPG III program from the 1990s and thought “there has to be a better way”, then IBM’s latest AI-powered sidekick might just be your new best friend. Meet IBM BOB (yes, that’s the official name now – Project Bob has grown up). BOB is IBM’s AI-first …

Read More

AKA – Taming the wild west of RPGLE/SQLRPGLE source code comments with IBM i BOB, turning cryptic developer scribbles into a perfectly standardized, comment utopia. If you spend any time maintaining IBM i systems like I do, you know how messy legacy RPGLE and SQLRPGLE source can get. One program after another with zero comments, …

Read More

If you are just getting started with IBM i systems or you need a solid refresher on how the database really works under the hood, you have landed in the right place. Today we are going to walk through the complete hierarchy of IBM i data structures in a clear, step by step way. We …

Read More

One of the most common headaches when you integrate your IBM i with the outside world is converting data between EBCDIC and ASCII. You get a flat file from a PC, pull JSON from a web service, or process input from another platform and suddenly your strings look like garbage. The good news is that …

Read More

If you have read my previous blogs, you probably know that I recommend we all stop guessing file sizes and switch to SIZE(*NOMAX) for all physical files! Now for something a little more radical, STOP USING DDS and start defining your database objects with SQL instead! Upgrading from legacy DDS to SQL for defining tables, …

Read More

In almost all the IBM-i shops I’ve worked at, we have always set the initial size of physical files to what seems like a reasonable value. Quite often we just accept the system default of 10,000 records with three increments of 1,000 records each. Sometimes we tweak one or more of those numbers, usually the …

Read More