Should you be actually building all your IBM i apps directly on IBM i? Maybe not.
Not so long ago, I was an RPG developer working on IBM i. I’d been doing it for about 15 years when I came across an article about compiling your own PHP to run in the Portable Application Solutions Environment (PASE). Wow, I thought to myself, imagine being able to easily create web applications on an IBM i. It was revolutionary. Sure, there were ways to serve web pages from the IBM i before then (starting back around 2003) but none that were so easy. I decided this must be the future of the IBM i developer. I knew I had to learn how to write PHP code and run it on the i. So I did; in fact, I Iearned it really well. A few years later, after Zend Core was released, my friend Kevin Schroeder and I wrote a book on the subject.
This year, why not give a gift to others and contribute to the IBM i community?
It has been quite a while since I wrote about favorite gifts from IBM. A little over a year ago, I wrote gifts to give yourself. Now, in true trilogy form, because the best things come in threes, I am writing the last article in the gifts series. I guess that means I will need a new themed series.
This time around, I’ll show how to perform some operations over lists that typically require some heavy coding.
Start by opening Visual Studio and locating the IntroducingLists.sln project. I’ll be using it on this TechTip to explain some more interesting methods that can save you a lot of time. Last time around, I stopped after inserting the missing old name of the IBM i. Now let’s re-add a couple of names to see how duplicates can be easily removed with a single line of code.
Let’s continue to explore the List data type methods! I’ll also present a particularly useful string method that you’ll want to port to RPG.
The last TechTip introduced the List data type and explained a few of its (many) methods. This one will pick up where the last one left off. If you read the previous article, you’ll know that there’s an intruder in the list of IBM i names: “S/38” should be removed. Let’s start there.
Automation wins in the end. IFS Containers have automation as a first class citizen.
In the first article of this series, I discussed what IFS Containers are and how they use the chroot command to implement the container concept. To create the IFS Container, we had to manually create directories and copy files. That wasn't a big deal for the small example we created, but imagine if you needed to create an IFS Container for an entire PASE application that had requirements for hundreds of directories, commands, and libraries. This is where automation becomes a necessity, and more specifically, the IBM i Chroot open-source project.
Let’s continue to explore C# arrays and introduce a different FOR loop. It’s a very useful tool that has no equivalent in RPG.
In the last TechTip in this C# series, I introduced the array data type and showed how it’s defined and used. Now let’s explore some of its properties and methods, with the help of a different FOR loop: ForEach.
The future of storing ILE source code is closer than you think.
In this long-awaited article, I'm going to talk about how to store your RPG and CL code on the IFS and what steps you need to take in order to create objects out of that source.
First, you should know that CRTRPGMOD, CRTBNDRPG, and CRTSQLRPGI all have a parameter to specify a stream file for source. Thanks to IBM, this makes compiling RPG programs much easier. But what about CL? There isn’t a stream file parameter on CRTBNDCL, so what options do we have? I’ll come to that in a little while. If you work with other ILE languages, you might be glad to hear that the C, C++, and COBOL “Create” commands also have stream file parameters.
The proliferating adoption of open source on IBM i means there's a lot going on in PASE. How does one keep from stepping on toes? "IFS Containers" to the rescue.
I was talking with a colleague the other day, and he gave me valuable feedback, stating I should do more at the beginning of articles to describe the problem or the usage scenario of the technology before I jump into the geek parts. Of course, that's priceless feedback for me because if people don't understand the "why," then they won't take the time to read. So let me start this article with a slide that describes a common scenario with shops adopting open source on IBM i (Figure 1). BTW, this entire slide deck is available here as are all of my slide decks.