Re: [U2] Can Universe Play with Access?
Hi George, There is a project on sourceforge (http://sourceforge.net/projects/mdbtools) that allows you to extract tables on your unix box. However although you won't need Access, you'll still have to write something to slurp in a text file afterwards. HTH Andre Date: Mon, 26 Sep 2005 12:43:27 -0400 From: George Gallen [EMAIL PROTECTED] Subject: [U2] Can Universe Play with Access? OK. Here's a question. If I copy an access .mdb database over to our system (unix), Is there a way to issue a SQL statement from TCL that will query the access database? OR How difficult would it be to read the data from the access .mdb file, and populate a UV file for TCL queries? Assume that the UV file would be wiped prior to reading the .mdb and the .mdb is a snapshot of current access database, and not actively being used. We are looking at an application that creates standard access .mdb files but we will need to import that database into our system. George Important Notice: This email is subject to important restrictions, qualifications and disclaimers (the Disclaimer) that must be accessed and read at the following address or by copying and pasting the following address into your Internet browser's address bar: http://www.frstia.co.za/Disclaimer.asp The Disclaimer is deemed to form part of the content of this email in terms of Section 11 of the Electronic Communications and Transactions Act, 25 of 2002. If you cannot access the Disclaimer, please obtain a copy thereof from us by sending an email to mailto:[EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2][UV] Universe and .NET
Hello all, I need some advice on Universe and .NET. We would like to begin using .NET as our front-end with Universe as our back-end. We have started to explore UO.NET, but it does not seem to provide us with the performance we will require. Our processes are currently written in PICK BASIC and we are processing transactions in sub-50 milliseconds. Does anyone have a suggestion for a .NET solution that might provide us with similar performance? I've seen some talk on this list of some of the other solutions such as MV.NET, but I don't recall seeing any metrics provided with any of these discussions. Any feedback would be appreciated. Thanks. Nick Cipollina Pick Programmer ACS - Heritage Information Systems, Inc. 2810 North Parham Road, Suite 210 Richmond, VA 23294 (804)644-8707 x 314 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] printing images through unidata
You do have to disallow modification of the print string by the database or spooler. I use 'SETPTR ':lpu:',1024,80,,,1,NFMT,dest printer,BRIEF', where lpu is the logical print unit. The no format seems to work. I've seen other suggestions on this list for accomplishing the same. I get errors (UniData 6.0.9 on Solaris 8) when I set the character per line 1024, though I should probably increase the lines per page. Karjala [EMAIL PROTECTED] 09/26/2005 5:02:58 PM Good question: I downloaded Tom's demo image and entered the 2 code examples. The import went fine (I think) and what I get when I do a test print is: p10h12v0s0b4099T 1y3X Text next to logo 1 Text next to logo 2 Text next to logo 3 Text next to logo 4 Text next to logo 5 Text next to logo 6 Text next to logo 7 Text next to logo 8 Text next to logo 9 Text next to logo 10 This is better than the first attempt which refused to print (I caught a typo). I'm not really a PCL 5 guy, I just happened to have the most experience using it in my group... -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of Karjala Koponen Sent: Monday, September 26, 2005 3:24 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] printing images through unidata I was able to use Tom Pellitieri's code successfully. I did have to reverse the output of rows to the printer, however, and I found it easier to use decipoints than PCL units. I also found that the pixel width of the imported image had to be a multiple of 32 (8 bits times 4 bytes). Are you having problems with the import of the image or printing it? Karjala [EMAIL PROTECTED] 09/26/2005 1:42:54 PM A while back someone wrote an article about how to convert a black and whit .BMP image to UD2 and print it on a laserjet using PCL 5 (Rastor graphics I believe). I'm trying to duplicate the guy's work and am not having any luck. Has anyone else been able to do this? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] UD, MD5 Hash algoritm
Hi, I would like to do some encryption of data in a Unidata file. I wonder if there is someone who has a MD5 hashing unibasic subroutine that I could use. Thanks in advande! Bjvrn Eklund --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Good Programming Practice Question.........
Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2][UV] Universe and .NET
The reason that our current processes are so fast is that we read as much common data as humanly possible into memory at start-up so there is little overhead while the process is running. If I have to call a subroutine from .NET, that would actually slow processing down. I need to get the data into .NET's memory to do something similar. What about some of the other .NET options, such as MV.NET? Any thoughts on those? Thanks, Nick Cipollina -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of gerry-u2ug Sent: Tuesday, September 27, 2005 9:23 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2][UV] Universe and .NET my guess is that if you are running into performance issues using uo.net then you are trying to do everything via uo.net. you should be using uo.net to invoke universe routines to do most if not ALL of your processing. this way the performance should be virtually identical to native ( as it is in fact native ) the only overhead is the actuall call itself. Gerry -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Nick Cipollina Sent: Tuesday, September 27, 2005 08:24 AM To: u2-users@listserver.u2ug.org Subject: [U2][UV] Universe and .NET Hello all, I need some advice on Universe and .NET. We would like to begin using .NET as our front-end with Universe as our back-end. We have started to explore UO.NET, but it does not seem to provide us with the performance we will require. Our processes are currently written in PICK BASIC and we are processing transactions in sub-50 milliseconds. Does anyone have a suggestion for a .NET solution that might provide us with similar performance? I've seen some talk on this list of some of the other solutions such as MV.NET, but I don't recall seeing any metrics provided with any of these discussions. Any feedback would be appreciated. Thanks. Nick Cipollina Pick Programmer ACS - Heritage Information Systems, Inc. 2810 North Parham Road, Suite 210 Richmond, VA 23294 (804)644-8707 x 314 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UD, MD5 Hash algoritm
At 14:39 +0200 2005/09/27, Bjvrn Eklund wrote: I would like to do some encryption of data in a Unidata file. I wonder if there is someone who has a MD5 hashing unibasic subroutine that I could use. There was some discussion on this in the past. I'll try to dig-up the URL to a package that somebody wrote. But, there is one major problem. It seems UniData on 64-bit platforms really doesn't do 32-bit math well. Fortunately, the past several releases of UniData have included OpenSSL in the $UDTHOME/bin directory. It's fairly easy to shell-out and call 'openssl' for hashing or encryption. The only real gotcha is that 'echo' in different shells behaves differently and it may take some trial and error to get the right combination of \c, -n, etc.. If you want this to be portable, or if users may have different shells, then be sure to use the 'echo' executable (usually /usr/bin/echo) and not the echo command that's built-in to the shell. Ray -- .=. | =-=-=-=-=-=-= Eagle Rock Information Systems Corp =-=-=-=-=-=-= | | -=-=-=-=-=-=- web and database business solutions -=-=-=-=-=-=- | | http://www.eriscorp.commailto:[EMAIL PROTECTED] | |Midwest Regional Office: 815-547-0662 (voice) 815-547-0353 (Fax)| .=. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] [OT] Tally line printer escape sequences
Simon, I believe you may be able to purchase an operator's manual or a programmer's manual from printersource.com in the US. Call John at 800-788-5101. I understand that the Tally 6xxx series emulates, among others, the Epson FX printer, so you should be able to write a driver using the Epson FX ESC sequences. What I don't know is the ESC sequence to put the Tally into the FX emulation. Perhaps you can do that from the control console on the front of the printer. We have a customer whose software we are migrating to UV/NT but he hasn't decided yet if he wants to use his Tally 6045 printer with UV, so we haven't tried writing the driver yet. Please let me know how you eventually resolve this. hth, Dave Dave Taylor President Sysmark Information Systems, Inc. 49 Aspen Way Rolling Hills Estates, CA 90274 800-SYSMARK (800-797-6275) (O) 310-544-1974 (P) 800-339-1497 (F) 310-377-3550 Your Source for Integrated EDI Translation and DataSync Integration www.sysmarkinfo.com - Original Message - From: Simon Lewington [EMAIL PROTECTED] Newsgroups: local.informixmv To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 2:39 AM Subject: [U2] [OT] Tally line printer escape sequences Does anyone know where I could find a reference for escape sequences used by old Tally Line Printers - specifically a T6090, although having loaded a driver from http://www.tallygenicom.com/support/manuals/legacyline.htm it looks like they're all similar. Thanks Simon --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I've been teaching UniBasic for over 10 years and here are some of the methods I teach: * Subroutines should only have one job. * Subroutines should be short. (less than 10 lines) * Subroutines should have one entrance and one exit. * Use meaningful variable names and subroutine names. * Be consistent in your naming conventions. * Don't hard code Numbers, Strings, or Attributes. * Use CASE over IF...THEN when there are more than two options. * Use LOOP...WHILE/UNTIL...REPEAT over FOR...NEXT with IF Conditions. * Use REMOVE to traverse a dynamic array. * Use a Simple Variable on Conditional Statements. * Use UniData Internal Variables whenever possible; i.e. @AM, @VM, @DATE. Thank you, David A. Green DAG Consulting (480) 813-1725 www.dagconsulting.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fawaz Ashraff Sent: Tuesday, September 27, 2005 8:23 AM To: u2-users@listserver.u2ug.org Subject: [U2] Good Programming Practice Question. Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2][UV] Universe and .NET
Load the patch, all will be well. I would however suggest using a subroutine for those chores that can be done quicker on the server. I don't think that uv.net is really meant as a replacement for UniBasic on the backend. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: I've been teaching UniBasic for over 10 years and here are some of the methods I teach: * Subroutines should only have one job. * Subroutines should be short. (less than 10 lines) * Subroutines should have one entrance and one exit. * Use meaningful variable names and subroutine names. * Be consistent in your naming conventions. * Don't hard code Numbers, Strings, or Attributes. * Use CASE over IF...THEN when there are more than two options. * Use LOOP...WHILE/UNTIL...REPEAT over FOR...NEXT with IF Conditions. * Use REMOVE to traverse a dynamic array. * Use a Simple Variable on Conditional Statements. * Use UniData Internal Variables whenever possible; i.e. @AM, @VM, @DATE. Thank you, David A. Green DAG Consulting (480) 813-1725 www.dagconsulting.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fawaz Ashraff Sent: Tuesday, September 27, 2005 8:23 AM To: u2-users@listserver.u2ug.org Subject: [U2] Good Programming Practice Question. Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Lower case in Unidata basic
u2-users, I have looked for archives at u2ug.org but not found them .. (must be blind) I have downloaded pdfs from IBM but i keep getting Universe .. so I will just ask and take the deserved harassment G is there a udt.option that allows you to use lower case in unidata programs? thanks .. and if anyone has a pointer to the unidata pdfs i would like it .. -- DSig David Tod Sigafoos 'Politics is like driving. To go backward, put it in R. To go forward, put it in D' unknown --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Lower case in Unidata basic
Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Tod Sigafoos Sent: Tuesday, September 27, 2005 12:19 PM To: u2-users@listserver.u2ug.org Subject: [U2] Lower case in Unidata basic u2-users, I have looked for archives at u2ug.org but not found them .. (must be blind) I have downloaded pdfs from IBM but i keep getting Universe .. so I will just ask and take the deserved harassment G is there a udt.option that allows you to use lower case in unidata programs? thanks .. and if anyone has a pointer to the unidata pdfs i would like it .. http://www-306.ibm.com/software/data/u2/pubs/library/60unidata/index.html --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Yes good one. The more readable your code the easier to DEBUG and to reuse. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 11:57 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: I've been teaching UniBasic for over 10 years and here are some of the methods I teach: * Subroutines should only have one job. * Subroutines should be short. (less than 10 lines) * Subroutines should have one entrance and one exit. * Use meaningful variable names and subroutine names. * Be consistent in your naming conventions. * Don't hard code Numbers, Strings, or Attributes. * Use CASE over IF...THEN when there are more than two options. * Use LOOP...WHILE/UNTIL...REPEAT over FOR...NEXT with IF Conditions. * Use REMOVE to traverse a dynamic array. * Use a Simple Variable on Conditional Statements. * Use UniData Internal Variables whenever possible; i.e. @AM, @VM, @DATE. Thank you, David A. Green DAG Consulting (480) 813-1725 www.dagconsulting.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fawaz Ashraff Sent: Tuesday, September 27, 2005 8:23 AM To: u2-users@listserver.u2ug.org Subject: [U2] Good Programming Practice Question. Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Lower case in Unidata basic
PDF Library = http://ibm.com/software/data/u2/pubs/library --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
On 9/27/05, Dianne Ackerman [EMAIL PROTECTED] wrote: I like these and would add another one - Add comments to tricky-looking code! -Dianne And DON'T add comments to the mundane routine stuff!! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Lower case in Unidata basic
Unidata PDFs: http://www-1.ibm.com/support/search.wss?tc=SSCRXTrs=628rank=8dc=DA410+DA4 50+DA420+DA430+DA440dtm or if you prefer http://tinyurl.com/7mqr4 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of David Tod Sigafoos Sent: Tuesday, September 27, 2005 1:19 PM To: u2-users@listserver.u2ug.org Subject: [U2] Lower case in Unidata basic u2-users, I have looked for archives at u2ug.org but not found them .. (must be blind) I have downloaded pdfs from IBM but i keep getting Universe .. so I will just ask and take the deserved harassment G is there a udt.option that allows you to use lower case in unidata programs? thanks .. and if anyone has a pointer to the unidata pdfs i would like it .. -- DSig David Tod Sigafoos 'Politics is like driving. To go backward, put it in R. To go forward, put it in D' unknown --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I think we have a good start and thanks for all the input. Can you guys also include technical information as well. I am sure you would have encounted some way of programming gives faster results than the others. Let's say as an example, if you are opening a program all the time, just to make it a COMMON variable.. --- Allen E. Elwood [EMAIL PROTECTED] wrote: My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
In addition to using subroutines, when developing with UniVerse and SB+ I often have one application handle many, if not all of the screen and report processing. This helps keep things in one place. For this I use the ON GOSUB construct of the BASIC language. It's worth noting depending on its application or relevance. I've been teaching UniBasic for over 10 years and here are some of the methods I teach: * Subroutines should only have one job. * Subroutines should be short. (less than 10 lines) * Subroutines should have one entrance and one exit. * Use meaningful variable names and subroutine names. * Be consistent in your naming conventions. * Don't hard code Numbers, Strings, or Attributes. * Use CASE over IF...THEN when there are more than two options. * Use LOOP...WHILE/UNTIL...REPEAT over FOR...NEXT with IF Conditions. * Use REMOVE to traverse a dynamic array. * Use a Simple Variable on Conditional Statements. * Use UniData Internal Variables whenever possible; i.e. @AM, @VM, @DATE. Thank you, David A. Green DAG Consulting (480) 813-1725 www.dagconsulting.com -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fawaz Ashraff Sent: Tuesday, September 27, 2005 8:23 AM To: u2-users@listserver.u2ug.org Subject: [U2] Good Programming Practice Question. Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
AhI always put my subroutines in the same order as they are in the main calling section. And using Accuterm, if you highlight the SELECT.FILE portion of the GOSUB SELECT.FILE, then hit CTRL-F it puts SELECT.FILE in there for you and Bingo, you're there. I get tired of the redundancy of using GOSUB 100 ; * Display Page instead of GOSUB DISPLAY.PAGE And and andI've seen PLENTY of programs where 2200 was below 4000 - sad - but true!! -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Kevin King Sent: Tuesday, September 27, 2005 13:04 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
Try not to use dim arrays to hold file variables. difficult to diag. Keep label and variable names to 14 chars and under for universe's xrefer Avoid ever 'falling' into a label Never branch around stuff Sometimes its nice to comment CASE statements CASE LEN(ID) LE 5 ;* its a phone number .. On 9/27/05, Fawaz Ashraff [EMAIL PROTECTED] wrote: Hi All, We are planning to train some of our new programmers to use good programming practices when using U2 Basic. I can remember in Unidata days us having some tech support documents that talked about this. Example such as when is the best time to use CASE instead IF ELSE or not to use GOTO statments. I am sure some of you may have some input in this topic. If you have some documents, notes or thoughts on this, can you please share with us? When I get all the technical tips, I can compile this to a document and share with our new programmers as well as U2 listserver community. Thanks Mohamed __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I agree with Kevin, specifically for the reasons he mentions, but I actually prefer using the alpha-numeric format like S3000.GET.CUSTNAME: where the S designates it's an internal subroutine, 3000 is the numeric position value that Kevin talks about, and GET.CUSTNAME so every place that I call the subroutine from, I know what I'm looking to do in that subroutine. I also put the colon : so when I want to actually go to that subroutine in the editor, I can. The numeric portion is in relation to the whole program, not just the S portion. This keeps me from accidentally doing a A3000 instead of an S3000. I do have to disagree with the statement of 10-line subroutines, though. Limit them to one function, okay, but limit the number of lines? Not even as a guideline in my list of standards. BobW -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
But I take the middle road with labels like: A001.mainline: code RETURN ;* from A001.mainline A010.open.and.init B100.select.file B200.pre-process.validity.checks C500.print.invoices C700.update.files Z900.error that I order by prefix. I get ordering, description, and grouping. I also use white space to separate paragraphs. Of course for many my use of mixed case is a matter of dispute. Karjala [EMAIL PROTECTED] 09/27/2005 4:03:38 PM And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [ mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [ mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [ mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
We usually wrap this in a LOOP REPEAT and case statements using an action code that changes for the completion of each routine. ACTION = 'INIT' LOOP UNTIL ACTION = 'ABORT' OR ACTION = 'EOJ' DO BEGIN CASE CASE ACTION = 'INIT' GOSUB OPEN.AND.INIT CASE ACTION = 'SELECT' GOSUB SELECT.FILE CASE ACTION = 'PROCESS' GOSUB PRE-PROCESS.VALIDITY.CHECKS CASE ACTION = 'PRINT' GOSUB PRINT.INVOICES CASE ACTION = 'UPDATE' GOSUB UPDATE.FILES REPEAT STOP - Original Message - From: Allen E. Elwood [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 2:40 PM Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Kevin, I disagree, for a simple reason: I use alpha labels that make sense and then place them in the code in alphabetical order. Problem solved grin. Just a few off the top of my head (it's late here): 1. If using UniVerse, use mixed case to encourage readability when scanning through a program with upper case reserved for constants, common, file and select variables so they stand out as different, as in: Fin = @False Loop ReadNext Id From SLIST Else Fin = @True Until Fin Do Read OrderRec From ORDERS, Id Then GoSub ProcessRecord End Repeat 2. A GoSub should perform a single action. Jumping into a second label inside a GoSub just sucks. Return To should be banned. 3. Have a single exit point from a program or subroutine. 4. Separate out the business logic from the screen processing (if any): that way if you want to reengineer the application or reuse the rules in another context it is so much easier. 5. Hold file variables in named common. 6. Name record variables after the file from which they originate. 7. Equate all field names (preferably automatically) in include files. I use the format FILENAME.FIELDNAME to disambiguate e.g. EQU CUSTOMER.SURNAME TO 1 So I can reference: CustomerRecCUSTOMER.SURNAME Above all, be consistent. There are many good practices out there, most of them are common sense but they only work if applied consistently. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: 27 September 2005 21:04 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
alphabetize the labels? You mean sort?? :-) -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
I personally would rather use alpha-numeric labels because of the many programs I have come across that tend to not have comments. You can always use a locate to find the subroutine especially if you use correct labeling with a colon at the end. END.OF.PROGRAM: - Original Message - From: Kevin King [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 3:03 PM Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I prefer alphanumeric labels for subroutines. The label should give some clue as to the function of the subroutine. The subroutines should be in frequency of use order with the most commonly used closer to the top of the program. Subroutines that are used once in a program (file opens, variable initialization, etc...) are located near the bottom. Gordon J. Glorfield Sr. Applications Developer MAMSI (A UnitedHealth Company) 301-360-8839 [EMAIL PROTECTED] wrote on 09/27/2005 04:35:12 PM: Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill [SNIP] This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
What about lock management? 1. Lock all records that are going to be updated ... even if the update is really a delete 2. Release your locks promptly (either with a RELEASE, WRITE or DELETE statement) - don't let the program termination be the time when record locks are released 3. Use the LOCKED clause so the application can decide what to do when a record is locked rather than the database P. Michael Logue U2 Technical Support Engineer U2 Products Service Planner IBM Certified Solutions Expert in U2 Application Development IBM Certified U2 UniData Administration IBM Information Management Division, Software Group Phone: 303-773-7846 Tie Line: 656-7846 Email: [EMAIL PROTECTED] www.ibm.com/software/data/u2/support Open, Query, Update, Search - Online! --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I most heartily agree! Numbers in the labels don't elucidate; they merely increase the length. And I'm pretty sure I know that U comes somewhere after S. :) My $0.02 (on issues ancillary to the code itself) ... - make your BP files Type19 (DIR), so you can edit them outside of U2 using whatever cotton-pickin' editor you like - use source code control; absolutely anything is better than nothing, and there are good free ones for all platforms - agree on an indentation scheme and stick to it as a group, else get/create a beautifier which enforces the chosen standards before code checkin -Keith Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
I'll toss in 2 cents on 'standards'. If maintaining an existing environment, should you add a new standard (yours) or should you adhere to the primary one already there. For example, I use OPEN CUST TO F.CUST ELSE STOP whereas one app has OPEN CUST TO CUST.FILE ELSE STOP I agree with many of the suggestions when having the luxury of designing an application from scratch. However, many times one inherits previous standards and sometimes they should prevail. Two observations: 1. MV programming is a box of crayons and if it compiles and 1+1 does equal 2, then it works. 2. The good thing about standards is that there are so many to choose from. P.S. Actually I use a sub CALL OPENER(CUST, F.CUST) but the point was the style of the file handle. - Original Message - From: Keith W. Roberts [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 5:14 PM Subject: RE: [U2] Good Programming Practice Question. I most heartily agree! Numbers in the labels don't elucidate; they merely increase the length. And I'm pretty sure I know that U comes somewhere after S. :) My $0.02 (on issues ancillary to the code itself) ... - make your BP files Type19 (DIR), so you can edit them outside of U2 using whatever cotton-pickin' editor you like - use source code control; absolutely anything is better than nothing, and there are good free ones for all platforms - agree on an indentation scheme and stick to it as a group, else get/create a beautifier which enforces the chosen standards before code checkin -Keith Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
Another good suggestion: Use: LAST=DCOUNT(ARRAY,CHAR(253)) FOR I=1 TO LAST blah NEXT I instead of FOR I=1 TO DCOUNT(ARRAY,CHAR(253)) I know that REMOVE is pretty promoted here but most times I use a FOR/NEXT loop because I don't want to maintain a separate mv variable for using any other associated attributes. My 1 cent. - Original Message - From: Keith W. Roberts [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 5:14 PM Subject: RE: [U2] Good Programming Practice Question. I most heartily agree! Numbers in the labels don't elucidate; they merely increase the length. And I'm pretty sure I know that U comes somewhere after S. :) My $0.02 (on issues ancillary to the code itself) ... - make your BP files Type19 (DIR), so you can edit them outside of U2 using whatever cotton-pickin' editor you like - use source code control; absolutely anything is better than nothing, and there are good free ones for all platforms - agree on an indentation scheme and stick to it as a group, else get/create a beautifier which enforces the chosen standards before code checkin -Keith Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
Another suggestion: Since the RETURN statement actually has 2 meanings, I add a comment at the end of the RETURN that concludes a called subroutine, especially if there are internal subroutines within it. RETURN ;* TO CALLING PROGRAM I'm glad we don't have POP and wince when I see RETURN TO. Mark Johnson P.S. I would also love to see an analyzer program that identifies whether OPENed files READ, WRITE, CLEAR and/or DELETE. It could be a comment at the end of the OPEN statement. Often times I FIND a BP file for CUSTOMER and WRITE but they're not necessarily attached. OPEN CUSTOMER TO F.CUSTOMER ELSE STOP ;* RWCD - Original Message - From: Keith W. Roberts [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 5:14 PM Subject: RE: [U2] Good Programming Practice Question. I most heartily agree! Numbers in the labels don't elucidate; they merely increase the length. And I'm pretty sure I know that U comes somewhere after S. :) My $0.02 (on issues ancillary to the code itself) ... - make your BP files Type19 (DIR), so you can edit them outside of U2 using whatever cotton-pickin' editor you like - use source code control; absolutely anything is better than nothing, and there are good free ones for all platforms - agree on an indentation scheme and stick to it as a group, else get/create a beautifier which enforces the chosen standards before code checkin -Keith Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Lower case in Unidata basic
David, just for the info .. BASIC FILE ITEM -I is how to compile a program containing lower case. Tuesday, September 27, 2005, 12:19:21 PM, you wrote: DTS u2-users, DTS I have looked for archives at u2ug.org but not found them .. (must be DTS blind) DTS I have downloaded pdfs from IBM but i keep getting Universe .. DTS so I will just ask and take the deserved harassment G DTS is there a udt.option that allows you to use lower case in unidata DTS programs? DTS thanks .. and if anyone has a pointer to the unidata pdfs i would like DTS it .. DTS -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ 'Politics is like driving. To go backward, put it in R. To go forward, put it in D' unknown --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Kevin: Yes. For example: GOSUB INIT.GLOBAL GOSUB INIT.LOCAL GOSUB OPEN.FILES GOSUB GET.CONFIG . LOOP READNEXT ID ELSE EXIT GOSUB READ.DATA GOSUB UPDATE.DATA GOSUB WRITE.DATA REPEAT GOTO END.OF.PROGRAM . *** GET.CONFIG: *** . RETURN * *** INIT.GLOBAL: *** . RETURN * *** INIT.LOCAL: *** . RETURN * *** OPEN.FILES: *** . RETURN * *** READ.DATA: *** . RETURN * *** UPDATE.DATA: *** . RETURN * *** WRITE.DATA: *** . RETURN * *** END.OF.PROGRAM: *** RETURN (If Subroutine) END Hope I didn't create confusion. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:51 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. alphabetize the labels? You mean sort?? :-) -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2][UV] Universe and .NET
Nick, We do something similar, have a look at COM+ object pooling (google/msdn). You can start up a configurable number of sessions (setting common) and call them from managed classes as required. When processing is quiescent for a set period of time, the sessions will close. We're using this method to provide connectivity between our ASPX and BizTalk services back to UV. We don't have any patches (that I know of on uodotnet) and throughput is adequate (At least bettering the previous homebaked UV to UV socket transfer service we were previously running for speed, manageability and reliability). We have a ping process which returns a time from an initial ASPX call, opening or activating a session and calling a UV subroutine to the final genration of the response message. The first time takes 3-5 seconds, after that around 300ms. Also, I believe a future release of U2 will have support for session pooling built in. Regards, Stuart -Original Message- From: Nick Cipollina The reason that our current processes are so fast is that we read as much common data as humanly possible into memory at start-up so there is little overhead while the process is running. If I have to call a subroutine from .NET, that would actually slow processing down. I need to get the data into .NET's memory to do something similar. ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this email in error please notify the Spotless IS Support Centre (+61 3 9269 7555) immediately, who will advise further action. This footnote also confirms that this email message has been scanned for the presence of computer related viruses. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I recommend that everyone buy/borrow a copy of Code Complete by Steve McConnell. It has several sections dedicated to good coding practices. Readability is key, since we read programs hundreds of times more than we write them. The book offers lots of strategies to improve readability, like different ways to reduce nested IF's, simplifying LOOP's and CASE statements, etc. and offers coding horrors to avoid. rex --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
Mark Johnson P.S. I would also love to see an analyzer program that identifies whether OPENed files READ, WRITE, CLEAR and/or DELETE. It could be a comment at the end of the OPEN statement. Often times I FIND a BP file for CUSTOMER and WRITE but they're not necessarily attached. I like having a single subroutine that performs all opens especially one for all writes (including DELETES). This gives you better control, including the ability to track all writes/opens if or when you need to, and to enforce any rules you wish to apply. Our greatest duty in this life is to help others. And please, if you can't help them, could you at least not hurt them? - H.H. the Dalai Lama When buying selling are controlled by legislation, the first thing to be bought sold are the legislators - P.J. O'Rourke Dan Fitzgerald --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Lower case in Unidata basic
And what is the short answer? Can you or can you not use lower case keywords in Unidata BASIC these days? Thx. -- Regards, Clif --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Herve Balestrieri/France/IBM est absent ce jour Mercredi 28/09/2005 et sera de retour le Jeudi 29/09/2005. In english : is out of office today Wednesday September 28th. I will be back on Thursd
I will be out of the office starting 28/09/2005 and will not return until 29/09/2005. Pour les clients accidant au Support Technique des produits IBM U2, veuillez renvoyer votre message sur : [EMAIL PROTECTED] Merci For non-french speaking customers : If your IBM U2 products Technical Support centre is France, please re-send messages to : [EMAIL PROTECTED] Otherwise, IBM U2 products Technical Support in UK/EMEA email is : [EMAIL PROTECTED] Support Technique IBM - Produits U2 IBM Data Management Solutions Tel.: N0 VERT International 00 800 2535 2535 (France et Belgique) +44 208 844 3076 (autres pays/other countries) Fax: +33 (0) 49 31 45 58 Web: http://www.ibm.com/software/u2/ IBM Centre de Support Technique IBM Produits U2 7630 - 04S03 Immeuble Marne La Vallie 1 1, Place Jean-Baptiste Climent 93881 Noisy-le-Grand Cedex France e-mail Support Technique IBM U2 : [EMAIL PROTECTED] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
Ugh! My personal preference. The only reason I use mixed case is for comments. With Universe differentiating between case (OrderRec is not orderrec or ORDERREC) you have to remember the way you mixed the case. Also, it makes it easier to recognize the comment lines in the code. When modifying code if you can't re-write the program always use the same standard used in the existing program otherwise it gets confusing to the next programmer that picks up the program. - Original Message - From: Brian Leach [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 3:48 PM Subject: RE: [U2] Good Programming Practice Question. Kevin, I disagree, for a simple reason: I use alpha labels that make sense and then place them in the code in alphabetical order. Problem solved grin. Just a few off the top of my head (it's late here): 1. If using UniVerse, use mixed case to encourage readability when scanning through a program with upper case reserved for constants, common, file and select variables so they stand out as different, as in: Fin = @False Loop ReadNext Id From SLIST Else Fin = @True Until Fin Do Read OrderRec From ORDERS, Id Then GoSub ProcessRecord End Repeat 2. A GoSub should perform a single action. Jumping into a second label inside a GoSub just sucks. Return To should be banned. 3. Have a single exit point from a program or subroutine. 4. Separate out the business logic from the screen processing (if any): that way if you want to reengineer the application or reuse the rules in another context it is so much easier. 5. Hold file variables in named common. 6. Name record variables after the file from which they originate. 7. Equate all field names (preferably automatically) in include files. I use the format FILENAME.FIELDNAME to disambiguate e.g. EQU CUSTOMER.SURNAME TO 1 So I can reference: CustomerRecCUSTOMER.SURNAME Above all, be consistent. There are many good practices out there, most of them are common sense but they only work if applied consistently. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: 27 September 2005 21:04 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please
Re[2]: [U2] Lower case in Unidata basic
Clifton, i posted in a different reply .. i found in the new docs (thanks to the links i was given) (at same time as my good buddy Dan Fitzgerald emailed me) BASIC file item -I of course this does you no good with FIB from the editor .. but hey part of a solution is good enough for me G No very sophisticated .. but 'green screen' 'pickies' wouldn't know what to do if they counldn't shout at their monitors all day G Tuesday, September 27, 2005, 3:02:30 PM, you wrote: CO And what is the short answer? Can you or can you not use lower case CO keywords in Unidata BASIC these days? CO Thx. -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ 'Politics is like driving. To go backward, put it in R. To go forward, put it in D' unknown --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Bob, 10 lines is a good rule to live by. There are some exceptions like the Initialization routine or large CASE structures that have many options. But the problem you run into if you don't restrict your lines is you end up doing more than one thing. Most of the Pick programming that I've run across has the subroutines going on and on and on. Making your subroutines short and precise is a good exercise in good programming practices. In Object Oriented Programming we are taught that more than 3 lines are too much. Here is an sample program: PROGRAM RUN.GUIDE * DAG Consulting -- WWW.DAGCONSULTING.COM * David A. Green -- 5/2/01 * * EQUATE TRUE TO 1, FALSE TO 0 EQUATE CLR TO @(-1) ! DEBUG.FLAG = TRUE ! GOSUB INIT GOSUB PRINT.SCREEN GOSUB OPEN.FILES ! IF NOT(ABORT.FLAG) THEN LOOP GOSUB SELECT.RECORDS IF TOT.CNT THEN LOOP READNEXT VOC.KEY ELSE DONE.FLAG = TRUE UNTIL DONE.FLAG DO GOSUB READ.REC IF OK.FLAG THEN GOSUB OPEN.FILE IF OK.FLAG THEN GOSUB LOCKFILE IF OK.FLAG THEN GOSUB PROCESS.REC IF OK.FLAG THEN FILEUNLOCK F.FILE REPEAT END GOSUB END.LOOP.LOGIC WHILE LATER DO REPEAT END ! GOSUB PRINT.TOTALS ! STOP ! END.LOOP.LOGIC: END.CNT += 1 IF END.CNT 10 THEN ;* Give up after 10 trys, write the remainder to a list. PRINT Max tries exceeded, remainder written to list RUN.GUIDE WRITELIST LATER ON RUN.GUIDE LATER = END ELSE IF LATER THEN SLEEP 10 FORMLIST LATER END END RETURN ! SELECT.RECORDS: IF SYSTEM(11) THEN TOT.CNT = SYSTEM(11) END ELSE CMD = SSELECT :FNAME: WITH F1 = 'F' PERFORM CMD CAPTURING BUFF TOT.CNT = @SYSTEM.RETURN.CODE END RETURN ! READ.REC: READ VOC.REC FROM F.VOC, VOC.KEY THEN OK.FLAG = TRUE END ELSE WAR.CNT += 1 OK.FLAG = FALSE PRINT Warning: File :DQUOTE(VOC.KEY): NOT found in VOC! END RETURN ! OPEN.FILE: OPEN VOC.KEY TO F.FILE ELSE ERR.CNT += 1 OK.FLAG = FALSE PRINT Can't open :DQUOTE(VOC.KEY):! END RETURN ! LOCKFILE: OK.FLAG = TRUE FILELOCK F.FILE LOCKED GOSUB LOCKED.FILE RETURN ! LOCKED.FILE: OK.FLAG = FALSE LATER-1 = VOC.KEY PRINT Will try :DQUOTE(VOC.KEY): later, file in use. RETURN ! CHECK.CRITERIA: SELECT.OK = TRUE * * Add Selection Criteria Here if Necessary * IF VOC.Dict.Name = THEN SELECT.OK = FALSE * RETURN ! PROCESS.REC: PRO.CNT += 1 PRINT VOC.KEY:... CMD = !guide :VOC.KEY GOSUB DO.CMD CMD = RENAME.CMD: GUIDE_ADVICE.LIS :VOC.KEY:_GUIDE_ADVICE.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_ERRORS.LIS :VOC.KEY:_GUIDE_ERRORS.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_STATS.LIS :VOC.KEY:_GUIDE_STATS.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_FIXUP.DAT :VOC.KEY:_GUIDE_FIXUP.DAT GOSUB DO.OS.CMD RETURN ! DO.CMD: PERFORM CMD CAPTURING BUFF RETURN ! DO.OS.CMD: PCPERFORM CMD CAPTURING BUFF RETURN ! INIT: VOC.REC = ABORT.FLAG = FALSE DONE.FLAG = FALSE FNAME = VOC TITLE = Running guide TOT.CNT= 0 PRO.CNT= 0 ERR.CNT= 0 WAR.CNT= 0 LATER = END.CNT= 0 * ** OS Specific Settings * OS.TYPE = SYSTEM(33) BEGIN CASE CASE OS.TYPE = UNIX ; RENAME.CMD = mv ; FILE.SEP = / CASE OS.TYPE = Windows NT ; RENAME.CMD = RENAME ; FILE.SEP = \ CASE 1 ; RENAME.CMD = mv ; FILE.SEP = / END CASE RETURN ! PRINT.SCREEN: PRINT CLR:TITLE RETURN ! OPEN.FILES: ONAME = VOC ; OPEN '', ONAME TO F.VOC ELSE GOSUB OPEN.ERROR RETURN ! OPEN.ERROR: PRINT Can't open :DQUOTE(ONAME) ABORT.FLAG = TRUE RETURN ! PRINT.TOTALS: COL.WIDTH = LEN(TOT.CNT); COL.FMT = COL.WIDTH:R PRINT PRINT Total Records : :TOT.CNT COL.FMT PRINT Total Processed : :PRO.CNT COL.FMT PRINT Total Errors: :ERR.CNT COL.FMT PRINT Total Warnings : :WAR.CNT COL.FMT RETURN ! END -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bob Woodward Sent: Tuesday, September 27, 2005 1:30 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. I agree with Kevin, specifically for the reasons he mentions, but I actually prefer using the alpha-numeric format like S3000.GET.CUSTNAME: where the S designates it's an internal subroutine, 3000 is the numeric position value that
Re[2]: [U2] Good Programming Practice Question.........
visit http://listserver.u2ug.org/ BL --- BL u2-users mailing list BL u2-users@listserver.u2ug.org BL To unsubscribe please visit http://listserver.u2ug.org/ BL __ NOD32 1.1234 (20050927) Information __ BL This message was checked by NOD32 antivirus system. BL http://www.eset.com -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ ...our behavior matters more than the beliefs that we profess. Elizabeth Deutsch Earle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brian Leach Sent: Tuesday, September 27, 2005 1:49 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin, I disagree, for a simple reason: I use alpha labels that make sense and then place them in the code in alphabetical order. Problem solved grin. Just a few off the top of my head (it's late here): 1. If using UniVerse, use mixed case to encourage readability when scanning through a program with upper case reserved for constants, common, file and select variables so they stand out as different, as in: Fin = @False Loop ReadNext Id From SLIST Else Fin = @True Until Fin Do Read OrderRec From ORDERS, Id Then GoSub ProcessRecord End Repeat This is style, rather than good coding practice. To each their own. 2. A GoSub should perform a single action. Jumping into a second label inside a GoSub just sucks. Return To should be banned. Nothing wrong with nested routines, but in that case RETURN TO is anathema. This is one of the few really bad design flaws of BASIC, that they chose not to use a separate keyword for returning from a GOSUB, or at least use a separate return stack. For example, if they'd paired: CALL ... RETURN and GOSUB ... RTN, and CALL pushed to Stack1 and GOSUB to Stack2, then implementing RETURN *anywhere* in the program would be as simple as CLEAR Stack2; POP Stack1, and doing a RETURN TO from a secondary or tertiary GOSUB wouldn't be a problem. [snip] Above all, be consistent. There are many good practices out there, most of them are common sense but they only work if applied consistently. Amen to that. -Keith --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re[2]: [U2] Good Programming Practice Question.........
Jerry, Tuesday, September 27, 2005, 3:09:02 PM, you wrote: JB Ugh! My personal preference. The only reason I use mixed case is for JB comments. With Universe differentiating between case (OrderRec is not JB orderrec or ORDERREC) you have to remember the way you mixed the case. you should be able to remember what vars you used .. it becomes habit .. just like THIS BECOMES A HABIT. JB Also, it makes it easier to recognize the comment lines in the JB code. a good editor with syntax highlighting makes recongizing comments even easier JB When modifying code if you can't re-write the program always use the same JB standard used in the existing program otherwise it gets confusing to the JB next programmer that picks up the program. true .. when you are making changes .. but new stuff can start a new trend. we used to use punch cards .. but I moved on .. and if I can move on then anybody can G -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2][UV] Universe and .NET
Nick, (This maybe double post...) We use .NET and UniObjects on HP-UX with Universe. The access time is close to zero. All of our processes use Call Subroutines. Opening files and doing things manually on .NET side will take forever. At times we have about 10 to 20 thousand students access our site for ordering books and we have had no problem yet. https://caesar.aztecshops.com/azshop/tbDefault.aspx We also have wireless devices use web services provided by .NET (using UniOjbects). That process is a little slow, but the problem is the web services and the fact that everything is running on wireless-B network. Web server is IIS 6 on W2K3 web edition. Universe is on HP-UX running Universe. Connectivity is GB network with firewall. I'm not aware of any patch release for UniOjbects. Hope this helped. -- Jahan K. Jamshidi MIS Director Aztec Shops LTD San Diego State University 619.594.7492 -- -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Tuesday, September 27, 2005 2:52 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2][UV] Universe and .NET Nick, We do something similar, have a look at COM+ object pooling (google/msdn). You can start up a configurable number of sessions (setting common) and call them from managed classes as required. When processing is quiescent for a set period of time, the sessions will close. We're using this method to provide connectivity between our ASPX and BizTalk services back to UV. We don't have any patches (that I know of on uodotnet) and throughput is adequate (At least bettering the previous homebaked UV to UV socket transfer service we were previously running for speed, manageability and reliability). We have a ping process which returns a time from an initial ASPX call, opening or activating a session and calling a UV subroutine to the final genration of the response message. The first time takes 3-5 seconds, after that around 300ms. Also, I believe a future release of U2 will have support for session pooling built in. Regards, Stuart -Original Message- From: Nick Cipollina The reason that our current processes are so fast is that we read as much common data as humanly possible into memory at start-up so there is little overhead while the process is running. If I have to call a subroutine from .NET, that would actually slow processing down. I need to get the data into .NET's memory to do something similar. ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this email in error please notify the Spotless IS Support Centre (+61 3 9269 7555) immediately, who will advise further action. This footnote also confirms that this email message has been scanned for the presence of computer related viruses. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
RETURN with a comment..that is an excellent suggestion. Nancy - Original Message - From: Mark Johnson [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 2:51 PM Subject: Re: [U2] Good Programming Practice Question. Another suggestion: Since the RETURN statement actually has 2 meanings, I add a comment at the end of the RETURN that concludes a called subroutine, especially if there are internal subroutines within it. RETURN ;* TO CALLING PROGRAM I'm glad we don't have POP and wince when I see RETURN TO. Mark Johnson P.S. I would also love to see an analyzer program that identifies whether OPENed files READ, WRITE, CLEAR and/or DELETE. It could be a comment at the end of the OPEN statement. Often times I FIND a BP file for CUSTOMER and WRITE but they're not necessarily attached. OPEN CUSTOMER TO F.CUSTOMER ELSE STOP ;* RWCD - Original Message - From: Keith W. Roberts [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 27, 2005 5:14 PM Subject: RE: [U2] Good Programming Practice Question. I most heartily agree! Numbers in the labels don't elucidate; they merely increase the length. And I'm pretty sure I know that U comes somewhere after S. :) My $0.02 (on issues ancillary to the code itself) ... - make your BP files Type19 (DIR), so you can edit them outside of U2 using whatever cotton-pickin' editor you like - use source code control; absolutely anything is better than nothing, and there are good free ones for all platforms - agree on an indentation scheme and stick to it as a group, else get/create a beautifier which enforces the chosen standards before code checkin -Keith Original Message From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill_H Sent: Tuesday, September 27, 2005 1:35 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kevin King Sent: Tuesday, September 27, 2005 1:04 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[OT]RE: Re[2]: [U2] Good Programming Practice Question.........
true .. when you are making changes .. but new stuff can start a new trend. we used to use punch cards .. but I moved on .. and if I can move on then anybody can G You don't use punch cards? How do you make your programs run? Our greatest duty in this life is to help others. And please, if you can't help them, could you at least not hurt them? - H.H. the Dalai Lama When buying selling are controlled by legislation, the first thing to be bought sold are the legislators - P.J. O'Rourke Dan Fitzgerald --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Lower case in Unidata basic
Yes, the BASIC -I option. The only drawback, according to TFM, is that it won't check for keyword usage in the code if you use the -I. So you can use OPEN and DELETE as variable names. ;) Our greatest duty in this life is to help others. And please, if you can't help them, could you at least not hurt them? - H.H. the Dalai Lama When buying selling are controlled by legislation, the first thing to be bought sold are the legislators - P.J. O'Rourke Dan Fitzgerald From: Clifton Oliver [EMAIL PROTECTED] Reply-To: u2-users@listserver.u2ug.org To: u2-users@listserver.u2ug.org Subject: Re: [U2] Lower case in Unidata basic Date: Tue, 27 Sep 2005 17:02:30 -0500 And what is the short answer? Can you or can you not use lower case keywords in Unidata BASIC these days? Thx. -- Regards, Clif --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [ ] - RE: [U2] Good Programming Practice Question......... - Found word(s) list error in the Text body
Hi David, I guess we'll have to just disagree on this point as I see our definition of a single task as being different. Although Basic can be treated as an object oriented environment, I do not think the majority of basic programmers do that, but that's just my unconfirmed belief. I'll let you keep the (approximately) 10-line rule in your standards and I'll assume you'll let me keep it out of mine. Thanks. BobW -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of David A. Green Sent: Tuesday, September 27, 2005 3:15 PM To: u2-users@listserver.u2ug.org Subject: [ ] - RE: [U2] Good Programming Practice Question. - Found word(s) list error in the Text body Bob, 10 lines is a good rule to live by. There are some exceptions like the Initialization routine or large CASE structures that have many options. But the problem you run into if you don't restrict your lines is you end up doing more than one thing. Most of the Pick programming that I've run across has the subroutines going on and on and on. Making your subroutines short and precise is a good exercise in good programming practices. In Object Oriented Programming we are taught that more than 3 lines are too much. Here is an sample program: PROGRAM RUN.GUIDE * DAG Consulting -- WWW.DAGCONSULTING.COM * David A. Green -- 5/2/01 * * EQUATE TRUE TO 1, FALSE TO 0 EQUATE CLR TO @(-1) ! DEBUG.FLAG = TRUE ! GOSUB INIT GOSUB PRINT.SCREEN GOSUB OPEN.FILES ! IF NOT(ABORT.FLAG) THEN LOOP GOSUB SELECT.RECORDS IF TOT.CNT THEN LOOP READNEXT VOC.KEY ELSE DONE.FLAG = TRUE UNTIL DONE.FLAG DO GOSUB READ.REC IF OK.FLAG THEN GOSUB OPEN.FILE IF OK.FLAG THEN GOSUB LOCKFILE IF OK.FLAG THEN GOSUB PROCESS.REC IF OK.FLAG THEN FILEUNLOCK F.FILE REPEAT END GOSUB END.LOOP.LOGIC WHILE LATER DO REPEAT END ! GOSUB PRINT.TOTALS ! STOP ! END.LOOP.LOGIC: END.CNT += 1 IF END.CNT 10 THEN ;* Give up after 10 trys, write the remainder to a list. PRINT Max tries exceeded, remainder written to list RUN.GUIDE WRITELIST LATER ON RUN.GUIDE LATER = END ELSE IF LATER THEN SLEEP 10 FORMLIST LATER END END RETURN ! SELECT.RECORDS: IF SYSTEM(11) THEN TOT.CNT = SYSTEM(11) END ELSE CMD = SSELECT :FNAME: WITH F1 = 'F' PERFORM CMD CAPTURING BUFF TOT.CNT = @SYSTEM.RETURN.CODE END RETURN ! READ.REC: READ VOC.REC FROM F.VOC, VOC.KEY THEN OK.FLAG = TRUE END ELSE WAR.CNT += 1 OK.FLAG = FALSE PRINT Warning: File :DQUOTE(VOC.KEY): NOT found in VOC! END RETURN ! OPEN.FILE: OPEN VOC.KEY TO F.FILE ELSE ERR.CNT += 1 OK.FLAG = FALSE PRINT Can't open :DQUOTE(VOC.KEY):! END RETURN ! LOCKFILE: OK.FLAG = TRUE FILELOCK F.FILE LOCKED GOSUB LOCKED.FILE RETURN ! LOCKED.FILE: OK.FLAG = FALSE LATER-1 = VOC.KEY PRINT Will try :DQUOTE(VOC.KEY): later, file in use. RETURN ! CHECK.CRITERIA: SELECT.OK = TRUE * * Add Selection Criteria Here if Necessary * IF VOC.Dict.Name = THEN SELECT.OK = FALSE * RETURN ! PROCESS.REC: PRO.CNT += 1 PRINT VOC.KEY:... CMD = !guide :VOC.KEY GOSUB DO.CMD CMD = RENAME.CMD: GUIDE_ADVICE.LIS :VOC.KEY:_GUIDE_ADVICE.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_ERRORS.LIS :VOC.KEY:_GUIDE_ERRORS.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_STATS.LIS :VOC.KEY:_GUIDE_STATS.LIS GOSUB DO.OS.CMD CMD = RENAME.CMD: GUIDE_FIXUP.DAT :VOC.KEY:_GUIDE_FIXUP.DAT GOSUB DO.OS.CMD RETURN ! DO.CMD: PERFORM CMD CAPTURING BUFF RETURN ! DO.OS.CMD: PCPERFORM CMD CAPTURING BUFF RETURN ! INIT: VOC.REC = ABORT.FLAG = FALSE DONE.FLAG = FALSE FNAME = VOC TITLE = Running guide TOT.CNT= 0 PRO.CNT= 0 ERR.CNT= 0 WAR.CNT= 0 LATER = END.CNT= 0 * ** OS Specific Settings * OS.TYPE = SYSTEM(33) BEGIN CASE CASE OS.TYPE = UNIX ; RENAME.CMD = mv ; FILE.SEP = / CASE OS.TYPE = Windows NT ; RENAME.CMD = RENAME ; FILE.SEP = \ CASE 1 ; RENAME.CMD = mv ; FILE.SEP = / END CASE RETURN ! PRINT.SCREEN: PRINT CLR:TITLE RETURN ! OPEN.FILES: ONAME = VOC ; OPEN '', ONAME
RE: [U2] Good Programming Practice Question.........
I haven't heard it said (much) lately so if I missed it, forgive me. STANDARDS ARE ESSENTIAL I have standards for structure, header/commenting, everything including variable names. Everything is done with purpose and according to standard, which makes it very easy to recognize code and its meaning months - even years - after it's been written. Today in particular I'm into code that I wrote in 1993 and it's as fresh as if it were written today. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gordon J Glorfield Sent: Tuesday, September 27, 2005 2:17 PM To: u2-users@listserver.u2ug.org Cc: [EMAIL PROTECTED]; u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. I prefer alphanumeric labels for subroutines. The label should give some clue as to the function of the subroutine. The subroutines should be in frequency of use order with the most commonly used closer to the top of the program. Subroutines that are used once in a program (file opens, variable initialization, etc...) are located near the bottom. Gordon J. Glorfield Sr. Applications Developer MAMSI (A UnitedHealth Company) 301-360-8839 [EMAIL PROTECTED] wrote on 09/27/2005 04:35:12 PM: Kevin: Not if you alphabetize the labels; then it works just like numeric. :-) Bill [SNIP] This e-mail, including attachments, may include confidential and/or proprietary information, and may be used only by the person or entity to which it is addressed. If the reader of this e-mail is not the intended recipient or his or her authorized agent, the reader is hereby notified that any dissemination, distribution or copying of this e-mail is prohibited. If you have received this e-mail in error, please notify the sender by replying to this message and delete this e-mail immediately. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [OT]RE: Re[2]: [U2] Good Programming Practice Question.........
Dan, Tuesday, September 27, 2005, 3:39:21 PM, you wrote: true .. when you are making changes .. but new stuff can start a new trend. we used to use punch cards .. but I moved on .. and if I can move on then anybody can G DF You don't use punch cards? How do you make your programs run? i send them to my guru buddies and let them make them run .. -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ ...our behavior matters more than the beliefs that we profess. Elizabeth Deutsch Earle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Good Programming Practice Question.........
RETURN with a comment..that is an excellent suggestion. I'd argue that any END statement that's more than a handful (8-10) lines from the opening IF (or whatever) statement should have a comment. Here's an example (that's not long enough to satisfy my 'handful' argument above): IF XOOS.ALL.COURSES='Y' THEN some lines of code END ELSE ;* IF XOOS.ALL.COURSES='Y' THEN some lines of code END ;* IF XOOS.ALL.COURSES='Y' THEN Jeff Butera, Ph.D. Administrative Systems Hampshire College [EMAIL PROTECTED] 413-559-5556 ...our behavior matters more than the beliefs that we profess. Elizabeth Deutsch Earle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Old IBM RT
I worked for a company which had at lease 10 machines working. I would suggest that you contact Carl Keogh at Austral Bricks in Perth Western Australia who aquired the old Bristile company. When I left 8 years ago they had just decomisioned two of the IBM RT's running Pick OA 2.02 and System Builder. Unfortunately your request came too late by 6 months. I had a fully operating model I put together from parts that I send to the tip including the 40kg of manuals and operating system disks that went with it. It was not running Pick but Unix. If you are going to load pick on an RT you will need the access code, else you will not be able to load the mini disks, unless the operating system is still on the hard drive. The system could take a configuration of 1 x 310mb Hard Disk to 3 x 310 MB Hard Disks. The mini disks are stored on any of the drives installed. You will also need the the Virtual Disks 1 2 if you want to run Pick OA. Regards Jim Garratt -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Clifton Oliver Sent: Saturday, 24 September 2005 11:39 PM To: u2-users@listserver.u2ug.org Subject: [U2] Fwd: U2 to be posted Posted for another U2 user. Begin forwarded message: From: Henry Keultjes [EMAIL PROTECTED] Date: September 24, 2005 5:39:49 AM PDT To: Clifton Oliver [EMAIL PROTECTED] Subject: U2 to be posted Wanted: Pick Open Architecture for IBM RT Pick Open Architecture on the IBM RT was a historic turning point away from native Pick and also the first Pick to run on a RISC platform. We are trying to preserve some of that history by restoring at least one RT model to an operating condition. Please contact Henry Keultjes at 419-571-9127 or hbkeultjes(at)earthlink (dot)net if you are willing to contribute any Pick related items or if you know of someone who could. Tax deductable contributions can be made to BrainTree, a 501(C)(3) non-profit organization http://www.braintreepartners.org/ braintreeitalliance.htm Database Scientifics Project c/o BrainTree 201 East Fifth Street Mansfield OH 44902 . Clifton Oliver wrote: Sure. Write it as you want it posted, and I'll forward it verbatim to the list. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Lower case in Unidata basic
David, and U2-Users: There is now a link on the u2ug.org home page to the IBM documentation page. It's in the column at the left. In addition, you'll also now find a direct link to the searchable archives (BTW, thanks to Lee Leitner and Infocus for providing this service). We really want to make the u2ug.org site work for the group, so any other ideas, suggestions, or contributions would be great! And so that we don't clutter up this group, either post your ideas/suggestions in the u2ug Web site design forum, or email me directly. Thanks! Laura Hirsh U2UG Board Member -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Tod Sigafoos Sent: Tuesday, September 27, 2005 3:19 PM To: u2-users@listserver.u2ug.org Subject: [U2] Lower case in Unidata basic u2-users, I have looked for archives at u2ug.org but not found them .. (must be blind) I have downloaded pdfs from IBM but i keep getting Universe .. -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
We also use xnn.meaningful.name type labels. One advantage is that our editor can recognise a label and putting the cursor on a line that includes a GOSUB and pressing one function key will move the cursor directly to the correct paragraph. One thing I've never agreed with (except in COBOL) is every internal subroutine should only have on exit point - why? What is wrong with... B00.PROCESS: READ REC1 FROM file1,id1 ELSE RETURN READ REC2 FROM file2,id2 ELSE RETURN IF some.condition THEN RETURN some more statements that actually do the work with REC1 REC2 RETURN The early RETURNs are just getting out of the routine on abnormal conditions, the alternative would be to nest the code - but code nested more than a couple of tabs deep is *much* harder to read. AdrianW DISCLAIMER: Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
This is where the FIND command becomes handy From: [EMAIL PROTECTED] on behalf of Kevin King Sent: Tue 9/27/2005 4:03 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
Allen: I know we've seen the same crappy code LOL From: [EMAIL PROTECTED] on behalf of Allen E. Elwood Sent: Tue 9/27/2005 4:27 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. AhI always put my subroutines in the same order as they are in the main calling section. And using Accuterm, if you highlight the SELECT.FILE portion of the GOSUB SELECT.FILE, then hit CTRL-F it puts SELECT.FILE in there for you and Bingo, you're there. I get tired of the redundancy of using GOSUB 100 ; * Display Page instead of GOSUB DISPLAY.PAGE And and andI've seen PLENTY of programs where 2200 was below 4000 - sad - but true!! -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Kevin King Sent: Tuesday, September 27, 2005 13:04 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. And here's where the conflict begins. When looking through a big program, I much prefer numeric labels in order with comments vs. alphanumeric labels. With numeric labels in order you find 1800 and if you're looking for 2000 you know to look farther down, 1000, go up. With alpha labels if you find SELECT.FILE and are looking for UPDATE.FILES, you have nothing but experience to know whether to look up or down from there. Numeric labels are good. Not ordering or commenting them is bad. And not putting comments around all labels to make them more easily distinguished from the rest of the program is near unforgiveable. -K -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allen E. Elwood Sent: Tuesday, September 27, 2005 12:40 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. My addition to this would be to use alphanumeric labels, and to *have* a main calling section. A main calling section that looks like: GOSUB OPEN.AND.INIT GOSUB SELECT.FILE GOSUB PRE-PROCESS.VALIDITY.CHECKS GOSUB PRINT.INVOICES GOSUB UPDATE.FILES Looks so much better and is so easier to figure out than GOSUB 100 a bunch of statements a bunch of statements a bunch of statements GOSUB 1250 a bunch of statements a bunch of statements a bunch of statements GOSUB 1375 a bunch of statements a bunch of statements a bunch of statements GOSUB 4000 a bunch of statements a bunch of statements a bunch of statements GOSUB 9755 a bunch of statements a bunch of statements a bunch of statements IMNSHO - *=aee=* -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of George Gallen Sent: Tuesday, September 27, 2005 12:12 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Good Programming Practice Question. Also, how about a change log at the top of the program that lists, who, when and what/why a change was made. add to that a short description as to what the function of the program is for. * this program does . * * * date who changes made * date who changes made * George -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Dianne Ackerman Sent: Tuesday, September 27, 2005 2:57 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. I like these and would add another one - Add comments to tricky-looking code! -Dianne David A. Green wrote: --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.7/112 - Release Date: 9/26/2005 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Blink Error
Hi, I am receiving the following error: Computed blink of 0xB44 does not match expected blink of 0x0! Detected within group starting at address 0x8000! Internal data error. I am having a 2GB Data 30 file, which got locked due to unix restriction on file size. A unibasic program has been written to purge the data in this file. I imported the 2GB file to another universe box which is a replica of the original box and also contains the above file, and reconfigured the VOC pointer of the local file to point to the 2GB file. This error came in while selecting the records. Please let me know if any one knows a work around or has any information about this. Thanks in advance Warm regards Anmol CAUTION - Disclaimer * This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system. ***INFOSYS End of Disclaimer INFOSYS*** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re[2]: [U2] Lower case in Unidata basic
Laura, what .. Lee is still around .. who would've guessed G Tuesday, September 27, 2005, 5:22:05 PM, you wrote: LH David, and U2-Users: LH There is now a link on the u2ug.org home page to the IBM documentation page. LH It's in the column at the left. In addition, you'll also now find a direct LH link to the searchable archives (BTW, thanks to Lee Leitner and Infocus for LH providing this service). We really want to make the u2ug.org site work for LH the group, so any other ideas, suggestions, or contributions would be great! LH And so that we don't clutter up this group, either post your LH ideas/suggestions in the u2ug Web site design forum, or email me directly. LH Thanks! LH Laura Hirsh LH U2UG Board Member LH -Original Message- LH From: [EMAIL PROTECTED] LH [mailto:[EMAIL PROTECTED] On Behalf Of David Tod Sigafoos LH Sent: Tuesday, September 27, 2005 3:19 PM LH To: u2-users@listserver.u2ug.org LH Subject: [U2] Lower case in Unidata basic LH u2-users, LH I have looked for archives at u2ug.org but not found them .. (must be LH blind) LH I have downloaded pdfs from IBM but i keep getting Universe .. -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ ...our behavior matters more than the beliefs that we profess. Elizabeth Deutsch Earle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Good Programming Practice Question.........
I hope you're joking - talk about making code unreadable, comments that look like code are (IMO) a very BAD idea. The indentation level makes it perfectly clear what goes with what, and if it doesn't then change the structure of the code. IMO IF XOOS.ALL.COURSES='Y' THEN some lines of code END ELSE ;* IF XOOS.ALL.COURSES='Y' THEN some lines of code END ;* IF XOOS.ALL.COURSES='Y' THEN is much less clear than my preferred way of formatting the same structure: IF XOOS.ALL.COURSES = Y THEN some lines of code END ELSE some lines of code END I can easily see the start and end of both the THEN block and the ELSE block and also easily see to which condition they belong. The same structure can be used for ALL conditional statements and each block is always easy to find and associate with it's starting statement, eg: READU record FROM file,id ON ERROR statements END LOCKED statements END THEN statements END ELSE statements END -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Wednesday, 28 September 2005 7:11 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Good Programming Practice Question. RETURN with a comment..that is an excellent suggestion. I'd argue that any END statement that's more than a handful (8-10) lines from the opening IF (or whatever) statement should have a comment. Here's an example (that's not long enough to satisfy my 'handful' argument above): IF XOOS.ALL.COURSES='Y' THEN some lines of code END ELSE ;* IF XOOS.ALL.COURSES='Y' THEN some lines of code END ;* IF XOOS.ALL.COURSES='Y' THEN Jeff Butera, Ph.D. Administrative Systems Hampshire College [EMAIL PROTECTED] 413-559-5556 ...our behavior matters more than the beliefs that we profess. Elizabeth Deutsch Earle --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ DISCLAIMER: Disclaimer. This e-mail is private and confidential. If you are not the intended recipient, please advise us by return e-mail immediately, and delete the e-mail and any attachments without using or disclosing the contents in any way. The views expressed in this e-mail are those of the author, and do not represent those of this company unless this is clearly indicated. You should scan this e-mail and any attachments for viruses. This company accepts no liability for any direct or indirect damage or loss resulting from the use of any attachments to this e-mail. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UD, MD5 Hash algoritm
Bjorn, the past few releases of UD have allowed the use of the ENCRYPT function specifically for MD5 hashing. I have some source code that Dave Meagher wrote. It claims to do encryption (BLOWFISH, CIPHER, ICRYPT, IDEA) and hashing (MD5, SHA1). I have no idea if it works but I can send it to you if you would like. From memory these have to do all sorts of fiddly things because UV/UD don't support unsigned 32bit integers. The UD routines which call openssl will be several orders of magnitude faster. Craig --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Blink Error - Backward Link error
Anmol, I don't have good news. You have a broken file due to a mismatched backward link (blink). This occurred when the file attempted to expand past the 2gb limit on a static file by trying to extend an overflow block. Any attempt to SELECT or SSELECT the file will fail when it reaches the broken group. :^( Your alternatives at this point are: 1) restore the last know valid backup of the file and rebuild the data 2) contact the company where you purchased your U2 licenses. Their U2 Support organization will put you in touch with someone that can fix the file (for a fee). When they fix the file, the file will be truncated at the group where this occurred. This can be anywhere in the file, because the group extended for overflow can be anywhere in the file. You may end up with a file that is considerably smaller than your original file! A wake up call for others: Watch out for your 2gb file limits on static files. Good luck in recovering your data! Regards, Steve Stephen M. O'Neal, CDP IBM U2 Certified Services Sales Specialist North America U2 Lab Services Information Management, IBM Software Group Anmol Chandrakant Khopade [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 09/27/2005 07:37 PM Please respond to u2-users To u2-users@listserver.u2ug.org cc Subject [U2] Blink Error Hi, I am receiving the following error: Computed blink of 0xB44 does not match expected blink of 0x0! Detected within group starting at address 0x8000! Internal data error. I am having a 2GB Data 30 file, which got locked due to unix restriction on file size. A unibasic program has been written to purge the data in this file. I imported the 2GB file to another universe box which is a replica of the original box and also contains the above file, and reconfigured the VOC pointer of the local file to point to the 2GB file. This error came in while selecting the records. Please let me know if any one knows a work around or has any information about this. Thanks in advance Warm regards Anmol CAUTION - Disclaimer * This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system. ***INFOSYS End of Disclaimer INFOSYS*** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Blink Error - Backward Link error
Correction, you should only see loss of data after the BLINK error in he affected group only. Karl Pearson Senior uniVerse DBA and one who cut his teeth fixing blinks by hand (thanks to Mark Baldridge and Joel Yates). quote who=Stephen O'Neal Anmol, I don't have good news. You have a broken file due to a mismatched backward link (blink). This occurred when the file attempted to expand past the 2gb limit on a static file by trying to extend an overflow block. Any attempt to SELECT or SSELECT the file will fail when it reaches the broken group. :^( Your alternatives at this point are: 1) restore the last know valid backup of the file and rebuild the data 2) contact the company where you purchased your U2 licenses. Their U2 Support organization will put you in touch with someone that can fix the file (for a fee). When they fix the file, the file will be truncated at the group where this occurred. This can be anywhere in the file, because the group extended for overflow can be anywhere in the file. You may end up with a file that is considerably smaller than your original file! A wake up call for others: Watch out for your 2gb file limits on static files. Good luck in recovering your data! Regards, Steve Stephen M. O'Neal, CDP IBM U2 Certified Services Sales Specialist North America U2 Lab Services Information Management, IBM Software Group Anmol Chandrakant Khopade [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 09/27/2005 07:37 PM Please respond to u2-users To u2-users@listserver.u2ug.org cc Subject [U2] Blink Error Hi, I am receiving the following error: Computed blink of 0xB44 does not match expected blink of 0x0! Detected within group starting at address 0x8000! Internal data error. I am having a 2GB Data 30 file, which got locked due to unix restriction on file size. A unibasic program has been written to purge the data in this file. I imported the 2GB file to another universe box which is a replica of the original box and also contains the above file, and reconfigured the VOC pointer of the local file to point to the 2GB file. This error came in while selecting the records. Please let me know if any one knows a work around or has any information about this. Thanks in advance Warm regards Anmol CAUTION - Disclaimer * This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely for the use of the addressee(s). If you are not the intended recipient, please notify the sender by e-mail and delete the original message. Further, you are not to copy, disclose, or distribute this e-mail or its contents to any other person and any such actions are unlawful. This e-mail may contain viruses. Infosys has taken every reasonable precaution to minimize this risk, but is not liable for any damage you may sustain as a result of any virus in this e-mail. You should carry out your own virus checks before opening the e-mail or attachment. Infosys reserves the right to monitor and review the content of all messages sent to or from this e-mail address. Messages sent to or from this e-mail address may be stored on the Infosys e-mail system. ***INFOSYS End of Disclaimer INFOSYS*** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ -- karl _/ _/ _/ _/_/_/ __o _/ _/ _/ _/_/ _-\._ _/_/_/ _/_/_/ (_)/ (_) _/ _/ _/ _/ .. _/ _/ arl _/_/_/ _/ earson[EMAIL PROTECTED] -- IT Director, ATS Industrial Supply, Inc. http://www.atsindustrial.com Toll-free: 800-789-9300 x29 Direct2Desk: 801-978-4429 Facsimile: 801-972-3888 -- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/