iCommunity (February 2010)

Article ID: 64674

Readers are interacting online in our blogs, forums, and articles. Here, we present some excerpts of their comments unedited and in their own words.


on our website . . .

Open-Source Add-on Library for RPG IV

If I am reading the compIler error messages correctly, the icomp module requires V5R3 because of the options(*STRING:*TRIM) statement.. Please, all software authors who publish, tell us the what level of os/400 is REQUIRED.
—from "RPG Open—Bob Cozzi's New Open-Source Library v1.0"

[Author Bob Cozzi responds:]
Normally I try to stay at least n-3 releases safe in my code, and where I am not, I use the IF DEFINED(*VxRyMx) directives (See the BNDDIR('QC2LE') statement.) But if you're not on v5.3 or later by now, then you can't expect us to point out that "this code works only on v5.3 or later" do you? What's the cutoff? I know it would be polite to do this, and *TRIM certainly "feels new" to me, (and I'm on v6.1) but all the way back to unsupported releases of the OS? Sorry, but if you're staying back that many releases for what ever reason... If I use short-form math such as X += 1 should I point out that it requires v4.2 or later? If I use QUALIFIED Data Structures, should I point out that it requires v5.1 or later? The rule of thumb is n-2 (used to be n-1) for the OS, so that means anything at v5.3 or earlier is considered standardized; no disclaimer required.
—from "RPG Open—Bob Cozzi's New Open-Source Library v1.0"

[Author Bob Cozzi responds again:]
I've updated the existing RPG OPEN codebase so that any V5R3 or later features are wrapped in conditional compiler directives. This means that if, for example, you are not on V5R3 or V6R1 the conditional compiler directives will allow the source to be compiled anyway.
—from "RPG Open—Bob Cozzi's New Open-Source Library v1.0"

Does Cool UNIXCMD Tool Need a Different Name?

Scott, I like UNIXCMD. That will remind everyone that this system can do it all.
—from "It's Easy to Run PHP, QShell, and PASE Tools from RPG"

Scott, how about calling it RUNUNIXRPG? The CL interface could be called RUNUNIXCL.
—from "It's Easy to Run PHP, QShell, and PASE Tools from RPG"


in our blogs . . .

The Key to Effectively Choosing and Implementing an SSO Solution

I 100% agree with Pat's comment that "IT's role is not to make users happy. IT's role is to make the usage of corporate information as cheap and efficient as possible for the business."

Performing password resets is one of the most frequent and most expensive calls to the IT group. I've seen studies pegging it upwards of $30 a call. Eliminating these completely may be a hugely involved and expensive proposition, as Pat describes.

A much more affordable and timely approach is to enable end-users to reset their own password in a secure, yet easy-to-use manner. There are many software solutions on the market that provide this capability.
—from "Single Sign-On Can Make Your Users Happy. But That's Not IT's Goal"


in our forums . . .

UNIXCMD Question

Hello, Can Scott's unixcmd ( which is awesome ) be used something like this? Start a sftp session, read from the pipe till I get a 'sftp>' prompt, then write back to the pipe so I can execute more commands? Thanks for your help.
—from a post about Scott Klement's UNIXCMD tool. Read Scott's article containing the UNIXCMD explanation, examples, and code-download.

[Scott Klement's reply to the UNIXCMD question:]
Currently, UNIXCMD assumes that when you try to read from a Unix process that you're done writing to it. It does this because there are many Unix processes that will do something like the following (pseudo code):

   while (read from input);
      ...process line...
      write to output;
   end-while;

the problem with this is that it reads and reads and reads until you're done sending input... and never finishes. If your program doesn't somehow signal that it's done reading input, you create a deadlock, where your process might be trying to read output, while the Unix process is trying to read input from you... To prevent this sort of problem, UNIXCMD assumes that all input is complete when you read the Unix processes's output. If you want to change that behavior to give it a try, you can edit UNIXPIPER4 and comment-out the following 3 lines of code:

    if (chd.pipe0 <> -1); 
       pipe_done(pip);    
    endif;

Then recompile UNIXPIPER4 and reclaim the KLEMENT activation group (or whatever activation group you have UNIXPIPER4 running in) and try again. However, I know there are safeguards in sftp to try to protect against insecure scripts -- so this may not work the way you want with sftp. It might detect that the input is coming from a pipe rather than a terminal, and refuse to accept commands.

Even if it does work, I wonder why you bother? Wouldn't it be a lot easier to use its existing -b script capability? Or an EXPECT script?
—from a post about Scott Klement's UNIXCMD tool. Read Scott's article containing the UNIXCMD explanation, examples, and code-download.


Got something to say? The SystemiNetwork.com community offers many ways for you to chime in. Send us an email, comment on our blogs or articles (look for the comment function at the end of each blog entry or article), or participate in our forums. We also have a LinkedIn group—a great place to network with your peers and discuss hot "i" topics.

ProVIP Sponsors

ProVIP Sponsors