www.justiceforchandra.com Forum Index www.justiceforchandra.com
Justice for Chandra Levy and missing women
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

rdwrites open source RPG ILE /free project
Goto page 1, 2  Next
 
Post new topic   Reply to topic    www.justiceforchandra.com Forum Index -> www.rdwrites.com forum (part of www.justiceforchandra.com)
View previous topic :: View next topic  
Author Message
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Jul 10, 2009 4:47 am    Post subject: rdwrites open source RPG ILE /free project Reply with quote

I released first app for my rdwrites RPG Google Code project. Link at:

http://code.google.com/p/rdwrites/

I'm working on a web server app but needed this WEBVISITOR / WEBBLOCKER file maintenance app for use for my existing site so wrote it first. (Normally analyzing traffic is after the web app is running. :)

There are several things I wanted to accomplish with this program. I had never gone full cycle of writing a service program, creating a bnddir, copying common D specs, writing a page by page subfile program, or used windows for all the screens coming off the main one. Basically this is the way I'd develop if I was spec'ing, and since this is my project, I spec'd it. :)

My focus is on performance for large numbers of users over very large files, and I use native IO for all but mass accesses to files. Obviously for other than large amounts of data SQL will do just fine, and I fully expect someone will point that out to me. My response is the code is there, take it and do as you please.

It's just a start, but it would be nice to eventually get enough open source out there from the community that takes full advantage of an iseries to start getting those current really really low cost used iseries snapped up to use for a compelling RPG app and get the numbers going again to lead to purchases of upgrades to new IBM i's and commercial packages.

Now on to a web app.

rd
_________________
ralph@ee.net
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Jul 10, 2009 12:50 pm    Post subject: Reply with quote

from systeminetwork:

zenbudda wrote:
I'm interested in taking a look but I'm not certain I fully understand what your package is offering. Is it just some sample programs that utilize the programming features you mentioned? Do you provide some type of toolset that makes creating/maintaining web apps easier? If this is already explained somewhere I must apologize for missing it.



Scott Klement wrote:
Yeah, I'm right there with Zen... I have no idea what this code is for or what it does or why you posted it.

You talk about writing a service program, D-specs, binding directory, etc... Those are certainly all good techniques to use in your code. But, why would I want to go to a site and download that code? Since it's your first time doing it, and I've been doing it for 13 years, I can't see myself using it as an example.

What's the purpose of the code you posted?



psa_brad wrote:
I thought what the heck, I'll look at it but I'm not sure how the source was saved so I gave up. Thanks anyway.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Jul 10, 2009 12:50 pm    Post subject: Reply with quote

zen, you didn't miss anything. It's just as simple as it sounds.

This first release is a subfile maintenance program written in /free and using subprocedures in service program(s). It's a fully functional RPG source that could be used as a shell program for any subfile program. It's easy to see how the procedures in the service program make development so much more robust.

Of course for you and Scott and other frequent posters who already do this, this is old hat. This unlicensed open source is especially for company developers that would like a full blown 5250 subfile shell program to get started with a working ILE infrastructure. Even if there were similar out there, and I haven't seen any, I would still release it because I wrote it for my own needs and maybe someone else can use it, probably not as is but almost anything they do would be similar.

As is, it lets you work with records of website visitors and IP address blocking if you do that, which I do (although I'll always drop a block of a range for my site that someone tells me they're using to try to access - the sad fact is that for US oriented content, the only traffic coming from overseas is malicious.)

I will add a weblog scan to autopopulate the WEBVISITOR table later but it is way down the list.

The next thing I'm working on is a CGI to DATAQ web processing program that implements some ideas I have. We'll see how it works out. If it works I think it could be considered easier to program and faster processing, but it's not a tool, just a technique.

Scott, given that 70 to 80% of any iseries questions I Google are answered by one of your posts, no, there's certainly nothing here that you don't already do. To look at it would be for amusement purposes only. But if you are so inclined... :)

