Alan Seiden on PHP, ACS and the Possibilities of Open-Source Technologies
Charlie Guarino talks with developer Alan Seiden on his expertise in PHP, and his other extensive knowledge on open-source technologies.
By Charlie Guarino02/04/2021
Alan Seiden: Thank Charlie, great to be here.
Charlie: Absolutely. Alan, you've been using PHP on IBM i since 2005. For many developers that I know, open source is a brand new offering, or a recent addition to what we can do with this great platform. Obviously, that's not the case. When you first started using PHP, way back when, what were you seeking to do? How were you trying to use it, and what were you trying to accomplish?
Alan: I was looking for a way to bring newer, and different, technology to the IBM i that was
mainstream, that would work with what was here, work with the existing investments in RPG code and other things like .net data code that I was using. I got out at that time, made all these meet-up groups. It wasn't meet-up groups, user groups and things, and I went around and asked people; I learned what open-source was. Open source gives you control over your destiny. That's the way I think of open source. It gives you control over your destiny. Nobody can take open source away from you, so you can continue to work with it. It improves through the community. No one company can stop it, so I love that part about it, but I discovered PHP at that time. I went around that for web applications. That looked like the way to go. Then I was thrilled when it seemed that IBM was taking an interest in it. I saw a presentation by IBM, and I thought oh, this is good. I got involved and saw where this is coming to the IBM i and Zend was there, got involved and became helpful probably because I had my own requirements that I could talk about to IBM and Zend at that time, started writing articles about it and here we are, kept going with PHP and now Python, node, Git. Now open source really has grown, and it became part of IBM's stated strategy for the IBM i platform.
Charlie: It's funny you mention that about the—what I'm calling the explosion of adoption, but that wasn't always the case. You did mention that you started with PHP. There was a time when PHP was the only game in town, so to speak, as far as being able to run natively in IBM i. I think there was some slow adoption in the beginning, but it has increased as you also said. And you also mentioned newer technologies that are now available and, as you said, Python and node, things like that. What do you attribute to the, what I'm still going to call, the explosion of adoption? What are some of the reasons for that?
Alan: Well, one reason now, in recent times, is that IBM has made it very easy. Very easy to install open source on the IBM i, to install it and try it. Before you had to have special knowledge. I mean, PHP was fairly easy because IBM actually shipped in on the CDs or DVDs, and then you could download it. But, to do anything else it was—you had to find where it was. Now you just have to have—you don't even need to know commands. You can use ACS, Access Client Solutions. So, I'll just throw that in there Charlie. I know you're a fan of Access Client Solutions also, ACS. It's free with your IBM account.
Charlie: I love ACS. It's a phenomenal tool.
Alan: It has something for everybody, so I would say #1 is get ACS and have the latest version. I know upgrading—it’s not an automatic update, but just learn how to do it. There are resources. One of Charlie's previous iChime meetings covered that. So, get ACS, and you will see under the tools menu there is an open-source management window, and if you get that, it will set up the environment for you and you can see all the different applications, not all of them but the ones that IBM provides. So, you could have cURL or Wget. I mean, years ago I wrote an article for MC Press online about cURL. You really had to jump through some hoops to get it. Now it's right there with a click, just a click on that window and you can install cURL. Which is a way of—I called it—my article was called Talk to the Internet with cURL from the IBM i. Now, you can go and reach out and pull content from different places on the internet to your IBM i so that's one reason, IBM's strategy and they fulfilled it. This Yum command and ACS uses industry standard methods so, that's one thing. Second is younger people coming to the platform who may be accustomed to the Linux platform outside of IBM i. They come here and open source is very familiar to them, using this command lines and shells and SSH terminals; Yum, RPG, all that is very familiar to them. It makes them happy to be able to work with that on IBM i. The platform is not strange; well, it's strange, but they don't have to deal with the differences. They can deal in the world that they understand. That's another thing about open source. Another reason for this explosion of open-source adoption is, I think, corporate acceptance. Even IBM. IBM attorneys were wary at first. Can we really be responsible for code that creates collaboratively? And then same with ordinary companies too. People have gotten used to open source being there, perhaps because of Linux, the Linux operating system being so popular. Another reason is developers can try it without having to purchase something. Open source, generally, is either completely free of charge, or has a free tier to it, usually a free version—a free version that you can try, so that has a lot of functionality. Developers can try and experiment. You can also try it on your PC without trying it on IBM i first. Try PHP, Python, node, Git or whatever, and do it on your PC. Try it there, your own computer, and get your confidence up. Then you say, “look at what I can do manager,” and bring it onto the i. Or maybe you are a manager, and you understand. So, I think those are four reasons.
Charlie: Just so you know, I've written many more than four and I—
Charlie: Do want to back up on some of these? Because some of these are quite interesting to me.
Alan: All right.
Charlie: The first one you mentioned, of course, is the easier deployment of open source in general. That's with ACS. When I open up the list of what's available to run on IBM i, the list that gets populated is dozens long, or maybe even hundreds long. There are so many different things on there, and I think that's part of the problem for anybody who's not conversant in this technology. They see all these different things, and they don't understand exactly what they're looking at. I often wonder if some of those different things that are available today, are they similar functions of each other? How do you know which particular technology you want to use? How do you get started with this?
Alan: I'd say you should—first of all, let's take a look at that and see what's available, see what catches your eye. You may have heard of some of those tools from somewhere, but I think starting kind of in an abstract way. It's good to have an abstract understanding, okay what's open source? It means community collaboration. It means these are tools that go beyond the needs of one company, that many, many companies need. It's something that's not produced by one vendor, even though vendors may contribute to it. It's something that we can contribute too as individuals. We can actually even improve the documentation of tool, make requests or file issues with them. It's—we can see what they're—what the developers of these tools are thinking about, where they're going with it, what their direction is. That's true of all open source, even the PHP tool kit that I helped work on, XML service from IBM, or PHP itself or contributing to PHP and all the modules there, IBM Db2. We're contributing those; you can see what we're thinking and contribute your own thoughts. That's the philosophical background of it. But in terms of what you do, I think you if you have a purpose in mind like say, okay I need to transfer files from my IBM i to another computer, or somewhere else, or to my phone, or something. There may be a tool to do that like Rsisync R-S-I-S-Y-N-C, Rsisync, or perhaps, you want to test your connection. Let's see. Is my IBM i connected to the internet? Actually—I'm having problems with connectivity. Let me try something. You could use cURL or Wget. cURL and then URL, and you'd see, oh yeah, I can go to Google.com and download something from there or not. So, these tools may help you as utilities, or if you have an application—you hear the business has a need for some kind of application. You consider open source as a tool for that too.
Charlie: So, let's get into that for minute. There’s this umbrella called open source, yet open source encompasses so much so it could be a programming language. It can be a tool.
Charlie: What else can open source be? I guess my question is, anything that's out there that's "free," is that considered open source?
Alan: Not necessarily. It could be. It used to be the concept of freeware. They used to have these floppy disks, if you remember, freeware and shareware. That just means there's no charge to you, but it doesn't mean that you can see the source code behind it. That vendor could stop developing that software, and even though it's free, you're out of luck. You have no recourse. With open source, the source code is available. It's out there, and you could even take it on yourself, improve it, or learn from it, see how it was done. I find projects have a long life. With open source there's a long life like PHP toolkit. We worked on it, and then we kind of let it go for awhile, a couple of years, and now we're coming back because of the new PHP versions that are coming out. Our community plus, and different community versions. We're coming back to it, and I would say enhancing it again, thinking about what's possible now with IBM i as it exists now with the capabilities of the IBM i now, and the way PHP is delivered and open source is delivered, even the toolkit itself, so people actually contributed along the way.
Charlie: Well, let me keep going with that because what I'm finding, some of our own clients are letting our developers use more open-source tools that are out there, and it really has changed the paradigm of the solutions that we can deliver. For example, I'm looking at your website now and one of the sessions that you have is “Impress Your Boss with Open Source,” and I'm just reading the abstract. They talk about creating graphics, PDFs, content management for the web—
Charlie: So, my point is my toolbox has quadrupled, or far more, than that. The things I can offer running natively on the same platform is all available to me. It's just a matter of know how to deploy these different technologies.
Alan: Yeah, not to mention calling your RPG programs and getting JSON back or getting XML back with just a few lines of code using the toolkit out there. You could, from any of these languages or even from .net or whatever language you have, call your RPG program or COBOL program or CLs, just a few lines of code, and get data back that you can use in your applications for the webs or for APIs. APIs is a major user of open-source languages now to connect. Say your company is adopting Salesforce or some other software like that that is running on the cloud, or somewhere. You can connect to it using APIs from your RPG, PHP, Python, node, so on, and go back and forth, and keep control over your data.
Charlie: You know you mentioned earlier, you mentioned about attorneys, corporate attorneys, reviewing how to adopt this, and I did some research. I very quickly came to this term that I've seen, a recurring term: copyleft. And I know some corporations have been a bit reluctant to bring open-source into their off-into their enterprises because of licensing issues. Are they any quick—I mean I'm sure if you and I were to have a licensing discussion, we could probably talk for hours at end about licensing of this, but are there any quick gotcha's, or is there any one particular license that we should avoid, or one that we should only always use to make sure that we're in compliance? First of all, what is—even go that far. What is the issue with licensing if you can describe that in 30 seconds or less?
Alan: Yeah. Open-source software usually has a license of some kind. You should take a look.
Charlie: So, I surely need—as a developer, I surely need to dip my toe into the water here to see what this is all about because I really think by going down to learn more about this, as I said earlier, I can deliver much more robust, and not even robust but just new, as I said, new things to my clients, and to the community as a whole. What about RPG? What other resources can I find? I know there is at least one that I know, OSSILE that has RPG open source. Have you ever used any of those tools?
Alan: Yeah well, I personally haven't. Although, I have copied and pasted a lot of really RPG over the years especially for API calls and things that’ve been out there so I can code in RPG, but it's not my specialty. Other people in Seiden Group are better at RPG than I am, so I usually will defer although I can do it if I have too. So, I would say open source is just as legitimate for RPG as anything else. What about CGIF 2, and all those tools and what-you-call-its?
Charlie: So, what you're describing Alan here—
Alan: What's it called? IBM i unit.
Charlie: IBM i Unit. That's the newer tool that Marina Schwenk has.
Alan: Right, right.
Charlie: Of course, there was the original RPG unit for testing.
Charlie: IBM i unit is the new one that Marina has put out there as well, open source as you said. You mentioned performance, and that's one question that just comes to my mind also. Do I need to have any special hardware, or are there any special default systems values that one needs to know about if I'm going to start going in this direction in a more meaningful way?
Alan: So, to set up your system, to set up your IBM i system?
Alan: For success with open source?
Alan: Yeah. Be on a supported version of the operating system. IBM-7.2 was the release where the major improvements came for delivering open-source on IBM I, so be on a supported version of the operating system. 7.2 being the, I would say, minimum for things to work smoothly.
Charlie: Alan, I'll tell you this is a very good primer, and I have a sneaky suspicion that you and I could easily talk for another, I don't even know several more hours and just keep talking this and keep drilling into this and I have a feeling you'll be back down the road because this is a fascinating topic to me. Not only because it's new technology, but as you said, it's allowing more developers to come onto the platform, which is always a good thing. Anything we can do out there to further promote IBM i is a great thing, and having open source, as you described it so far, is just great. We are actually out of time already, if you can imagine that. Talk about time flying right?
Alan: Yeah, this was fun.
Charlie: Alan, I want to thank you very much. I have to tell you that I really do look to you as a leader in the community. You are an IBM Champion, and I appreciate your time on this. I'll just give a quick shout out to your website Seidengroup.com. You can learn more about Alan and his team, and how he's delivering successful open-source projects amongst many other things. Alan, thank you, thank you, thank you.
Alan: My pleasure Charlie, any time.
Charlie: Great thanks. Bye everybody. Thank-you for joining us today. Bye.
Charlie Guarino // President, Central Park Data Systems