Sunday, April 05, 2026

Creating, Distributing and Restoring IBM i Objects via Save Files

One of the object types I use the most with the IBM i operating system is the save file. 

Save file objects can be used to save and restore IBM i libraries using the SAVLIB/RSTLIB commands. 

You can also save and restore individual objects or groups of objects using the SAVOBJ/RSTOBJ commands. 

And for saving and restoring IFS files for archive or distribution you can use the SAV/RST commands.

The following GitHub page I created shows some PASE and CL commands that just might make your life a little easier when dealing with saving and restoring information using save file objects.  

https://github.com/richardschoen/howtostuff/blob/master/ibmi_savefile_copying.md


Sunday, March 15, 2026

MacBook Neo For IBM i Development

For those who don't know me I'm a software developer and I create software apps and utilities for Windows, Linux, MacOS, Mobile and IBM i.

I have used and tested almost every Windows computer and MacBook under the sun in search of the best portability machine that performs well so I can still get things done efficiently.

This week Apple released the MacBook Neo. The Neo is basically a new version of the MacBook that uses the A18 ARM phone chip. And it starts at $599/$499 US with the student discount.

I had seen a lot of Neo reviews on the lead up to release day and since the release and thought surely this thing will be slow since it's using a phone chip. Release day happened to be during my vacation in sunny Florida. I tried to keep my FOMO in check but ultimately my curiosity lead me to picking one up on opening day. The Apple Store was not overflowing but the guy in front of me was picking up the same model. I went the Indigo Blue model. They currently offer Silver, Indigo (Blue), Citrus (Yellow) and Blush (Pink).

Even though I was trying not to check it out right away I couldn't help myself. My tech brain needed to see what this thing can do.

I've been trying out new technology on release day since the first Windows 95 release when I had to pick up my copy at midnight. At least this was a daytime pickup. 

I purchased the 2nd tier 13" Neo model with 512 gb storage and a lowly 8gb ram.  If the thing performed well I wanted to make sure I can take it along with me on a trip when I don't want a more expensive computer with me when traveling or when I need a capable backup computer "just in case".

My two main concerns about the device were:

- How well can it run things with just 8gb ram.

- Will I be able to use it in a dim room without the backlit keyboard.  

Well I can share that it spectacularly failed the low light keyboard test, but as a potential choice for the user or developer looking for a low price MacBook to test the waters or for a first time Mac user to replace an older Windows or MacBook laptop I believe it's a win.

To put this machine to the performance test I decided to install a raft of my favorite development tools and other apps to see how they perform. 

-Jetbrains Development Suite for .Net, Python, PHP, Java and HTML (Rider, PyCharm, PHP Storm, IntelliJ, WebStorm)

-VS Code with Code for i and other plugins

-IBM i Access (ACS)

-IBM i Access (ODBC)

-TN5250J

-IBM Rational Developer for i

-Rosetta (For running MacOS x64 apps)

-Greenshot

-LibreOffice

-Microsoft Office

-Remote Desktop Manager

-Windows App (RDP)

-Java JDK

-DotNet 10.0 SDK

-VMware with Ubuntu Linux

-VMware with Windows 11

I expected things to become sluggish pretty quickly because of the limited memory in the MacBook Neo. 

Rather than take you through a litany of my tests let me just say that the MacBook Neo seems to run just fine with 8gb of Ram.  Even VMWare seems to do quite well with Ubuntu Linux in case you like having a copy of Linux or Windows 11 available. Windows 11 functions well with 5632 of memory or below. Windows in VMware is recommended for limited use only on the MacBook Neo. Ubuntu seems to be pretty snappy with 4gb. 

The only reasons for not choosing this as your MacBook of choice might be for the user or developer who does a lot of photo editing or video editing of large file transfers or you want to do some local AI work. Or if you work in the dark often like I do you might want to choose a MacBook Air or Pro. 