brad, it says it's a savf. I've downloaded from various sites and uploaded to my iseries in the last couple of weeks savf's for CGIDEV2, Rennaissance, and HTTPAPI, so I guess I got used to it. It was very very late last night and I forgot to specify the particulars as Giovanni, Kevin, and Scott do so well.

The savf's are created by user QPGMR and they contain:

RDWS090710 - file RDWSRC from library RDWRITES

RDWA090710 - library RDWRITES including all the compiled objects from RDWSRC and file RDWSRC

I'm planning on doing a couple of things tonight, one being the RSTOBJ instructions for those savf's similar to what the others provided and two, export the source code from RDWSRC members and check in to the Google Code Subversion repository. I have a lot to learn, I haven't used those code repositories before.

But it's a start and the RPG code is there to freely incorporate in any way that could be helpful.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Sat Jul 11, 2009 2:36 am    Post subject: Reply with quote

Zenbudda wrote:
In that case I think what you posted will be very well accepted, especially by people like me. Granted, like you said, expert programmers may not have much of a use for it. I, for one, might find some use for it, in terms of code comparison and a general "oh you can do subfiles this way too" knowledge. And the fact that you packaged a template for people is a good gesture which I, for one, fully appreciate.

This kind of reminds me of what csszengarden is for web programmers. I sometimes find myself spending excessive time on "the most eligant way to do something", knowing darn well i can write something quick and dirty in 1 hour. It would be interesting to see what everyone else does in terms of green-screen subfile programing, as well as implementing full ILE / procedures in green-screen programming. It seems every shop I've worked at has their own bells, whistles AND shortcomings. As an example, you can search for posts with my name and see a huge drawn out discussion about how the company I work for uses a template using SFLEND(*MORE) which was not very well received on the boards here due to a limitation on reading the last record in the subfile and MORE still being displayed. I enjoy engaging in these types of debates about things like this because it shows me what other people are doing and I'm always up for learning something new, especially if it's easy to grasp.



Rocky wrote:
At least he's taken the initiative to create an area where people can colloborate and learn from one another.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Sat Jul 11, 2009 2:37 am    Post subject: Reply with quote

Thanks for that thought, Rocky. That's exactly what I had in mind, advocacy for our iseries, marketing as Scott put it so well the other day. I wrote on the rdwrites Google Code project summary that it was a small contribution to the IBM i Manifest initiative. Freely available code using native i capabilities to its fullest can only be a plus.

And it wouldn't be marketing unless the code was commercial grade. I will put my RPG open source up against open source in any language for beauty, power, elegance, and rock solid performance.

I am redoing the savf's, Scott. Thanks for the .savf extension suggestion. I now see how neatly that fits in with the namefmt 1 scheme of FTP'ing it to an iseries savefile by same name where .savf extension does double duty.

