Mid-Missouri OS/2 User Group Newsletter September 1994 Volume 2 Number 9 The views expressed in this newsletter are not necessarily the views held by the MMOUG or it's members. Don't agree with something you've read here? Write and tell us about it! If you have any contributions, please upload them to area 18 of the WoodMeister or send them to me via Internet at USDSSKZS@IBMMAIL.COM. If you work for the State of Missouri and have access to DISOSS, you can send them to POOLMWV at DSSHOST. MMOUG August Minutes Date of Meeting: 8/17/94 Location:Boone Electric Coop Attendees: Penny Shepherd, Teresa Tayer, Dayton Shepherd, R. Tufts, Gary Pool, David Keisker, Jim Casstevens, Rick Wolters, Tom Tiamm, Randy Wright, Gerri Jeffery, Charles Turner, Ken Gary, Steve Maring, Steve Coller, Greg Lane, Woody Sturges, Ben Hoffman Gerri Jeffery called the meeting to order. It looks like DeScribe will be our October meeting, we will know for sure on Friday. They are still trying to get Pinnacle for either the September or November meeting. She ask for suggestions for future programs. Possible ideas were: REXX concepts VX-REXX Messa Borland (C++ compiler) Internet Access Rick Wolters said he had a public domain assembler module which can be used with Clipper so that a Clipper program can start another task under OS/2. Said it worked well and anyone interested can contact him. He is willing to put it on the BBS. Rick also ask about modem pooling software because his office is going to digital handsets. Anyone with any recommendations should contact him. It was also suggested that there are devices to allow modems to work with digital handsets. Gary Pool ask for help for articles for the Club Newsletter. Any help would be appreciated. He would like to digitize pictures of members and include them in a newsletter. A permanent meeting schedule of rotating between the Boone Electric Coop meeting room in Columbia and the Dept of Social Services office on Elm Street in Jefferson City was decided on. Gary also said that he thinks the REXX Editor on the BBS is worth looking at. A suggestion was made by Greg Lane that phone numbers for the JC and Columbia BBS nodes be published in the newsletter. Also he suggested that the club have a phone number people could call for info on the users group and for general OS/2 assistance. Ben Hoffman will investigate if a phonemail box can be arranged by IBM for the clubs use. Also it was suggested that the club do some proactive promoting of OS/2, suggestions were: Mall day, assistance in installing and using OS/2 for home users & Team OS/2 functions. No decisions were made. It was suggested that IBM FTN satellite broadcast schedule information be put on the BBS as well as information on where they can be watched. Also if they were in the clear what are the satellite coord. Ben Hoffman said he would check the schedules and put a message on the BBS with information on this. Ben Hoffman from IBM presented a general outline of IBM plans for OS/2 for 1994 and did a technology demo of OS/2, Object technology and OpenDoc. Drawing for prizes: Boxer Editor for DOS and OS/2 - David Keisker OS/2 Programming (Book) - Greg Lane They will both review their prizes for the Users Group. Information Officer Input/Output Egad, it's time for me to write something creative again. Well, forget it. It won't happen. My mind is completely blank. That being the case, I can pretend like I'm Rush Limbaugh and ramble on about anything that crosses my mind. After all, he's from Missouri, too. Hmmmm, what would Rush say about events occurring with OS/2 that would stir up a hornet's nest? Well, he might say that he has heard about a certain state agency (that shall remain nameless -- it deals, however, with developing the economy in Missouri) that has determined that OS/2 is no longer a viable option for them. They are converting everyone to Windows. This is an unconfirmed rumor, but what the heck, that never stopped Rush! Yes, friends and neighbors, this is shocking. I can understand the concern, however. There are two products that they wish to use. One will work with OS/2 2.1 but not 2.11, the other will work with 2.11, but not with 2.1. Both products work under Windows. However, according to my sources (as both Rush and Robert X. Cringely would say), Windows also had compatability problems with various programs and the solution was to buy products that would work with windows. Why wasn't the same courtesy afforded to OS/2? People get very attached to their user interface. Have you ever seen the rabid Macintosh and Amiga users? OS/2 users (like me) are also just as emphatic in their commitment to a wonderful operating system. I know why I am committed. OS/2 saves me about 2 hours a day in getting real work done that I just can't get from Windows. Don't get me wrong. I :hp5.like:ehp5. Windows. I use it at home where I don't have the same work load. However, like the Amiga users, I am afraid that if I don't convince everyone else that OS/2 is a superior platform, I will lose its benefit. So I'm really nervous about this decision. Although it doesn't affect me right now (and probably won't, since our department will be getting a :hp2.lot:ehp2. of copies of OS/2 over the next five years due to contracts already awarded), I see it as a potential threat to my productivity. Now admit it, you've seen people playing solitaire during working hours, haven't you? Those are the people who would like Windows because they don't have enough to do during the day. I, on the other hand, am too darned busy to lose OS/2! Aaaahhhh, I feel better now. Let me take on those Windows supporters. I can do it with half my brain tied behind my back! gp The Dog House OK, I'll admit it. I'll use anything that makes the job easier! This month I found I nice little text file of REXX frequently asked questions on the OS2BBS. Rather than a code snippet, I decided to include the whole thing, hook, line and sinker -- or is it TRUNC, LINES and SIGNAL? Whatever . . . Last Revised: August 12, 1994 Eric Giguere giguere@watcom.on.ca ---------------------------------------------------------------- Copyright Information This document is Copyright 1993, 1994 by Eric Giguère. Permission is granted to reproduce and distribute all or part of this document for non-commercial purposes only. All other uses must first be cleared with the author. The author may be contacted on the Internet at the address giguere@watcom.on.ca or on paper by writing to Watcom International, 415 Phillip Street, Waterloo, Ontario, Canada, N2L 3X2. Please note, however, that this document is not published or endorsed by Watcom. ---------------------------------------------------------------- Introduction This document is intended to serve as a useful reference for REXX-related information. It aims for breadth as opposed to depth, and references to other material are given where appropriate. Suggestions and updates should be sent to the author in an attempt to keep this document relevant and up- to-date. Readers will notice the prevalence of OS/2-related materials in this document. Most of the REXX-related activity at this time is occurring on the OS/2 platform. This document is not intended to be OS/2-specific. The author is quite happy to include information on other platforms if you pass it on to him. More information on REXX can also be had from the REXX Language Association. See below for details. ---------------------------------------------------------------- A. What Is REXX? REXX is a programming language designed by Michael Cowlishaw of IBM UK Laboratories. In his own words: "REXX is a procedural language that allows programs and algorithms to be written in a clear and structured way." REXX doesn't look that different from any other procedural language. Here's a simple REXX program: /* Count some numbers */ say "Counting..." do i = 1 to 10 say "Number" i end What makes REXX different from most other languages is that it is also designed to be used as a macro language by arbitrary application programs. The idea is that application developers don't have to design their own macro languages and interpreters. Instead they use REXX as the macro language and support the REXX programming interface. If a REXX macro comes across an expression or function call that it cannot resolve, it can ask the application to handle it instead. The application only has to support the features that are specific to it, freeing the developer from handling the mundane (and time-consuming) task of writing a language interpreter. And if all applications use REXX as their macro language, the user only has to learn one language instead of a dozen. ---------------------------------------------------------------- B. REXX and the Internet Networks connect computers in various ways for the exchange of data. The terminology is a bit confusing to the new user. Here are the definitions this document uses: Usenet: Not really a network, just the set of machines that exchange network news. Network news is really an extended form of electronic mail that groups messages from individuals into newsgroups that users can read using special newsreaders. Internet: The worldwide network based on TCP/IP protocols. Besides being able to receive mail and newsgroups, these machines can use programs like ftp and telnet to communicate with other machines in real time. Most Internet machines are Unix-based. BITNET: The worldwide network that connects many IBM mainframes. BITNET users can also transfer files using methods that are incompatible with those of the Internet. Newsgroups The Usenet group comp.lang.rexx exists for discussion of REXX in all its variations. Anything posted to this newsgroup also gets sent to the REXXLIST mailing list (see below) and vice-versa. Other newsgroups of interest are machine-specific. Recommended groups are comp.os.os2.programmer.misc and comp.sys.amiga.programmer. FTP Sites of Interest FTP is a file transmission protocol used on the Internet to transfer files between machines. The transfers are done in real time and usually require that the user have an account on both machines. However, many machines on the Internet support what is known as anonymous FTP, which allows users on other machines access to a limited set of files without requiring an account. Some of the more interesting sites that offer this service are: rexx.uwaterloo.ca General repository for REXX-related information, including free REXX interpreters for Unix and DOS. An XEDIT clone for Unix and OS/2 may also be found here. Look under /pub/rexx. ftp.pvv.unit.no The official home of Regina, one of the free Unix interpreters. Archives of the messages in comp.lang.rexx and RexxLA messages are also maintained here. Check under /pub/rexx. ftp-os2.cdrom.com General OS/2 archives. Look under ftp.luth.se /pub/os2. wuarchive.wustl.edu General Amiga archive. Look under /pub/aminet. Mailing Lists Mailing lists are similar to newsgroups but use normal electronic mail to deliver the messages. The following mailing lists are mostly BITNET-based but are accessible from the Internet as well: List name BITNET Internet Discusses Node Address REXXLIST UCF1VM ucf1vm.cc.ucf.edu REXX in general AREXX-L UCF1VM ucf1vm.cc.ucf.edu Amiga REXX PC-REXX UCF1VM ucf1vm.cc.ucf.edu Personal REXX REXXCOMP UCF1VM ucf1vm.cc.ucf.edu IBM's REXX compiler TSO-REXX UCF1VM ucf1vm.cc.ucf.edu TSO REXX VM-REXX UCF1VM ucf1vm.cc.ucf.edu VM/SP REXX UREXX-L (none) liverpool.ac.ak Unix REXX To subscribe to any of these lists, send a one-line message to the address LISTSERV@node, where node is the BITNET node or Internet address for the list you wish to join. In the body of your message should be the line SUBSCRIBE list-name your--full-name as in SUBSCRIBE UREXX-L Eric Giguere You will then be subscribed to the list and messages will start arriving in your mailbox. To send a message to the list, simply mail it to listname@node, as in UREXX- L@liverpool.ac.uk. Note the distinction between the LISTSERV address and the listname address. You can receive help by sending a HELP message to the LISTSERV address. Note that some of these mailing lists may be available on Usenet in the form of newsgroups with names starting with "bit.listserv". Ask your system administrator if you're not sure. Thanks to Scott Ophof for providing this summary. Gopher Service Gopher clients may find REXX-related information at the site gopher.pvv.unit.no (Europe) and index.almaden.ibm.com (N. America). ---------------------------------------------------------------- C. Free REXX Products Interpreters There are at least three REXX interpreters available for free on the Internet. The first two are Unix based and are well-supported by their authors. The third is an MS-DOS interpreter. Regina is Anders Christensen's REXX interpreter for various flavours of Unix and VMS. It is fairly complete and Anders even has an API for developers. It also apparently can be ported to OS/2. Anders can be reached at anders@pvv.unit.no. Regina's official home is ftp.pvv.unit.no. REXX/imc is Ian Collier's REXX interpreter for SunOS, though it has also been ported to other Unix systems. Ian can be reached at imc@prg.ox.ac.uk. BREXX is Bill Vlachoudis' REXX interpreter for MS-DOS. The interpreter is not complete but is quite small. Bill can be reached at bill@donoussa.physics.auth.gr. All three interpreters are available for anonymous FTP on rexx.uwaterloo.ca in the /pub/freerexx directory, each interpreter in its own subdirectory. Regina and REXX/imc are in source form, BREXX is only available as binary. REXX-Aware Text Editors Also on rexx.uwaterloo.ca in the /pub/editors directory is the text editor THE by Mark Hessling (mark@snark.itc.gu.edu.au). THE is a full-featured XEDIT/KEDIT clone (by XEDIT here we mean the IBM mainframe text editor, not the X Windows editor xedit) with REXX support. THE is available in versions for OS/2 and Unix. THE's official home is on ftp.gu.edu.au in /src/THE. ---------------------------------------------------------------- D. Commercial REXX Products Interpreters REXX interpreters are available commercially for a wide variety of systems and come standard on some operating platforms such as the Amiga, OS/2 and the IBM AS/400 and mainframes (VM, TSO, VSE). The following vendors sell REXX interpreters: The Workstation Group ›Various UNIX platforms, also VMS| 6300 River Road Rosemont, IL 60018 (800) 228-0255 (US only) sales@wrkgrp.com Quercus Systems ›DOS, Windows, Windows NT, OS/2| P.O. Box 2157 Saratoga, CA 95070 (408) 867-7399 (800) 440-5944 (US & Canada) 75300.2450@compuserve.com Simware ›Novell Netware| 2 Gurdwara Road Ottawa, Ontario Canada K2E 1A2 (613) 727-1779 IBM also sells REXX interpreters for AIX and Netware. Compilers Although REXX is usually thought of as an interpreted language, it can also be compiled. The following vendors all sell REXX compilers: Dineen Edwards Group ›Amiga| 19785 West 12 Mile Road, Suite 305 Southfield, MI 48076-2553 (313) 352-4288 IBM ›VSE, MVS/TSO and VM/CMS| Contact your local representative Systems Center ›VM/CMS| 1800 Alexander Bell Drive Reston, VA 22091 Visual Development Environments There are three REXX-based visual development environments available for OS/2: VX-REXX Watcom International 415 Phillip Street Waterloo, Ontario Canada N2L 3X2 Phone: (519) 886-3700 Fax: (519) 747-4971 VisPro/REXX HockWare 315 N. Academy St., Suite 100 Cary, NC 27513 Phone: (919) 380-0616 Fax: (919) 380-0757 GpfRexx Gpf Systems 10 Falls Road Moodus, Conn. 06469 Phone: (203) 873-3300 Fax: (203) 873-3302 REXX-Aware Text Editors Clones of the popular XEDIT editor are available for Unix from the Workstation Group (see address above) and for DOS and OS/2 from Mansfield Software. Tritus sells an ISPF/PDF text editor with REXX support for OS/2. One Up sells SourceLink, an integrated development environment for OS/2 with REXX macro capabilities. Command Technology sells the SPF/PC editor. Mansfield Software P.O. Box 532 Storrs, CT 06268 Phone: (203) 429-8402 Fax: (203) 487-1185 Tritus 3300 Bee Caves Road, Suite 650 Austin, Texas 78746 Phone: (512) 794-5800 Fax: (512) 7940-3833 One Up 1603 LBJ Freeway, Suite 200 Dallas, Texas 75243 Phone: (800) 678-0187 Command Technology 1040 Marina Village Parkway Alameda, CA 94501 Phone: (800) 336-3320 The OS/2 Enhanced Editor (EPM.EXE), which is bundled with OS/2, also has REXX support. Use its online help and search for the 'rx' command. REXX Extensions A number of vendors sell extensions to REXX: -- Quercus Systems (address above) sells REXXLIB (a collection of over 150 REXX extension functions), REXXCOMM (a function package for accessing serial ports from REXX) and REXXTERM (a full-featured asynchronous communications program). -- SofTouch Systems sells the GammaTech REXX SuperSet/2, a collection of over 300 REXX extension functions for OS/2. -- dSoft Development sells the dbfREXX function library that lets you read and write dBASE files from OS/2 REXX. SofTouch Systems 1300 S. Meridian, Suite 600 Oklahoma City, Okla. 73108-1751 Phone: (405) 947-8080 Fax: (405) 632-6537 dSoft Development 4710 Innsbruk Drive Houston, Texas 77066 Phone: (405) 360-3045 Fax: (713) 537-0318 ---------------------------------------------------------------- E. REXX and ANSI The American National Standards Institute (ANSI) sets national standards for various things in the United States, including programming languages. The X3J18 REXX Standards Committee is currently defining a formal standard for the REXX language, using Mike Cowlishaw's book as its base document. The Committee meets 3 or 4 times a year and holds ongoing discussions throughout the year by electronic mail. Members of X3J18 are mostly REXX implementors, but anyone can participate. The Committee intends to release a draft standard next year. More information can be had from the vice-chair, Neil Milsted at nfnm@wrkgrp.com. Note that public ANSI documents relating to X3J18 can be had using the LISTSERV service at PSUVM on BITNET or by Gopher to gopher.pvv.unit.no on the Internet. ---------------------------------------------------------------- F. The REXX Language Association The REXX Language Association is an independent organization dedicated to promoting the use of the REXX programming language. Activities of the RexxLA include: -- Maintaining an electronic mail server where members share information. -- Distributing a quarterly newsletter. -- Providing electronic resources for access to language expertise, hints and tips, example programs, product sources, and other valuable information. -- Developing resource guides, both printed and electronic, for publications, products, training and language experts. -- Developing educational, guest speaker, and publicity programs to promote the use of REXX. -- Participating in the work of standards bodies. -- Promoting integration of REXX into all operating systems and as the common scripting language for a wide array of software. -- Cooperating with the REXX Symposium in providing an annual conference forum. Join today and start reaping the benefits available from an international consortium of individuals, corporations, vendors, authors and experts. For more information, contact the REXX Language Association by mail or fax: RexxLA Membership 6300 North River Road, Suite 501 Rosemont, Illinois 60018 Fax: (708) 696-2277 Or by electronic mail at rexxla@wrkgrp.com. ---------------------------------------------------------------- G. The REXX Symposium The REXX Symposium is an annual conference devoted to REXX, attended both by users and vendors, held at the beginning of May. It is sponsored by the Stanford Linear Accelerator, with the cooperation of the RexxLA. The 1995 conference is still being planned. ---------------------------------------------------------------- H. REXX Bibliography Mike Cowlishaw and Linda Green have kindly provided the following partial bibliography of REXX books. The REXX Language -- M.F. Cowlishaw English: ISBN 0-13-780735-X Prentice-Hall, 1985 ISBN 0-13-780651-5 2nd edition, 1990 German: ISBN 3-446-15195-8 Carl Hanser Verlag, 1988 ISBN 0-13-780784-8 P-H International, 1988 Japanese: ISBN 4-7649-0136-6 Kindai-kagaku-sha, 1988 The REXX Reference Summary Handbook -- Dick Goran ISBN 0-9639854-1-8, CFS Nevada Inc., 1994 Modern Programming Using REXX -- Robert P. O'Hara and David R. Gomberg English: ISBN 0-13-597311-2 Prentice-Hall, 1985 ISBN 0-13-579329-5 2nd edition, 1988 REXX in the TSO Environment -- Gabriel F. Gargiulo ISBN 0-89435-354-3, QED Information Systems Inc. 320 pages, 1990 Using OS/2 REXX -- Gabriel F. Gargiulo ISBN 0-894-35449-3, QED Publishing Group Practical Usage of REXX -- Anthony S. Rudd ISBN 0-13-682790-X, Ellis Horwood (Simon & Schuster), 1990 Using ARexx on the Amiga -- Chris Zamara and Nick Sullivan ISBN 1-55755-114-6, Abacus Books, 1991 The REXX Handbook -- Edited by Gabe Goldberg and Phil Smith III ISBN 0-07-023682-8, McGraw-Hill, 1991 Programming in REXX -- Charles Daney ISBN 0-07-015305-1, McGraw-Hill, 1992 Command Language Cookbook -- Hallett German ISBN 0-442-00801-5, Van Nostrand Reinhold, 1992 OS/2 2.1 REXX Handbook -- Hallett German ISBN 0-442-01734-0, Van Nostrand Reinhold, 1994 OS/2 REXX: From Bark to Byte -- Inter. Technical Supp. Org. (IBM) IBM Document Number GG24-4199-00, 1993 REXX: Advanced Techniques for Programmers -- Peter Kiesel ISBN 0-07-034600-3, McGraw Hill, 1992 REXX Tools and Techniques -- Barry Nirmal ISBN 0-89435-417-5, QED Publishing Group, 1993 The ARexx Cookbook -- Merrill Callaway ISBN 0-96-327730-8, Whitestone, 1992 Writing OS/2 REXX Programs -- Ronny Richardson ISBN 0-07-052372, McGraw Hill, 1992 Writing VX-REXX Programs -- Ronny Richardson ISBN 0-07-9111911-5, McGraw Hill, 1994 ===================================================================== I. Common REXX Coding Errors The following list of common REXX coding errors is derived from a list included in the online documentation for Watcom VX-REXX. ----------------------------------------------------------------- 1. Blank space where it does not belong In REXX expressions, blank space is interpreted as an implicit concatenation operator -- the terms are concatenated with a blank in between. As a result, REXX will interpret many mistyped statements as an expression involving the blank concatenation operator. For example, inserting a blank after a function name in a function call changes the meaning of the expression from: text_upper = translate( text ) to: text_upper = "TRANSLATE" ³³ " " ³³ text Blank space also plays a special role in the PARSE instruction. Compare the following: parse arg a b c parse arg a, b, c The first line parses the first argument passed to the routine into three parts, while the second line sets the three variables to the value of the first three arguments passed to the routine. ----------------------------------------------------------------- 2. Function calls versus the CALL statement When you call a routine that returns a result, you must enclose the parameters in parentheses: text = VRGet( "EF_1", "Value" ) Always assign the value of a function to a variable, or use the CALL statement as described below. Otherwise REXX will pass the return value to the default host environment, leading to strange and possibly damaging behaviour on some systems. If you are calling a routine that does not return a value, or you wish to ignore the return value, you should use the CALL instruction: call VRSet "EF_1", "BackColor", "Blue" Note that there is no comma between the name of the routine and the first parameter. Note also that parentheses are not used when using the CALL instruction. ----------------------------------------------------------------- 3. Line continuation The comma is used in REXX to split clauses across two or more lines. For example: call foo a, b, c can also be written as: call foo a, , b, , c It's easy to forget the second comma when breaking a line in the middle of a function parameter list. ----------------------------------------------------------------- 4. Omitted arguments REXX allows arguments to be omitted. Be careful not to omit arguments by accident, such as including an unnecessary comma: call foo , a, b, c ----------------------------------------------------------------- 5. Undefined variables It is not a syntax error to use undefined variables in REXX. Undefined variables are defined to have their own name translated to uppercase as their value. As a result it is often difficult to find programming errors that are a result of using undefined variables. Some tips: * Add a SIGNAL ON NOVALUE statement to the main section of your programs. This will cause the system to issue a syntax error if you use an undefined variable. * Be careful to include the period when referring to stems. The variables "A" and "A." are unrelated. * Misspelled commands will often be interpreted as undefined variables. The line: sy 'hello' (which should be "say 'hello'") will be interpreted as: "SY" ³³ " " ³³ 'hello' and will be send to the default command host for execution. ----------------------------------------------------------------- 6. Using expressions in the tail of a compound symbol The tail of a compound symbol can only be a simple variable, as in: ok = A.I Literals are not allowed. For example, the following is interpreted as a concatenation between "A." and "name": bad = A."name" Expressions are also not allowed. You must first assign the value of the expression to a symbol and then use that symbol: J = I - 1 ok = A.J ===================================================================== G. Frequently Asked Questions ----------------------------------------------------------- 1. Is REXX better than ? Short answer: Yes. No. Maybe. Does it matter? Long answer: This question wastes a lot of bandwidth in comp.lang.rexx and other newsgroups. Every language has its good points and its bad points. Some people love REXX, some people hate it. Use a language that suits your needs. ----------------------------------------------------------- 2. Why does my OS/2 REXX program run more quickly the second time? When you run a REXX CMD file for the first time, a tokenized version will be stored on disk using the OS/2 extended file attributes. (You can see how big the tokenized version is by using the /N option on the DIR command.) If a tokenized version exists AND the file has not been modified, CMD.EXE will use the tokenized version instead of parsing the source. Note that there is a 64K limit on the size of an extended attribute entry, so very large REXX programs do not benefit from this automatic tokenization. ----------------------------------------------------------- 3. How can I return multiple values from a function? REXX does not provide any support for returning more than a single value from a function. If you wish to return multiple values , you must devise an alternate scheme. A simple solution is to concatenate the values together into a single string and on return from the function use the PARSE instruction or the various string functions to split the string back into its elements. Don't forget that you can use non-printable characters (such as '00'x) to separate the data -- REXX will correctly handle such strings. There may also be other alternatives available to you if you are using an external function library that lets you store data in separate memory pools or in disk files. ----------------------------------------------------------- 4. Why does linein, lineout, charin or charout fail? Most versions of REXX (ARexx is an exception) use implicit file opening. That is, each time you reference a file in a LINEIN, LINEOUT, CHARIN or CHAROUT function, REXX will open the file for reading or writing if the file is not already open. However, some operating systems like DOS and OS/2 impose limits on the number of files that can be open simultaneously, usually around 20 or so. After the limit has been reached, any further attempts to open another file will fail. That is why it is always good practice to close a file when you're done with it. In OS/2 this is done using the STREAM function, as follows: call stream "c:\foo.out", "command", "close" The STREAM function can also be used to open files, query their sizes and seek into the file. Consult your REXX documentation for specific instructions for your interpreter. ----------------------------------------------------------- 5. How do I iterate over all the tails in a stem variable? One of the features REXX lacks is a function to return a list of defined tails. There are external libraries that provide functions to do so, but if that is not an option then the only solution is to maintain your own list of tails in a string and use the PARSE instruction or the WORDS function to traverse the list. ----------------------------------------------------------- 6. How do I REXX-enable my application? REXX-enabling an application means being able to run REXX macros within an application. This information is very system-specific, so the best place to start is with the documentation provided with the REXX interpreter. For OS/2, there are several sources of information. The most basic information is found in the OS/2 Toolkit, which includes the REXXSAA.H header file and the REXX Reference online document. The REXX Report (see above) includes a couple of articles on the subject. Sample source code comes with the OS/2 Toolkit and is also available on rexx.uwaterloo.ca in the directory /pub/os2/vxrexx as VX-REXX Tech Notes #1 and #7 (vxtech01.zip, vxtech07.zip -- neither tech note requires that you own VX-REXX). OS/2 technical conferences such as ColoradOS/2 or the IBM Technical Interchanges often includes sessions on this topic. For ARexx, a book was available from Commodore, but with the latter's demise it is unclear whether the book is still available. ----------------------------------------------------------- 7. How do I do inter-process communication in REXX? Again, this is system-specific. The ARexx interpreter is built on a messaging model, making it very simple to do inter-process communication, but the OS/2 REXX interpreter has no such features, though in some cases queues can be used to achieve the desired effect. ----------------------------------------------------------- 8. How do I use global variables in my REXX programs? The scope of variables is controlled by the PROCEDURE instruction. If a routine is declared with the PROCEDURE instruction, only those variables exposed using the EXPOSE instruction are available to the routine. If no PROCEDURE instruction is used, all of the caller's variables are available to the callee. Here is a simple example: a = 10 b = 20 call first call second call third exit first: say "first -- a is" a "b is" b return second: procedure say "second -- a is" a "b is" b return third: procedure expose a say "third -- a is" a "b is" b b = 30 call first return Running this program yields the following output: first -- a is 10 b is 20 second -- a is A b is B third -- a is 10 b is B first -- a is 10 b is 30 Use the PROCEDURE instruction to keep variables local to a procedure, using EXPOSE to explicitly expose any "global" variables. The only catch is that you have to make sure you expose the variables inside every procedure. One way to define and use global variables is to use a stem called "Globals." and define all your procedures like this: Foo: procedure expose Globals. Then at the top of you program initialize the Globals stem and assign appropriate values to your global variables: Globals. = '' Globals.!NeedToSave = 0 Globals.!TmpDir = "D:\TMP" The tail names in this example are all prefixed with '!', though you could also use an underscore ('_'). This is just a convention used to avoid this kind of problem: Globals.TmpDir = "D:\TMP" call Foo say Globals.TmpDir exit Foo: procedure expose Globals. tmpdir = "foo" Globals.TmpDir = tmpdir return It's a subtle bug that has to do with how REXX interprets stem tails. * * Package Files: * 2400-Baud Bin/ * File Id Description Versn Date # Bytes Tran Mins Text Complete File Id * +---------------+ +---------------------------------+ +----+ +------+ +-----+ +-------+ +--+ +------------------------+ * REXXFAQ.DSC REXXFAQ Package Description 08/16/94 30961 3.4 T REXXFAQ.DSC If you have any neat REXX programs, please upload them to area 18 of the WoodMeister or send them to me via Internet at USDSSKZS@IBMMAIL.COM. If you work for the State of Missouri and have access to DISOSS, you can send them to POOLMWV at DSSHOST. Humor I've just got too much good stuff this month. I keep saving these humorous tidbits until it piles up and I just have to clean it out. Here's a way to tell what kind of a computer you're dealing with: What kind of computer is it? If you push it and it doesn't move, its a mainframe. If you push it and it does move, its a minicomputer. If you can pick it up, its a PC. Alternatively, you can tell by the signs affixed: "Do not enter" "Do not touch" "Do not steal" Here's one Phillip posted on the WoodMeister that he found on the Internet: A pilot is flying a small, single-engine, charter plane with a couple of really important execs on board into Seattl airport. There is fog so thick that visability is 10m, and his instruments are out. He circles looking for a landmark and after an hour, he is low on fuel and his passengers are *very* nervous. At last, through a small opening in the fog he sees a tall building with one guy working alone on the fifth floor. Circling, the pilot banks and shouts through his open window: "Hi, where am I?" The solitary office worker replies: "You're in an airplane." The pilot executes a swift 275 degree turn and executes a perfect blind landing on the runway five miles away. Just as the plane stops, the engines cough and die from lack of fuel. The stunned passengers ask the pilot how he did it. "Simple," replies the pilot, "I asked the guy in that building a simple question. The answer he gave me was 100 percent correct but absolutely useless; therefore, that must be Microsoft's support office and from there the airport is just 5 miles away on a course of 87 degrees!" Any questions? Here's another one that's been making the rounds of the Internet that I've been holding. One of the columnists in InfoWorld printed the first part of it, so I figured I'd better get the rest out the door: "Star Trek Lost Episodes" transcript. "Mr. LaForge, have you had any success with your attempts at finding a weakness in the Borg? And Mr. Data, have you been able to access their command pathways?" "Yes, Captain. In fact, we found the answer by searching through our archives on late Twentieth-century computing technology.(Geordi presses a key, and a logo appears on the computer screen.) (looking puzzled) "What the hell is 'Microsoft'?" (turning to answer) "Allow me to explain. We will send this program, for some reason called 'Windows', through the Borg command pathways. Once inside their root command unit, it will begin consuming system resources at an unstoppable rate." "But the Borg have the ability to adapt. Won't they alter their processing systems to increase their storage capacity?" "Yes, Captain. But when 'Windows' detects this, it creates a new version of itself known as an 'upgrade'. The use of resources increases exponentially with each iteration. The Borg will not be able to adapt quickly enough. Eventually all of their processing ability will be taken over and none will be available for their normal operational functions." "Excellent work. This is even better than that 'unsolvable geometric shape' idea." (15 Minutes Later) "Captain, We have successfully installed the 'Windows' in the command unit and as expected it immediately consumed 85% of all resources. We however have not received any confirmation of the expected 'upgrade'." "Our scanners have picked up an increase in Borg storage and CPU capacity to compensate, but we still have no indication of an 'upgrade' to compensate for their increase." "Data, scan the history banks again and determine if there is something we have missed." "Sir, I believe there is a reason for the failure in the 'upgrade'. Appearently the Borg have circumvented that part of the plan by not sending in their registration cards. "Captain we have no choice. Requesting permission to begin emergency escape sequence 3F . . ." (excited) "Wait, Captain; I just detected their CPU capacity has suddenly dropped to 0% !" "Data, what do your scanners show?" "Appearently the Borg have found the internal 'Windows' module named 'Solitaire' and it has used up all the CPU capacity." "Lets wait and see how long this 'solitaire' can reduce their functionality." (Two Hours Pass) "As expected the Borg are attempting to re-engineer to compensate for increased CPU and storage demands, but each time they successfully increase resources I have setup our closest deep space monitor beacon to transmit more 'windows' modules from something called the 'Microsoft fun-pack'. "How much time will that buy us ?" "Current Borg solution rates allow me to predicate an interest time span of 6 more hours." "Captain, another vessel has entered our sector." "Identify." "It appears to have markings very similar to the 'Microsoft' logo". Over the speakers) "THIS IS ADMIRAL BILL GATES OF THE MICROSOFT FLAGSHIP MONOPOLY. WE HAVE POSITIVE CONFIRMATION OF UNREGISTERED SOFTWARE IN THIS SECTOR. SURRENDER ALL ASSETS AND WE CAN AVOID ANY TROUBLE. YOU HAVE 10 SECONDS." "The alien ship has just opened its forward hatches and released thousands of humanoid shaped objects." "Magnify forward viewer on the alien craft" "Good God captain! Those are humans floating straight toward the Borg ship with no life support suits ! How can they survive the tortures of deep space ?!" "I don't believe that those are humans sir, if you will look closer I believe you will see that they are carrying something recognized by twenty-first century man as doe skin leather briefcases, and wearing Armani suits" (horrified) "Lawyers !!" "It can't be. All the Lawyers were rounded up and sent hurtling into the sun in 2017 during the Great Awakening." "True, but appearently some must have survived." "They have surrounded the Borg ship and are covering it with all types of papers." "I believe that is known in ancient venacular as 'red tape' it often proves fatal." "They're tearing the Borg to pieces !" "Turn off the monitors. I can't stand to watch, not even the Borg deserve that." OS/2 Tips 'N' Techniques Here are a couple of unusual OS/2 Tips: 1. Open your config.sys in the Enhanced Editor (EPM config.sys). 2. Block the entire file with the mouse, then hit 'Ctrl+I'. 3. Type 'lowercase'. This will change your entire config.sys to lowercase. When you install new programs, they will make their changes in UPPERCASE, and be easy to spot! ***CAUTION!*** Make sure you make a backup of your CONFIG.SYS before doing *anything*, just in case something bad happens. Also note that a few programs could *require* their parameters to be in upper case. Converting them to lower case could cause them to fail. OK, here's another one. You can run a program from the desktop by pressing CTRL+ALT+SHIFT. Just rename the program to AAAAA.EXE and put it in the \OS2\BITMAP directory. It also requires a small file called AAAAA.MET in the same directory, which can be created by typing "echo x > AAAAA.MET". Why does this work? This is a leftover from the days of OS/2 2.0 in which there was a "credits" screen. Rebound -- Off the boards After about a year of sticking to GA-level code, I decided to once again jump onto the OS/2 beta team bandwagon on my machine at home. All I can say is WOW! The new Warp II beta is looking GOOD! Talk about faster! Anyway, when I installed Warp II, I decided to rearrange my drives and partitions. Because of this, I had to really weed out a lot of older files. From what I could tell, no one was using any of these files anyway (mainly old Win utils and DOS apps). In addition, because my drive letters have changed, I'm frantically trying to squash bugs in the BBS config. Please be patient while I smooth things out. The good thing is that WARP II IS AVAILABLE ON THE OWM! I've created a temporary area (97) to house the diskette images. Byte count restrictions don't apply, but time limits do. Please make use of the timebank if you wish to extend your d/l time for these files. Also, these are in IBM's new XDF format (1.88M diskettes), so there are some device drivers you'll need to load before running the new LOADDSKF. All drivers and LOADDSKF are in the file XDF.ZIP in area 97. Please see the news bulletin for more info on how to install these drivers. And as usual, the OWM will be the place for OS/2 utils, apps, drivers, fixes and CSDs. As I get them, you'll get them. See y'all at the next MMOUG meeting... The OS/2 Woodmeister (314) 446-0016 (Columbia, MO) (314) 634-0393 (Jefferson City Node) FIDO Node 1:289/27 1200/2400/9600/14400 D/S Threads "Threads" are a collection of posts that may be of interest to individual readers. MESA - An OpenDoc Spreadsheet for OS/2 Coming Soon from Athena Design August 11, 1994 Athena Design, Inc. will soon be shipping a native OS/2* version of its award winning spreadsheet, Mesa**. Mesa 2 for OS/2 embraces IBM's OpenDoc strategy by providing the first OpenDoc spreadsheet in the world. OpenDoc, designed to run software across multiple operating systems from Macintosh to Windows to OS/2 to Unix, is an emerging industry standard supported by IBM, Apple, WordPerfect, Novell, Lotus, Borland, Oracle, Taligent, and now Athena Design. This full function OS/2 spreadsheet will clearly demonstrate OS/2's superior performance as a desktop operating system with its use of SOM, OpenDoc, multi-threading and the object oriented user interface. In addition, Mesa 2 includes MOLI**, the Mesa Object Library Interface so that customers can integrate Mesa objects with their own line of business applications. Scheduled for release at the end of September, Mesa 2 will include REXX compatibility. Users will be able to include REXX scripts in workbooks to automate routine procedures, build applications and drive the Mesa spreadsheet. In their REXX programs, users will be able to utilize Athena Design's special MScriptd functions to access Mesa's features and functionality. "OS/2 users know REXX and they can build fantastic applications using it," says Athena Design, Inc. President David Pollak. "We simply leveraged the power and familiarity of REXX into Mesa 2. Our beta testers are psyched about it!" Beta testers are not the only ones who are "psyched" about the forthcoming product. Many people feel that the new software will spark more interest in OS/2's object oriented technology. "The Mesa 2 spreadsheet component is noteworthy because it is a high-utility, high-quality software component that can be exploited in a variety of applications. We are entering a new era in software development as innovative developers can focus their skills on high-value areas and profit quickly without having to build and market monolithic applications that have more features than most people need." Cliff Reeves, director of object enabling technology at IBM's Personal Software Products Division "I am delighted to see the value that Athena Design is creating for their customers through the use of OS/2's native, object-oriented technology. Developing applications from object-oriented components will likely be the wave of the future for application development. Athena Design has caught that wave early and their customers should be the beneficiaries." Dave Harrington, director of software development programs at IBM's Personal Software Products Division. "Athena Design's Mesa 2 OpenDoc spreadsheet part is an excellent example of how quickly developers are adopting the OpenDoc philosophy of componentized applications and object-oriented environments." Jed Harris, executive director of Component Integration Laboratories (CI Labs). Since its public debut at Object World in San Francisco last month, Mesa 2 and Athena Design are getting a lot of attention in the press. The product launch includes a special $99 introductory price starting August 15th. This offer will be good for a limited time only. The specially priced package comes with 90 days of technical support via electronic mail or fax, and a discount on future upgrades. Users can take advantage of the special introductory offer after August 15th by calling 1-800-315-MESA. For more information, contact the company directly. Phone: 617-734-6372 FAX: 617-734-1130 e-mail: info@athena.com OS/2 LAN Server 4.0 August 22, 1994 IBM cleans up LAN Server's act - Version 4.0 is poised to gain broader appeal. InfoWorld via First! : IBM's LAN Server 4.0, due to be released sometime in the fourth quarter of 1994, takes the seasoned network operating system out of the dark ages and into the future. With the addition of its object-oriented administration tools, peer-to-peer services, native TCP/IP support, performance enhancements, and a long list of other much-needed improvements, LAN Server should gain a broader appeal in the enterprise. LAN Server used to rank among the most cryptic and inflexible of the network operating systems. Take the older LAN Server 3.0 installation program, please! It was anything but intuitive, and it supported only a paltry handful 1f network cards. The new LAN Server 4.0 installation program is much improved and includes an easy-install option that comes close to providing one-button installation. It will try to sniff out your installed network cards and auto-configure them. The beta version I tested recognized my SMC Elite16 and configured it properly on the server but not on the client. IBM plans to support 70 percent of industry-standard Ethernet cards and 90 percent of TokenRing cards by the time 4.0 ships. IBM takes an even stronger graphical approach to LAN administration than you'll find in the easy-to-administer Windows NT Advanced Server. There are a few notable kinks in the way the administration tools work, but they are otherwise so well crafted that they threaten to ruin IBM's reputation for creating inscrutable software that seems purposely designed to remain aloof from its users. The new tools are so easy to master, in fact, that I was able to install OS/2 2.11 and LAN Server, configure modems, printers, applications, and disk resources, and also make them available to various groups and users, all in a leisurely afternoon. With the older version of LAN Server, it took that long just to figure out where to start reading the manuals. The primary reason it was so easy to configure my installation of LAN Server is that the GUI tools are a logical extension of the object-oriented OS/2 Workplace Shell. You create a group, user, or resource (such as a disk directory, application, modem, or printer), by tearing off, dragging, and dropping a template for the object you want to create. If you want to grant a user access to a directory on your server, you drag the resource object for that directory to the icon for that user. To make it available to a group of users, you drag the object to the group. Set the access rights, tell LAN Server what drive letter you want to map for the user, and you're done. You can use the administration tools to define resource objects from any server within or across domains and use the drag-and-drop features to make them available to users. The beauty of this is that you can physically relocate directory resources, applications, and physical devices without your users ever having to know that the configuration has changed. This degree of insulation from the server isn't new to LAN Server, but the sophistication of the administration tools make the process more accessible. LAN Server provides other methods besides the GUI tools for managing resources. OS/2 Workplace Shell objects, such as files and directories, all have menus that you can activate by clicking the right mouse button on the object. LAN Server adds selections to these menus that make it possible to directly administer any shareable resource you can get to from the desktop. You can still manage resources at the command line, too, and automate lengthy and complex tasks with a Rexx script and LAN Server 32-bit API calls. This last method is useful in very large installations where a GUI approch to network management would simply bog down the administrator. FOLLOWING PROTOCOL. You can now use TCP/IP as your native LAN Server protocol (more specifically, NetBIOS over TCP/IP). The TCP/IP support is noticeably faster. IBM claims to have achieved a 200 percent improvement with that protocol. It also claims that NetBIOS over TCP/IP runs within 30 percent of NetBEUI/NetBIOS performance. LAN Server 4.0 includes a GUI tuning tool. You describe your network configuration by filling out a settings notebook, and the tool makes recommendations on how you can run your system faster. Other performance claims include Pentium exploitation and a 28 percent improvement in DOS/Windows client performance, with a protected-mode redirector that releases more memory to DOS (about 600KB for a NetBIOS client). IBM claims that LAN Server 4.0 will run on one processor as fast as Windows NT will run on four, all other things being equal. Nevertheless, LAN Server 4.0 supports the new symmetric multiprocessing (SMP) version of OS/2, which adds some scalability to the product, particularly if you're using CPU-intensive client/server applications such as Lotus Development Corp.'s Notes or a database server. We'll put it through the wringer when we have a shipping product and let you know. Judging from the feature set, IBM is stepping up its efforts to make LAN Server coexist with or replace as many existing network operating systems as possible. IBM will make freely available -- on its BBS and by anonymous File Transfer Protocol (FTP) -- a utility that migrates users, groups, log-on assignments, and files from a NetWare 2.2, 3.11, or 3.12 server to LAN Server 3.0 or 4.0. LAN Server clients can easily connect to and use resources on Windows NT Advanced Server, and NT and Windows for Workgroup clients can access LAN Server as well. Just as in prior versions, the LAN Server OS/2 client coexists nicely with NetWare requester and Network File Service (NFS). For mixed platforms such as these, IBM plans to include a utility called the Network Signon Coordinator. It lets you log on just once, and it will connect you to whatever mix of LAN operating systems you have on the network. It will also let you synchronize your password across multiple LAN Server domains. It is apparent that IBM has seen the writing on the wall, and it says "Windows NT Advanced Server." The expression "writing on the wall," by the way, comes from the biblical Daniel, who interpreted God's graffiti to mean King Belshazzar's days were numbered. By "numbered" he evidently meant one binary digit -- the ill-fated king was slain that night. Fortunately for IBM, there is more time and opportunity to change the fate of LAN Server. And from the looks of this LAN Server 4.0 beta, it seems IBM is using the time to rise to the challenge. IBM is predicting an October ship date, but we found just enough bugs and missing features that we wouldn't be surprised if it shipped at year's end. Pricing has not been set. IBM, in Austin, Texas, can be reached at (512) 838-7880. Nicholas Petreley is executive editor of Reviews & Testing. New feature highlights: o Easy installation o Expanded network adapter support o Peer-to-peer capability o Object-oriented GUI administration tools o Intuitive back-end management tools o NetBIOS over TCP/IP native support o Pentium optimization o OS/2 SMP support o Easy performance tuning o Expanded interoperability 08-21-94 at 16:33 EDT, Copyright 1994, InfoWorld, File: x0821306.9di David Barnes On Tour: Desperately Seeking Celebrities (Ed. note: OK, the original just said "Seeking Celebrities", but I couldn't help but think of that movie Madonna was in, "Desperately Seeking Susan". Although I liked Roseanne Arquette a lot better than Madonna) IBM's very own David Barnes is about to embark on a tour of the world He is looking for celebrities or interesting people doing interesting things with OS/2, so that he can meet and talk with them. He is very much interested in 'newsworthy OS/2 items' and is asking for your help in identifying some people for him to chat with. In his words 'any country' is fair game. So, if you have anyone that fits this bill, please send me their names and some way of contacting them via EMAIL PLEASE. I know Howard Stern's name will come up, so let's assume that one is already on the list. Vicci Conway Internet: vicci@vnet.ibm.com CompuServe: 76711,1123 IBM to Appear On New Cable TV Program August 24, 1994 IBM will make it's first appearance this coming weekend on a new Cable TV series by Ziff-Davis and Intelligent Electronics aimed at the home market. The series includes three programs, "The Personal Computing Show" and "The Computer Outlet" (a shopping program) which aired for the first time last weekend, and "PC Update" which will make its debut in October. Featured will be a shortened version of the OS/2 for Windows video by the incomparable David Barnes, leading into "The Computer Outlet" where viewers will be given the opportunity to call an 800 number to order OS/2 for Windows at the new low price of $24.95. Viewers will also be given information regarding where they can purchase the product locally. The producers of the show are working to have local dealer tie-ins in all leading local markets. The IBM segment will air five times during the following scheduled programs: :lines align=left. Saturday, August 27, 7-8 a.m. EDT - The Sci-Fi Channel Saturday, August 27, 2-3 p.m. EDT - CNBC Saturday, August 27, 9-10 p.m. EDT - America's Talking (NBC Cable) Tuesday, August 30, 10-11 p.m. EDT - Jones Computer Network Thursday, Sept. 1, 6-7 a.m. EDT - Lifetime Network :elines. IBM will be participating in this new Cable TV series as a test for the next 8 weeks, featuring different products and videos from Personal software Products, the IBM Personal Computer Company and Eduquest. The Frugal Hacker Bob Stephan hacker n - someone who really loves computers and who wants to push them to the limit. Hackers have a healthy sense of curiosity: they try doorknobs just to see if they are locked, and they tinker with a piece of equipment until it's "just right." The computer revolution itself is a result of hackers. (from "Computer Virus Myths" by Rob Rosenberger with Ross M. Greenburg.) Highway Courtesy. With more and more computer users getting modems and going on-line, this would be a good time to review some of the common courtesies that should be observed. For a novice, going on-line the first few times can be intimidating. The more you know about what to expect and how to behave, the less intimidating it will be. Although there are few hard and fast rules, knowing and observing some of the common-sense standards will make the experience not only easier for you, but also more enjoyable for those you come in contact with. Lurk. Lurking refers to reading the messages and bulletins you see on-line without replying or posting any messages yourself. Whenever you try out a new bulletin board system (BBS) or join a new conference, you should just lurk for a period of time to get the feel of the new environment that you have entered. My general recommendation is that a newcomer should lurk for about a week, or if you don't participate daily, for about the first 5-7 times you are on the system or conference. I have seen other recommendations that suggest a full month, so the longer you can hold yourself back the better. There are few things that are more annoying to people who have been participating in a conference than to have a newcomer jump in with both feet with totally irrelevant or redundant comments and questions. While newcomers are usually very welcome, they will fit in much better by appearing to know what topics are currently under discussion, what the rules of participation are, what questions have recently been answered, and other pertinent information that can easily be picked up by watching the flow of traffic for a few days. You can speed up this familiarization process by reading the backlog of messages that will be stored for a period of time on the BBS and also looking in the file directories for files such as FAQs (Frequently Asked Questions). By properly getting yourself up to speed, you will get much more out of the conference and be a more valuable participant. Don't Overquote. When replying to a message it is common practice to quote a few relevant lines from the message you are replying to. This sets the scene and reminds the person who receives your reply which of his comments you are referring to. It also provides others who may not have seen the original message an idea of the subject matter. While judicious quoting is courteous, helpful, and encouraged, overquoting is rude, annoying and wasteful of people's time and computer resources. Select Meaningful Subjects. If you want to start a new thread, such as by asking a question, give a few moments of thought to the subject line that you apply to your message. Stupid subject lines such as just "Comment" or "Question" not only are annoying, they can be self-defeating. Regular BBS users may have to scan hundreds or even thousands of messages every day and often do not take the time to read a message with an uninteresting (to them) subject. If you want to attract relevant replies, make your subject terse and use meaningful key words. If the message is worth writing, it is worth having a meaningful subject line. Don't Chit Chat. Remember that in a popular conference your messages could be seen by maybe millions of people. 999,999 out of 1 million of them will not be interested in a personal message to Mary or Joe. When your messaging gets to the level that it is of interest only to the intended recipient, find some method of e-mail to send it instead of posting it publicly on the bulletin board. Do Your Own Basic Research. Don't ask questions that can be answered by picking up any dictionary or some other handy reference book. Ignorance on a topic is certainly not a disgrace, but not knowing enough to pick up a dictionary to find the answer to a basic question does very little for your image on-line. Spelling And Grammar. This is a touchy subject, but there is something about participating in on-line communication that causes problems in this area for me and many others. I'm usually quite careful about spelling and grammar. I realize that my spelling ability is decreasing with age and I have to look up words that I thought I used to know how to spell, but when typing on-line I make mistakes that I would never make otherwise. I have given this some thought and I believe it is because on-line communication is more like talking than writing. When talking we might say "wanna" when we would spell it "want to" if written out. When talking we make no distinction in pronunciation of homonyms such as "your" and "you're", but if we wanted to write "your bananas" we certainly wouldn't want to spell it "you're bananas". But for some odd reason when typing on-line I sometimes catch my fingers saying "your" when I mean "you're" and other stupid grammar mistakes such as "its" for "it's" or vice versa. Mistakes such as the above are commonly seen in on-line communications, and many people would not even notice them. However, I really don't want the people who do notice them to think that I don't know any better. That is just one of the reasons for my next recommendation. Get A Mail Reader. The best invention ever for electronic communications was the off-line mail reader. There are many of them available. most are shareware and are very reasonable, and there is at least one that is completely free known as SLMR. There is no excuse not to have one, and once you get used to using one you will never want to go back to typing while connected on-line. A mail reader lets you read and reply to messages on your own computer while you are not connected to the service running up connect charges. It lets you process your mail at a more leisurely, relaxed pace which lets you give it more thought and attention. If the on-line services you use charge by the minute, a mail reader will save you $$$ in connect charges. Most of the large services like CompuServe, GENIE, Prodigy, and America On Line have either optional or built-in mail readers such as Aladdin for GENIE or Mail Manager for Prodigy. You can have the same conveniences on any BBS that supports mail packets, which is just about all of them now. Some mail readers even come complete with spelling checkers, but as far as I know you are still on your own where grammar is concerned. I log on to at least four services everyday, and some days more or multiple times. On many days I pick up over 1,000 messages that I scan off-line to find those that are of interest to me. I probably spend no more than 15-20 minutes total per day connected to the services, and I seldom touch the keyboard while connected on-line. It is all automated. If you are interested in the details of doing things like this I suggest you attend the MBUG-PC Communications SIG mentioned elsewhere in this newsletter. The mail reader I use has another extremely useful feature_virtual conferences. One of my interests is genealogy and there are many hundreds of messages every day in the genealogy conferences I monitor. It would take me an inordinate amount of time to scan through the bodies of all those messages to find items of interest, so I let my mail reader do it for me. I have configured the mail reader so it knows which surnames and locations are of interest to me. It automatically scans all the genealogy conferences and pulls out any message that contains one of those key words and puts them all in a virtual conference. I know that when I open that virtual conference for reading, every message will contain at least one key word of interest to me. It sure saves me hours of time. I see that I have wandered off the topic of courtesy, but it is all related to making the most of your electronic communications. We certainly have not exhausted the subject and since it is timely with all the discussion about the so-called Information Super Highway, we will probably pick up on it again. In the meantime, drop in on Jim Robeson's excellent Communications SIG, and if you still have questions after that send them to me at one of the below locations. I'll be glad to reply personally to all messages sent to me on-line. Bob Stephan welcomes comments and questions that The Frugal Hacker can respond to. He can be reached on Internet (bob.stephan@nitelog.com), NITELOG (408-655-1096), CRICKET (408-373-3773), Compu$erve (72357,2276), Plodigy (FNGC05A), or snail mail at the MBUG-PC address. Monterey Bay Users Group - PC 177 Webster St. Suite A 354 Monterey, CA 93940 Next MMOUG Meeting The next meeting of the Mid-Missouri OS/2 Users Group will be held on Wednesday, September 21, 1994 at 4:00 pm. Currently we are planning to have a representative from Lotus demonstrate the newest version of the SmartSuite for OS/2. The meeeting will be held at: Department of Social Services 1621 E. Elm Jefferson City, MO 65101 314-741-4198 From Columbia: Highway 63 South to Highway 54 West (across the bridge) to (be careful, this is still a dangerous intersection) Highway 50 East. Go through lights at MO. Blvd, Broadway, Jefferson, Madison and Monroe Take the CLARK AVENUE exit off of Highway 50. Turn right onto Clark Ave, THEN make an almost immediate left onto ELM Street. Take Elm Street to IBM. IBM will be on the left. Eastland Highway / Patrol Elm Street McDonalds________ HQ ________________ | DSS\___________/ | |______________________________________________\_______ Highway 50 Clark Ave Exit MMOUG Membership List KENNETH BAILEY 223A MUMFORD HALL UNIVERSITY OF MISSOURI COLUMBIA, MO 65211 SHAWN BOWER 1414 WILSON AVENUE APARTMENT 2 COLUMBIA, MO 65201 Home: 449-1478 Work:445-0106 TED BOWMAN 519 STALCUP STREET COLUMBIA, MO 65203 SCOTT BRODBECK 205 JEFFERSON ST., 11TH FLOOR JEFFERSON CITY, MO 65102 Home: 636-0600 Work:751-2963 BRIAN BROOKS 1001 ROLLINGWOOD DRIVE COLUMBIA, MO 65203 SCOTT BROWN 101 SOUTH 5TH STREET COLUMBIA, MO 65201 Home: 445-0036 Work:882-3576 JAMES CASSTEVENS 1301 OLD 63 S COLUMBIA, MO 65201 Home: 882-9297 Work:443-2133 LYNN CHRISTIE 1606 WESTVIEW JEFFERSON CITY, MO 65109 Home: 635-3818 Work:635-1607 SEAN CURRY PO BOX 180 JEFFERSON CITY, MO 65102 JOYCE DISTLER MO DEPT OF SOCIAL SERVICES-MACSS PROJECT 1655 EAST ELM JEFFERSON CITY, MO 65102 DAVID FINCH 4201 CEDAR RIDGE DRIVE FULTON, MO 65251 SCOTT FOX 1300 ROSEMARY LANE #4 COLUMBIA, MO 65201 Home: 442-7923 Work:882-5300 SHAWN FRAZIER 804 BUSINESS 63 SOUTH #A COLUMBIA, MO 65201 CHRISTOPHER FULCHER ROUTE 1 BOX 41K BOONEVILLE, MO 65233 KRISTI GARRISON 316 RIVERVIEW DRIVE JEFFERSON CITY, MO 65101 DARYL GLASCOCK PO BOX 59 JEFFERSON CITY, MO 65109 Home: 893-5338 Work:751-1428 KEN GRAY 1600 SYLVAN LN COLUMBIA, MO 65202 Home: 474-1612 Work: GENNARRO GRIFFITH 915 W. HIGH ST. JEFFERSON CITY, MO 65109 Home: 636-8650 Work:751-4115 DALE HACKEMEYER 3001 S PROVIDENCE APT 6C COLUMBIA, MO 65203 MICHAEL HAMMOND 1143 SOUTH SUMMIT DRIVE HOLTS SUMMIT, MO 65043 WILLIAM HARPER 1905 OAK CLIFF DRIVE COLUMBIA, MO 65203 Home: 445-2972 Work:886-1335 CHUCK HAYES IBM 101 PARK DE VILLE DRIVE COLUMBIA, MO 65203 ROBERT HIBBS 1019 VEGAS DRIVE COLUMBIA, MO 65203 Home: 445-7273 Work:682-8360 BENJAMIN HOFFMAN 2208 MERLIN JEFFERSON CITY, MO 65101 Home: 634-0342 Work:634-3784 GERRI JEFFERY 301 WEST HIGH ROOM 270 JEFFERSON CITY, MO 65105 Home: 657-2652 Work:751-7889 DARRELL JUNGMEYER 2901 W. TRUMAN BLVD. PO BOX 180 JEFFERSON CITY, MO 65102-0180 Home: 796-3257 Work:751-4115 DIANE KEHL 2605-A MIDWAY STREET JEFFERSON CITY, MO 65101 DENNIS LANE 1204 BRADSHAW AVENUE COLUMBIA, MO 65203-0808 Home: 445-5639 Work:751-5467 MARK LIPARI PO BOX 6500 JEFFERSON CITY, MO 65102 Home: 875-8753 Work:751-7999 GREG LONGAN MO DEPT OF SOCIAL SERVICES-MACSS PROJECT PO BOX 2300 JEFFERSON CITY, MO 65102 MARTY MAA 101 SOUTH 5TH STREET COLUMBIA, MO 65201 STEVE MARING 2701 VAIL DRIVE COLUMBIA, MO 65203-4450 GREG MILLER SHELTER INSURANCE COMPANIES 1817 WEST BROADWAY COLUMBIA, MO 65218 CAROLE MOSELY 615 HOWERTON COURT PO BOX 6500 JEFFERSON CITY, MO 65043 BRIAN OLIGSCHLAEGER 804 SHERWOOD DRIVE JEFFERSON CITY, MO 65109 Home: 893-3224 Work:751-4115 TERI OSTER 905A SPENCER AVENUE COLUMBIA, MO 65203 RONNIE PARKER PO BOX 1805 COLUMBIA, MO 65205 Home: 474-5822 Work:882-9300 GARY POOL 1621 EAST ELM JEFFERSON CITY, MO 65101 Home: 636-3452 Work:751-2983 JAY ROBERTSON PO BOX 6500 JEFFERSON CITY, MO 65102 Home: 893-6048 Work:751-6773 MARCUS ROCHELLE 1900 GRANT LANE COLUMBIA, MO 65203 DAVID SCOTT 909-M SOUTHWEST BLVD. JEFFERSON CITY, MO 65109 Home: 761-1516 Work:634-0308 ROBERT SHELLEY JR. PO BOX 678 127 SOUTH 8TH STREET COLUMBIA, MO 65205 DAYTON SHEPHERD RT 3 BOX 152 CENTRALIA, MO 65240 Home: 876-0263 Work:632-3271 PENNY SHEPHERD 813 LEWIS HALL COLUMBIA, MO 65211 Home: 682-3271 Work:882-9202 PENNY SHEPHERD 813 LEWIS HALL COLUMBIA, MO 65211 Home: 682-3271 Work:882-9202 NEIL SMITH IBM 101 PARK DE VILLE DRIVE COLUMBIA, MO 65203 MARK SPEAKER 900B WINCHESTER DRIVE #3 SEDALIA, MO 65301-2178 WOODY STURGES 1012 COLLEGE PARK DRIVE COLUMBIA, MO 65203-1963 HARVEY SUMMERS ATTORNEY GENERAL'S OFFICE PO BOX 899 JEFFERSON CITY, MO 65102 GREGORY TAYLOR 3819 VILLAGE PARK DRIVE COLUMBIA, MO 65201 Home: 875-2519 Work:882-2131 DENNIS THOMPSON 2304 PRIMROSE DRIVE COLUMBIA, MO 65202 CHARLES TURNER 916 MAPLEWOOD DRIVE COLUMBIA, MO 65203 RANDALL WILKERSON PO BOX 59 JEFFERSON CITY, MO 65104 Home: 782-3573 Work:751-0121 CHARLES WILLIAMS MO DEPT OF SOCIAL SERVICES-MACSS PROJECT PO BOX 2300 JEFFERSON CITY, MO 65102-2300 MIKE WILLIAMS 4700 S PROVIDENCE RD COLUMBIA, MO 65217 PHILLIP WILSON IBM 101 PARK DE VILLE DRIVE COLUMBIA, MO 65203 MICHELLE WILSON IBM 101 PARK DE VILLE DRIVE COLUMBIA, MO 65203 RICK WOLTERS 2901 WEST TRUMAN BLVD P.O. BOX 180 JEFFERESON CITY, MO 65102-0180 Home: 893-7856 Work:751-4115 RANDALL WRIGHT 4810 State Highway Z Centertown, MO 65023 Home: 584-9490 Work:751-8522