Highlights for the MacBook Neo

-2.7 lbs

-Price

-Performance and functionality

-Keyboard keys that match the laptop color schema

Potential shortcomings

-Mechanical trackpad (actually works quite well)

-No keyboard backlight

-No notch or live camera indicator other than in the menu bar

-Only 8gb memory

-Slower NVM disk speeds, although not really noticeable

-No high speed Thunderbolt ports, although it does have USB-C

-No separate charging port. Have to use the USB-C ports.

-Doesn't fast-charge

Ultimately if you have been considering purchasing a MacBook for the first time, the Neo is a great place to start and you, your wife or husband, your kids or grandma and grandpa will not be disappointed with this device unless they are high end gamers or photo/video production creators. A used or re-furbished MacBook of any vintage M1-M5 with 16gb would also be a good option.

If you don't purchase the MacBook Neo, let me just say that anything with the M5 processor will become a computer that can probably last you the next 5-10 years. I have been using a MacBook Air M1 from 2020 for almost six years and it still functions as my daily driver, even though I have newer machines. The M1 was one of the few bright spots of the pandemic year. I recall picking it up from the Apple Store while wearing a mask. Sadly Apple says it's only worth $200 on trade in. For that amount I will keep and continue to use it.

In case the MacBook Air is the sweet spot for your needs I will share with you my current favorite. My personal favorite laptop right now is the MacBook Air 15".  If I were buying a new development workstation today I would probably go for the MacBook Air 15" M5 as a mix of high performance, light weight and value. However the MacBook Air 15" M2, M3 and M4 are really just as capable. You can't really go wrong with any Mac with an M1, M3, M3, M4 or M5 chip. These things just work and almost never make you wait.


Sunday, February 08, 2026

Self Hosting your Own Apps

If you business has a need for some new apps, check out the  following site: https://awesome-selfhosted.net/ 

This site contains lists of various self-hosted and open-source apps for Backup, Blogging, Wikis, Automation, CRM and more. 



Friday, February 06, 2026

My #%## SQL RPG Program Won't Compile

Compiling SQLRPGLE Programs that Contain Long SQL Lines

I had a need to create some SQL in the IBM ACS Run SQL Scripts and then wanted to transplant that code into an SQLRPGLE member for processing.   

When I compiled the SQLRPGLE program the SQL preprocessor was giving me odd pre-processor errors. 

As it turns out by default your SQL line width is most likely limited to 80-100 characters. 

Resolution

The easiest fix is to make sure your SQL statement lines are less than 80 characters.

-or-

The other option is to tell the compiler to allow longer lines when specifying *LVL1 or *LVL2 for the RPGPPOPT parameter. 

Here's an example using the PPMINOUTLN parameter in the CRTSQLRPGI command when creating an SQL RPG program: 

CRTSQLRPGI OBJ(&L/&N) SRCFILE(&L/&F) COMMIT(*NONE) RPGPPOPT(*LVL1)    DBGVIEW(*SOURCE) COMPILEOPT('PPMINOUTLN(500)')

Apparently you can skip the special compile option parm COMPILEOPT if you add a special environment variable into your current job like this:

ADDENVVAR ENVVAR(QIBM_RPG_PPSRCFILE_LENGTH) VALUE(500) 

You will still need to use the RPGPPOPT parameter set to *LVL1 or *LVL2.


Wednesday, February 04, 2026

What is my public IP address for IBM i

There are times you might want to check your public IP address from your IBM i system. Fortunately you can use the curl command and the QSHCURL command from a CL or RPG program to determine your current IP address if you're using the FREE QShell on i (QSHONI) software (https://www.github.com/richardschoen/qshoni) I created to integrate your PASE program calls to a traditional IBM i program. 

Making the CL API call to curl is as simple as this: 

QSHONI/QSHCURL CMDLINE('https://api.ipify.org') DSPSTDOUT(*YES)

