Hello everybody: sorry for this rather long posting. Indeed, I hope it will interest you enough to justify the length. The "xclasses" package is now available for anybody. It is still beta level. If you'd like to see more functionality, please let me know. For any comment, suggestion, etc. feel free to contact me. ------------------------------------------------------------ This is the manifest for a package called "Extended Programmer Toolkit for NetRexx Script Applications". To make the thing shorter, I've decided to identify the package also with the name "NetRexx Xclasses". The "NetRexx Xclasses" are available at: http://wwwinfo.cern.ch/news/netrexx/xclasses -- the main idea When writing script applications, some of the tasks are really always the same. Among those tasks, you might find: - parsing command line options; - executing system commands; - reading (and interpreting) configuration files; - handle socket connections, FTP & HTMLs; - handle error conditions and tracebacks; - etc. Just looking at my Classical REXX code, I find that 99% of the programs always contain a "kernel-set" of procedures. Not only, but some programs get themselves called by all the others. In my NetRexx Tutorial I've put some of this functionality in some of the examples. The idea is to package all this in a better way, and offer a Toolkit for NetRexx Script Applications. -- features o - extended classes to support - basic option & configuration parsing - interface with the system - socket operations - HTML operations - file & directory operations - date & time operations - etc. o - public domain code o - all classes available in a single JAR file o - source code available -- examples To give you the real "feeling" of what I'm talking about, here are some examples of code fragments (which are also fully functional programs by themselves): -- 1.00 -- execute a command cmd = xexec('jar -cvf test.jar *.class') if cmd.rc <> 0 then xsys.die(300,'error from jar command.') -- 2.00 -- print 31 Dec 1998 from European format to Julian say xsys.xdate('E','31/12/98','J') -- print next Monday in Julian format say xsys.xdate('NEXT','MONDAY','J') -- 3.00 -- a simple FINGER client parse arg user'@'node cs = xsock(node,'FINGER') cs.send(user) cs.receive() cs.close() exit -- 4.00 -- read record 123 of a recfm=F lrecl=80 file fid = xfile('test.test') fid.options('recfm=F,lrecl=80') say fid.recread(123) -- 5.00 -- a simple FTP session say 'This is just a small test connecting to "asisftp.cern.ch".' ftpc = xftp('asisftp.cern.ch') ftpc.cmd('user anonymous [hidden email]') ftpc.cmd('ascii') ftpc.cmd('replace Y') ftpc.cmd('get wylbur.help') exit -- 6.00 -- will fetch ALL the html files contained in the -- Tutorial HTML URL base = 'http://wwwinfo.cern.ch/news/netrexx/html/' -- this is where the tutorial is page = xurl(base'nr_toc.html') -- and this is where the TOC is page.options('notrace info noreplace') page.fetchall('html') Look at the "demo" subdirectory for many other examples. ------------------------------------------------------------ ---------------------------------------------------------------- Pierantonio Marchesini C.E.R.N. ETH Zurich CH-1211 GENEVE 23 email: [hidden email] Phone: +41.22.767.50.23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> |
>> Anyone know what happend to Pireantonio? I've found a real sleeper of a >> bug in one of the classes in his XCLASSES package. > >Probably he's on holidays.. I have sent him a message and didn't >get any answer.. With some luck he's on a beach (or perhaps >climbing a mountain) right now. :-) > Actually, he's alive and well... still working... <G> IT's just that his account isn't receiving and mail. Everything I send him, get's bounced back... So... The bug in the XCLASSES that I found is: In XSOCK, method receive(), while in NNTP mode, will sometimes terminate the reception of a message before the actual end of text is received. In "NNTP SPEAK", the end of message is a single period ".". In the mentioned method, a compare is made using a single "=" or a non-strict compare, to see if the last line from the NNTP server is the EOT signal. This should be a double "==" or strict compare. Since most usenet posters have no idea how messages are flowed from server to server to client, they will sometimes use a series of spaces and a period to space out their text. It's looks great, but with XSOCK as it is, it will toss an exception sooner or later... --- /-------------------------------------\ | Jerry McBride | | | | ([hidden email] | \-------------------------------------/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> |
>> Anyone know what happend to Pireantonio? I've found a real sleeper of a >> bug in one of the classes in his XCLASSES package. > >Probably he's on holidays.. I have sent him a message and didn't >get any answer.. With some luck he's on a beach (or perhaps >climbing a mountain) right now. :-) > Actually, he's alive and well... still working... <G> IT's just that his account isn't receiving and mail. Everything I send him, get's bounced back... So... The bug in the XCLASSES that I found is: In XSOCK, method receive(), while in NNTP mode, will sometimes terminate the reception of a message before the actual end of text is received. In "NNTP SPEAK", the end of message is a single period ".". In the mentioned method, a compare is made using a single "=" or a non-strict compare, to see if the last line from the NNTP server is the EOT signal. This should be a double "==" or strict compare. Since most usenet posters have no idea how messages are flowed from server to server to client, they will sometimes use a series of spaces and a period to space out their text. It's looks great, but with XSOCK as it is, it will toss an exception sooner or later... --- /-------------------------------------\ | Jerry McBride | | | | ([hidden email] | \-------------------------------------/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To unsubscribe from this mailing list ( ibm-netrexx ), please send a note to [hidden email] with the following message in the body of the note unsubscribe ibm-netrexx <e-mail address> |
Free forum by Nabble | Edit this page |