End of Year Feedback
December 17, 2014 Ted Holt
It’s been a wonderful year, in spite of all the difficulties, problems, and vicissitudes of life that I would rather not have faced. I appreciate all the email that you’ve sent in response to the articles we published. To know that we’ve done something to make someone’s life easier and better gives me great satisfaction. I’d like to share some of your comments with your fellow Four Hundred Guru readers. May you enjoy the holidays, and may 2015 be your best year ever.
I just read Use Wireshark To Diagnose IBM i Communications Problems. You can bypass the spooled file and the conversion steps. Just create the STMF directly while stopping the trace.
TRCCNN SET(*OFF) TRCTBL(TRCCNNIP) + OUTPUT(*STMF) TOSTMF('/some-directory/comm-trace.cap')
I just read PDF = Pretty Darn Fine! I have one simple method to add. Any old program producing print output can have the print output overridden to a PDF. I’m even doing this with some converted S/36 programs.
This is covered in Method 1, Dave. With so many shops running old applications, it sure deserves emphasis. Thanks for pointing it out.
I’m drawing on Remove Misleading Messages from Job Logs to prevent monitored messages from clogging up the job log in a large RPG batch program. We also get occasional unneeded messages sent to the submitting user (which will eventually be ROBOT), which I’m working toward preventing, also.
Thanks again for your articles!
I’m glad you found something useful in Guru, David. Thanks for letting me know. It makes my day.
In the example program in SQL Functions You Didn’t Know You Had, Part 2, you have the statement “pSuccess = (handle > 0)”. It is possible to have “handle = 0” and it be valid. “pSuccess = not (handle < 0)” is the better way of determining success.
I like the UDF tip. We did that with one of our encryption/decryption routines.
Hope all is well with you. Of course I still love your columns but I’m just writing to let you know how much I appreciate them. I haven’t used Qshell in years so when I thought of it today to solve a problem I googled it and guess what my first hit was. Your Getting Acquainted with Grep article.
Your legacy and your gifts go on and on!
I am always glad to hear that something we ran (whether I wrote it or someone else wrote it) helped somebody, John. Here’s another grep article I wrote more recently: Search Source Members For Two Or More Strings
Just wanted to let you know your article Global Temporary Tables and Host Variables saved me a lot of grief. Thanks for what you do.
I am using your SQL function that reads an IFS directory and am very happy with it. I would know the file-creation timestamp. Is that possible?
Probably, but I will have to find a different API. I hope to get around to it one of these days.
I just wanted to thank you for the code and write-up for RTVDIR. I downloaded the source and tried it. I liked it so much I decided to modify it to also retrieve the user identifying information (UID and GID). I used the function in conjunction with the USER_INFO service in QSYS2 to retrieve the user profile and user name. I love it!
I don’t know how often you Google an RPG issue, but let me assure you that your solutions are much clearer, much more to the point, etc., than the average Google RPG result, so I always hope for an IT Jungle hit.
I am probably the biggest user of Four Hundred Guru, Kent. There is no way I can remember all this stuff. I’m glad I could help and that your problem was resolved.
I walked away from my desk last night frustrated. I was using DSPLY heavily to explore ILE activation groups and I could not figure out why DSPLY worked sometimes and did not work at other times. This morning I found Paul Tuohy’s article, The Nearly Forgotten DSPLY Operation. I changed my code to use a blank value instead of *EXT. Now DSPLY works as I want it to outside of PDM. Wow! I feel like I was being talked to directly.
Funny you should write about the Qp0zLprintf API today. I’ve been using it lately (even today, in fact). At one of my clients, we have jobs that run all the time, sitting on a message queue and a timer. These jobs wake up at pre-determined times or if a message arrives. I’ve used the API to write to the job log so I can see when it ran last and if it did anything (e.g., updated x rows).
Thanks as always. I do have to get a life–but I like this stuff too much.
Comments like yours make me think that maybe I’m running tips that people can use. I sure hope so, Russ. I try awfully hard to come up with useful information.
We are really blessed to work in a field that is so interesting. Too many people are stuck in jobs that they hate.
IBM has left no doubt where they are going, and that is SQL and free form RPG IV. I would like to see the code for all future issues of Four Hundred Guru in the newest IBM style. For me there is no use in perpetuating old styles. Like the song Don’t Stop [thinking about tomorrow]. Yesterday is gone. If we want to be “IN” the future, we need to see it and live it.
Thanks for your comments, David. I asked some of our authors what they thought, and here are their comments, followed by my own.
Jon Paris: Interesting. I do all of my new examples in free and update existing ones as and when I have time. I still supply fixed-form D-specs on the notes pages though.
I don’t fundamentally disagree with him on the free-form stuff, but since I don’t agree with the IBM philosophy of “SQL is the answer–now what was the question?” I will still continue to use native I/O where appropriate.
There is also the teeny tiny problem that when you write exclusively in free form you have locked out all those on V6, let alone those on V5R4. How big a market is that these days I wonder?
Susan Gantner: I think our writings, like our teaching materials, should be targeted to be beneficial to as large an audience as is feasible. Showing code examples only in free-format and all SQL omits a large segment of our potential audience.
That said, it is also good to encourage modern coding techniques and styles. So it is a dilemma.
Jon and I tend to have differing opinions on when and how much new stuff to include in our teaching examples. You probably won’t be surprised to hear that Jon is much more likely to use all free-format and even not-so-new things like variable length fields and qualified data structures in his examples than I am.
I think I increase the likelihood that someone will get the point/topic of my session (or article) without being distracted by parts of the code they aren’t familiar with.
So where Jon said he usually teaches to the free format version and has a fixed format version in the notes, I tend to go the other way around–I’ll teach to the fixed format version and have the free format in the notes where practical. BTW, I am talking about fixed vs free F, D, and P specs here. My take is that free format logic is the norm these days for most shops for new code.
I’ve always felt you have to meet people where they are before you can move them forward. You’ll be more successful pulling them forward than asking them to make a big leap.
David, I’m sure, would say I’m proposing we teach to the lowest common denominator and to some extent that may be true. But to the extent that the lowest common denominator keeps moving upward, I think we’re being successful. My fear is that we lose people and force them to remain at that lower level if we just forge ahead showing only the latest and greatest and assume they will follow along. I think too many will not make that leap and will stay stagnated where they are and that would be a shame.
Ted Holt: Thanks for your email, David. I am in favor of promoting the latest and getting away from the obsolete.
Concerning RPG, I use free-form almost exclusively in production work now, but I am not in favor of writing all RPG code in my Four Hundred Guru tips in free-form. We have plenty of readers who are not able to compile the new free-form H, D and P specs. Where I can and where it makes sense, I will write the example code in my tips in both free-form and fixed-form. In the case of downloadable code, especially utilities, I plan to publish fixed-form versions that will work on 6.1. If I can publish a free-form version as well, I’ll do so.
As for SQL, I use it as much as possible in production work, but sometimes record-level access makes more sense. We publish plenty of SQL information in Four Hundred Guru, and will continue to do so in order to help the readers improve their SQL skills. I’m not going to tell our authors or our readers that RLA is no longer acceptable.
I really appreciate you taking the time to write.