Just the latest of many suggestions you've made from your past posts. When I was trying to figure out how to map incoming URL's to CGI programs, it was your post where I understood I could name the alias whatever I wanted. Then it was another post where you explained mapping aliasname/* to CGILIBname/$1.pgm

It was very murky to me from the guidance in HTTPAdmin. And then to finally prove the CGI configuration was correct, Googling simplest RPG CGI program gave me your half dozen line web program, and another search to figure out I needed to create a bnddir to access the Apache service program. This resulted in my Hello World:

http://173.8.38.42:2700/iseries/rdwelcome

I'll be setting the DNS for www.rdwrites.com to my iseries soon, but in meantime basically I'm developing one Scott Klement post at a time. Much appreciated.

Zen, that's some of the magic of open source collaboration right there. Making an extra IO after loading the subfile to check for whether another record is available was something I haven't done in awhile. It just isn't a factor very often. The last record of the read sequence has to be on the last line of a subfile page, and then another page down gets you nothing. But I thought about it and it is very good to see bottom when you're at the bottom and not page down to find nothing. So I'll throw that extra IO check in the subfile load routine.

The key to being helpful will be to get the source code into the repository and into Google's (and thereby other's) open source code searches. Certainly I've never been able to look at anything in a SAVF before and even people that might be interested in restoring from a SAVF would like to see what's in it first. That reminds me. When I export the source members to IFS, I'll zip them up as text files for download as well.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Thu Jul 16, 2009 12:50 am    Post subject: Reply with quote

I got the WEBVISITOR ascii source files zip uploaded to the rdwrites Google Code project. File RDWT090715.zip at http://code.google.com/p/rdwrites/

Here's the readme.txt I placed with it:

rdwrites
open source RPG ILE /free demo code

Google Code http://code.google.com/p/rdwrites/

rdwrites is an RPG open source project intended to provide fully functional ILE /free applications available for businesses to freely incorporate and modify in their software development.

RPG applications will range from file maintenance to a web server engine (using CGIDEV2 but web server independent via DATAQ) with supporting procedures and utility programs. Focus will be on performance rather than development time.

The code is unlicensed and unencumbered to be used at will to further best use scenarios for the IBM system i. Google Code doesn't provide for no license so I chose Apache License 2.0 since we are all using the IBM i HTTP Powered by Apache server.

Consider this one small contribution to the IBM i Manifest project of the Japanese partner community and others worldwide. Messages are externalized to a message file to help in supportng translation and multi-language support.

I'll post comments on upcoming updates on my blog http://www.rdwrites.com/forums/viewtopic.php?t=4114 (shared on my longtime forums www.justiceforchandra.com). I currently have it heavily blocked IP address and email domain wise now because of spammers but for anyone wanting access, just email me an IP address you're using on an email address you wish to use to register to post and I'll unblock them.

The first release is RDWx090715, where:

RDWT090715 is WEBVISITOR file maintenance ascii source files zip

RDWS090715 is WEBVISITOR file maintenance source savf zip

RDWA090715 is WEBVISITOR file maintenance source and object savf zip

WEBVISITOR / WEBBLOCKER is a program I recently wrote to help administer my site. It is written in RPG /free with subprocedures in a service program. The subfile is page by page style with windowed maintenance screens.

This could serve as an ILE shell program for any 5250 file maintenance program or application by replacing and extending the code in place. There are no copyright, license, or disclaimer statements as a requirement to carry along, etc. That isn't a knock against others who must do that for business and legal reasons. I'm just in a position not to have to worry about someone trying to break my code.

The ascii source files could be compiled from IFS. The source savf will have a restore readme with it, and can be compiled from the resulting source physical file. The object savf will have a restore lib readme with it, and is complete with source for all the objects.

The WEBVISITOR / WEBBLOCKER programs may not be of use as is for most. I happen to have a lot of notes on web visitors to my site that I needed to enter by hand. Later I will add a weblog scan to autopopulate WEBVISITOR file, but it's low on the list.

But hopefully this is a useful template of a complex RPG ILE /free program to jump start programming in /free with service programs. There's an issues capability on the rdwrites Google Code project that might be handy if needed.

regards,
rd
ralph@ee.net
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Wed Jul 22, 2009 12:49 am    Post subject: Reply with quote

from slashdot.org, in the Open Source Languages Rumble at OSCON thread:

hairyfeet wrote: After all, what other language is there that you can not only write programs in, but also cause wonderful facial ticks in "real programmers" and fill their hearts with dread?

well, if we're going to get down and dirty, I'll see your VB6 and raise you RPG /free. There, I can see some real programmers hearts filling with dread already. :)

But I do have an open source RPG project going, and some heavy duty RPG web serving coming up. Google Code is hosting it: http://code.google.com/p/rdwrites/

I don't have any pointer code in the first program posted but I'll be adding a file utility program for our iseries Unix style file system where pointer based data structures are used to access file attributes, etc., all the typical Unix C stuff, but preferable to do it all in RPG on the iseries in my opinion, although we do bind in the C library to do standard C error calls.

But first program released is a 5250 file maintenance program, with the other stuff mentioned coming.

The ascii files zip is notepad readable and shows what current RPG code looks like. My goal is to open source very high performance example RPG code compared to standard bloated or scripted web fare. But nothing to demo on that yet.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Jul 24, 2009 1:36 pm    Post subject: Reply with quote

from systeminetwork:

ralphdaugherty wrote:
I'm going to gently poke my nose in to mention what I do for my site. I have my registrations set to admin approve instead of email confirm. I google the email address used to register and most of the time it shows up in spam postings. I just delete the registration (and ban the address, using * wildcard for those jokers registering as spamforyou1@, spamforyou2@, etc.)

They never get their post in and my viewers aren't exposed to their malliciousness.

I don't have much volume to deal with because I have these riff raff (or more correctly, their riff raff bots) blocked out after all these years, but something a volunteer could do if I had to delegate.

rd



satid wrote:
May I ask what your web site is about and its URL? Is it about iSeries?



kitvb1 wrote:
I do the same... but find that the spammers just use any domain. But 95% come from gmail.com and mail.ru, these I routinely delete. I have suggested a change to vBulletin along these lines, i.e. that the registration is not accepted if the email domain is listed in a table.

Regards
Kit



Hi Satid,

My longtime site is http://www.justiceforchandra.com/

I also have an iseries oriented domain http://www.rdwrites.com/

They currently share the same IP (a hosted Linux server). I will be changing the DNS for rdwrites.com to my iseries IP address soon ( http://173.8.38.42:2700/iseries/rdwelcome ). But for now I'm going to continue to share the forum for both domains unless and until discussion traffic merits a separate forum.

My site is heavily blocked outside US due to previous ratio of attackers/spammers to traffic from outside US. However that is changing now that I am posting iseries related content. I already opened up gmail.com as a registration email domain since creating a Google Code RPG open source project http://code.google.com/p/rdwrites/

My previous experience was same as kit, a huge amount of spam comes from gmail account addresses and *@*.ru. kit, phpBB supports wild card blocking of email address domains (along with IP wild card address blocking). I'm surprised vBulletin doesn't.

Anyway, if anyone tries and gets a banned message, just email me at ralph@ee.net (or PM me through the forum) and give me first couple of octets (appears to be the verbiage for that, like 173.8.*.* would be for mine) for your IP address range and I'll open it up.

It turns out that the WEBVISITOR / WEBBLOCKER 5250 app I open sourced on the rdwrites Google Code project was just for that purpose, adminning and analyzing traffic and blocked addresses for my site. I haven't automated an update from the iseries app to the Linux MySQL forums database yet but on down my list after I develop a CGIDEV2 web app for the open source project.

(Pre-answering typical comments from others: Yes, I know PHP is available for the iseries. I am running a 270 5.3 box which I will not be PTF'ing and I have an 825 with current 5.4 which I haven't set up yet. I will be adding PHP to that.

Yes, I know that I can write a web app to do 5250 work but 1) 5250 is the right tool for the job, 2) I wanted to open source a robust 5250 subfile ILE /free program, and 3) the web app I develop will be for the web, not as a dufus replacement for a real screen.

And yes, I know I don't like browsers and SQL to do business processing.)

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Jul 31, 2009 12:27 am    Post subject: Reply with quote

from systeminetwork.com

how to implement OO inheritance in RPG?

Here's the way I would implement inheritance (and btw, I believe that we can implement equivalents to OO, in my opinion potentially much faster implementation at cost of less dynamic flexibility, i.e. RPG dynamic bound versus OO dispatch stack).

The equivalent infrastructure: service program as class and subprocedure functions as methods. Bnddir with same name for each class service program. Adding each bnddir to a program would be equivalent to importing a class.

Two major differences in normal implementation. The source code for the service program is copied in from a RPGLE source member (must be different name than service program if in same source file).

Prototypes are included and enclosed in their own IF DEFINE. The remaining D specs for this service program are in another IF DEFINE. How the subprocedures are IF DEFINED for /copy is the other major difference in this implementation to enable inheritance. Each subprocedure method is enclosed in its own IF DEFINE.

Base service program would list a DEFINE for the prototypes and /copy, the D specs and /copy, then list a DEFINE for each subprocedure and /copy the source member again (with prototypes and D specs undefined now.) Bnddir would be populated with each DEFINED subprocedure.

To extend the service program and create a child class, another RPGLE source member is created which is created by copying the source from the service program and placing in the source member (which at this point consists of a series of DEFINES and three /copy statements of the first RPGLE source member). Then the work of extending, that is replacing or adding subprocedure methods and D specs as needed. In 6.1 with namespace support we'd be able to implement super() but until then would need to isolate the subprocedure code to another source member and /copy from each service program subprocedure down the heirarchy where super() is desired.

Bnddir for this service program child class is then populated with the enabled and added subprocedures. Each enabled and added subprocedures would then be wrappered in another layer of IF DEFINES for subsequent extension and inheritance unless a virtual final was desired. Lack of a layer of IF DEFINES would constitute a final.

This could be extended indefinitely with any given RPG source in only one place in the class service program heirarchy. I can see this as occasionally useful and in emulating OO software.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Thu Aug 06, 2009 9:34 pm    Post subject: Reply with quote

from systeminetwork:

ugeerts wrote:
"I can understand the comment about the OS not having a graphical UI, but I don't see any problem with a language not being OO."

My comment mainly addresses the perception iseries has with the outsider public. The two general accepted standards to measure whether a platform is considered "legacy" or "modern" is the availability of a native GUI and the native development language (in this case RPG and COBOL) having OO capability. Most developers agree that if these capabilites are seen missing, the platform is considered by management and wouldbe IT decision makers as "legacy".


What would be the effect if IBM came up with a native GUI and OO solution today?

Probably little - it would all depend on how much ISV's would be tempted to restart developing for OS400 again.
Most other platforms (leaving mainframe out for a moment) made the transition to Graphic UI and OO more than 10 years ago. Unix and Linux systems provide graphic capabilities tru what they call Xserver. Oracle and SAP carry embedded java since 2000 and Microsoft has and abundance of OO languages in Visual Studio. Java has graphic functions tru their swing class, and we all know java is the basis on which the eclipse framework is build.
My conclusion and probably also Ibm's, is they've missed the train in this fundamental step in IT evolution, and that today it is TOO LATE to jump on the bandwagon. So we'll see in the next OS400 releases some nice goodies like PDF or Excel output, additional parameters in os400 commands, maybe some joblog improvements -see earlier posts- but nothing that will fundamently change the perception to the outside (buyer) public of os400 being hopelessly legacy.


Do we need native GUI and native OO capability on the iseries?

That is imho a 'chicken and egg' question. I would say, my goodness, we don't need that stuff at all!
The result: iseries workloads continue to gradually narrow down to classic procedural batch processing in traditional areas like accounting, manufacturing (in China?), sales etc. We can forget about our 5250 screen programs, these will die out or at best be converted to batch applets and integrated in a backoffice app. So given this view, the "no we don't need gui or oo at all" is like a self fulfilling prophecy.
We all know iseries can do much better, it can act like a webserver, run php, run java, but frankly, I've NEVER seen such a decision taken in favor of iseries. In 99% of cases i've witnessed, when IT management decides on a new modern application, the job is invariabely put in the hands of the Windows or Unix guy who in turn mostly buys of the shelf solutions, while the as400 quitely continues in its corner to compute debet and credit amounts and spit out 132 column reports or PDF's. The remaining 1% of cases are probably those shops where brave people like Scott Klement work.

Again, perception is key in the survival of this platform, and I have the impression Ibm finds themselves in a catch 22 deadlock situation.
I really don't see what they can do today to reverse the downward spiral this system is in for years now, but frankly, they all own it to themselves.

ugeerts



ugeerts post raises many important points that need addressed.

The two general accepted standards to measure whether a platform is considered "legacy" or "modern" is the availability of a native GUI and the native development language (in this case RPG and COBOL) having OO capability.

What is the native development language of Linux and Unix? To get around this legacy definition, the answer given would be C++, but Linux and most apps are written in C, just as procedural as RPG. And our PASE Unix subset of i5/OS ~ OS/400 is exactly that C Unix environment.

In addition C++, the OO language, is just as much an ILE language as RPG, COBOL, CL, and C. To call RPG native and C++ not native due to predominance of use of RPG is just to make the argument work. But it doesn't. It's wrong.

Java and PHP are also fully integrated, as is everthing on the iseries, in multiple directions. I can call Java class methods directly from RPG and I can call RPG directly from Java. I can call anything running in the Unix subset directly. And I can do it with the most advanced operating system in the world, the object based i5/OS.

Unix and Linux systems provide graphic capabilities thru what they call Xserver.

iseries has XWindows as well. Why don't we use it? Well we would if were using iseries as a workstation, but almost none us do. But to say Linux and Unix is GUI because they have XWindows and iseries doesn't is again wrong.

It is fitting to be wrong in attempting to differentiate Unix and the similar Linux from iseries because 1) Unix dates to 1970 when System/38 was a gleam in Dr. Soltis' eye, and 2) it's a subset of i5/OS.

What would be the effect if IBM came up with a native GUI and OO solution today?

They did, it's called HTTP Powered by Apache, Java, EGL, and Websphere. The effect is that the gamut of solutions is available to the iseries businesses, from enterprise Java to high speed RPG CGIDEV2 web serving to the highly efficient 5250 terminal interfaces.

We can forget about our 5250 screen programs.

Nothing beats them for getting real work done. They're still being pumped out by growing and thriving businesses who grew and thrived on iseries 5250 screens.

We all know iseries can do much better, it can act like a webserver, run php, run java, but frankly, I've NEVER seen such a decision taken in favor of iseries.

You don't get out much. It not only acts as a webserver, it is a webserver. Businesses are making and acting on those decisions you've never seen every day.

The architecture of the iseries and every server solution integrated as one into the operating system of the future provides a more robust, cost effective platform than competitors.

Businesses can make most anything work, but businesses running on the iseries do it much more cost effectively.

IBM clearly doesn't care what operating system you run on their POWER hardware. They're not going to sell the iseries. But they've stopped at nothing in making it the best technology platform for business, so there's nothing stopping anyone else from selling it.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Aug 14, 2009 7:58 am    Post subject: Reply with quote

I checked the initial rdwrites source into the Google Code subversion source code repository last night. My commit comment was:

http://code.google.com/p/rdwrites/source/browse/#svn/trunk/RDWT090810

WEBVISITOR 20090810 demo 5250 subfile program in ILE RPG /free. Service program WEBVISITSV.RPGLE now has hard coded signature in binder module WEBVISITBN.BND.


Although I'm not expecting very many people to be checking out the source into a source code repository client, I am looking forward to this making the source searchable in Google Code search.

Another pleasant benefit is that the source code files can be clicked on in Browse (then click on directory svn/trunk and the latest directory or directory of interest, in this case RDWT090810), and the source code displays on the web page where it can be viewed and portions or all of it copy and pasted elsewhere if desired.

When search is done on source code that's the result of the search, an open source member displayed on the page. A very non-committal way to look at the demo RPG /free source code, so to speak.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Mon Aug 17, 2009 12:27 pm    Post subject: Reply with quote

A great writeup on the history and capabilities of RPG from Brian Kelly on The Four Hundred:

http://www.itjungle.com/tfh/tfh081709-story01.html

Near the end:

The three biggest notable items added to the RPG IV language since its inception are: built-in functions, procedures, and free form operations. If IBM were to introduce this language to the worldwide programming community at large by making it available on more platforms, it would clearly be a programming language "game-over" statement.

I include those notable features in the rdwrites RPG open source software project, the first release WEBVISITOR 5250 subfile program I've posted here:

http://www.justiceforchandra.com/forums/viewtopic.php?t=4157

and of course as well on the rdwrites Google Code project.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Fri Sep 18, 2009 1:00 pm    Post subject: Reply with quote

I released my first small CGIDEV2 demo, HELLOPARMS. I discuss it at http://www.rdwrites.com/forums/viewtopic.php?t=4169

The Google Code project for it is http://code.google.com/p/rdwrites/ which is the home page of my rdwrites open source RPG project.

From there you click on Downloads tab, and the name of the download is:

helloparms.zip

with the description "rdwrites HELLOPARMS CGIDEV2 parm info demo ascii source files zip".

When you unzip it there are two files, HELLOPARMS.RPGLE and CGIDEV2PR.RPGLE

They may be browsed in the project by clicking on Source tab, Browse, and click on the filename you want to see.

I'd like to say it's a big complicated program but they've isolated all the complexity to the service program, so it is a very small, simple program. :) But these are all the fundamental calls to put together HTML templates, fill in the data, and display the web page to the browser that I needed.

It can be demoed on my 270 at home with http://173.8.38.42:2700/iseries/helloparms?mode=visitors&count=32000

The program looks for parms mode and count. They can be given any values or one or both dropped off the URL as parms and resubmitted from the Go bar.

Onward to a web app.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Tue Jul 06, 2010 11:29 pm    Post subject: Reply with quote

in helping solve a problem...

hi kjartan, perhaps it's a language issue, your English is a lot better than any of my attempts at your native language would be, that's for sure, but you missed a point.

I don't know what causes your DDS listing to include the comments at the bottom that include:
A*%%IN ClrSubfile 90

but ClrSubfile in your D specs is defined as a separate standalone boolean field:
D ClrSubfile S N

Although the DDS comment implies that ClrSubfile and *IN90 are linked, I do not see where they are linked.

What is linked to *IN90 is:
Dinds ds
Di90NoData n overlay(inds:90)

Then the line:
i90NoData = *off;
would actually set *IN90 off and be seen by the screen due to your indds(inds) keyword on the VMA200S F spec.

Your PAGEDOWN variable has the same situation.

So your conclusion about *IN90 is incorrect, you were never setting it one way or the other. I assure you in that getting it to work with *IN50 you actually used *IN50, not trying to continue to incorrectly attempt to overlay *IN50 with ClrSubfile as you did with *IN90. Take your former code and change references to ClrSubfile to i90NoData and it should work if that is all that was wrong with it.

Also it should be pointed out that changing any references in your former code from ClrSubfile to *IN90 would works as well. In fact, there is no reason to try to access *IN90 with a mapped name but *IN91 and *IN92 directly. You should access all directly or all mapped through your inds data structure, the preference being all mapped for readability by using similar names for their functionality as ClrSubfile. ClrSubfile, for example, is a much better name that i90NoData for indicating the function of *IN90.

For a more advanced page by page subfile example, you can download my open source subfile program from Google Code:
http://code.google.com/p/rdwrites/downloads/list

This is a zip file of the source code to look at on a PC:
rdwrites 090715 WEBVISITOR 5250 subfile maintenance ascii source files zip

and the others are SAVF of source physical file or library with compiled objects and source.

Congratulations on your first subfile, kjartan.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
rd



Joined: 13 Sep 2002
Posts: 9243
Location: Jacksonville, FL

PostPosted: Wed Jul 07, 2010 3:34 pm    Post subject: Reply with quote

Barbara Morris wrote:
Ralph, maybe I am misunderstanding, but I think you are saying that using the *INxx indicators would work in this program even though it has an INDDS. That's not true. If you use INDDS for a file, you have to use the indicators in the INDDS DS; the *IN indicators in the RPG program are meaningless for that file.

Thanks, Barbara, I didn't realize that but then I hadn't tried it either. Then none of his statements turning ClrSubfile, *IN91, and *IN92 on and off affected the display. wow.

I don't know how he got it working with *IN50, then. He would have had to remove the indds(inds) keyword from the program. I think he did say he stripped it and started over, so apparently he did.

rd
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    www.justiceforchandra.com Forum Index -> www.rdwrites.com forum (part of www.justiceforchandra.com) All times are GMT - 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group