And the results automatically show up in outfield QTEMP/STDOUTQSH for you to utilize from your CL or RPG programming. 

Example IP address response written from STDOUT to the first record of the outfile: 32.1.1.22

Check out QShell on i to be able to run curl commands and much more. 

If you find some interesting use cases create an issue on the GitHub site, post a comment or email me and I can publish as an example. 


Monday, January 19, 2026

Friday, January 02, 2026

Work with IBM i - A Modern Windows Alternative to PDM

As PDM and SEU continue to work towards being deprecated, the goal of the Work with IBM i project is to provide a FREE, Windows-based alternative for PDM developers who are beginning the journey of moving their development workflow off the green screen and onto the desktop.


While VS Code and RDi are both excellent development environments, having options matters—especially options that preserve editor freedom of choice and allow continued use of existing PDM user options.


Flexible Editor Support

With Work with IBM i, developers can use:

  • The built-in internal editor
  • VS Code
  • Notepad
  • Notepad++
  • RDi (using a slightly modified workflow)


The software supports online and offline editing using virtually any Windows-based editor that accepts file names via the command line. Since Notepad++ is widely used in the IBM i community, this alone is a compelling reason for many developers to adopt Work with IBM i.


Another key advantage is that SSH is not required. Many shops prefer not to open SSH ports, and Work with IBM i works entirely through standard IBM i access ports.


Project Background

I originally started this project 4 years ago as a way to gain more practice with .NET Core WinForms, but it has proven to be far more useful than initially anticipated. The core application is completely FREE to use.


Purpose and Philosophy

The primary purpose of Work with IBM i is to provide a Windows-based replacement for PDM that looks and feels similar to PDM, allowing developers to work with IBM i source members without a 5250 green screen, while maintaining a familiar, PDM-like workflow.


The goal is simplicity:

Use the best editors available on the PC, keep existing processes where possible, and avoid forcing developers to learn an entirely new development model.


Git Integration with iForGit

Work with IBM i integrates with iForGit, the subscription-based Git source management solution for IBM i that I created.

Learn more:

The Work with IBM i client app provides direct access to iForGit CL commands, allowing you to commit changes to Git repositories directly from standard source physical files.

(An active iForGit annual subscription is required for versioning features.)


Editor Configuration Options

Although the application includes a built-in text editor, many developers prefer VS Code. Work with IBM i supports VS Code along with the Code for i syntax extensions.

You can configure separate editors and viewers if desired. Supported options include:

  • Internal editor (default)
  • Notepad
  • Notepad++
  • VS Code
  • External workflows using RDi

Using RDi requires downloading source locally and editing outside the application. Detailed instructions are available here:

https://github.com/richardschoen/workwithibmipdm/blob/main/using_rdi_for_editing.md


PDM User Options Support

PDM user options are supported, provided they do not rely on a 5250 interface.

The default PDM options file is:

QGPL/QAUOOPT


This can be changed in the settings file, allowing you to reuse your existing PDM user option commands directly within Work with IBM i.


Offline Editing and Visual Feedback

The client tracks whether a source member has already been downloaded for offline editing and provides visual indicators in the UI. You can:

  1. Download source to your PC
  2. Edit it offline
  3. Upload changes once reconnected


This editing workflow enables productive development even when disconnected from the system.


Future Enhancements

As a future enhancement, .NET developers will be able to create custom alternatives to PDM user options using a C# plugin model.


Connectivity

❗ IBM i access ports used for communication:

  • 446–449
  • 8470–8479


No SSH access is required.


Getting Started

Getting started is simple:

  1. Download the application. Visit the GitHub site below to request access.
  2. Unzip it 
  3. Launch it
  4. Enter your IBM i user profilepassword, and host name or IP address


You’ll be connected and ready to start using PDM—on Windows.


Have fun, and please leave feedback or report issues on the GitHub project page.

https://github.com/richardschoen/workwithibmipdm