[Please note: this is a text only version of the on-line magazine, OS/2 e-Zine!.  OS/2 e-Zine! is a graphical, WWW OS/2 publication and, if possible, should be viewed in its HTML format available on-line at http://www.os2ezine.com/ or zipped for off-line reading.  Some graphically oriented articles have been removed from this document.]

OS/2 e-Zine!		November 1, 1998	volume 3, number 17
--------------------------------------------------------------------------
Copyright 1998		Falcon Networking	ISSN 1203-5696

	"Over Three Quarters of a Million Satisfied Visitors!"


OPINIONS:

  Chris Wenham 
  Chris Wright 
  Guerrilla Tech Support 

REVIEWS:

Warpstock 98 Report

  Ramblers Guide To Warpstock 98 - Dr. Dirk Terrell
  Warpstock Survey Results - Chris Wenham

  First Looks: MainActor 2.06 Beta - Christopher B. Wright
  First Looks And Nifty Gadgets - OS/2 e-Zine! Staff

ARTICLES:

  Automated bullet-proof downloading - Nenad Milenkovic
  Make downloading painless with a fully automated method of re-trying and resuming aborted attempts

  Rexx Newbies, Part III - Chris Wenham
  The third in our series that teaches Rexx to absolute beginners, we show you how to do simple arithmetic in Rexx, and what its useful for besides boring math.


ADMINISTRIVIA:

* How to Subscribe to OS/2 e-Zine! for FREE.
* How YOU can Sponsor OS/2 e-Zine!
* The Sponsors that Make this Issue Possible


Copyright 1998   -   Falcon Networking
ISSN 1203-5696

***********************************

Chris Wenham		-Chris Wenham

Anniversary

Summary: Oh how time flies. This issue marks the third anniversary of OS/2 e-Zine!, and with it Chris Wenham reminisces not only on our own past, but of OS/2's as well.

In November 1995, Trevor Smith uploaded the (http://www.os2ezine.com/v1n1/) first ever issue of OS/2 e-Zine! to a $20-per-month web site account tucked away in a subdirectory of his personal account. It contained a couple of editorials, a review of ColorWorks 1.0, ZOC 2.11, a comparison of PMMail and Eudora, and a scattering of other reviews. It sported a nifty looking 3D rendered logo and navigation controls and a layout designed for the old 1.0 version of IBM WebExplorer. It'd been about a year since the release of Warp 3 and the e-Zine! stood almost completely alone in the world of OS/2 publications on the web - which was only just coming into full bloom then too.

Come the (http://www.os2ezine.com/v1n2/) second issue in December (we were publishing only once a month back then) we had almost tripled the number of articles. There was a book review, discussions on RAM requirements, and even an interview with Brad Wardell - of the then barely known Stardock Systems. COMDEX had passed and everyone was calming down from the fear that Lou Gerstner would say something bad (or even nothing at all) about OS/2. Pentium 90s had been respectably high-end machines and the holy war with the recently released Windows 95 was hot and high on the minds of many OS/2 users at the time. This was the midst of OS/2's golden age and the month when OS/2 would sell a record 1 million copies.

Time passed. John Soyring (http://www.os2ezine.com/v1n4/soyring.html) spoke for the record when another rumor of OS/2's demise floated up in Spencer Katt's column in PC week, toeing the official IBM company line that has still never deviated even today. Our counterparts in the print-world, OS/2 Magazine and OS/2 Professional fretted in editorials over visions of an imminent demise for Warp - a sign of troubles to come. Somewhere a PowerPC version of OS/2 came and went - slipping quietly into history to emerge later as a sentimental exhibit at Warpstock, but leaving IBM's PSP in a state of low morale for years to come.

DeScribe, possibly the most popular word processor for OS/2, ceased development, only to splutter to life a while later, stagger a few more feet, and die properly once more. MGI promised to port their PhotoWorks graphics software with the new Open32 programming libraries, only to fall through at the last moment (rumors say that a few people actually have a copy of this ghost tucked away). OS/2 Professional ceased publication and handed their subscriber list over to OS/2 Magazine, and for a while it seemed as if the world was coming to an end.

But then things changed. ColorWorks 2.0 was released and it was a killer (I still remember driving in the dark and the rain to get to the FedEx office and wait for the truck to finish its rounds so I could pick up the review copy, T-Shirt and posters that SPG had sent -- having missed the delivery to my home earlier). The (http://www.os2ezine.com/v1n9/) Merlin Beta was also released and several thousand OS/2 users, including a few e-Zine! staff members, got their first taste of the new interface, Java integration, and the Voicetype dictation.

(http://www.os2ss.com/connect/) Tim Bryce began laying the groundwork for the Connect The World With Merlin demonstration that united hundreds of presenters around the world. With the promise of a free copy of Warp 4 (sans the Lotus Notes Mail client, it turned out), OS/2 users went scrambling to sign up retail outlets as demonstration sites. Overall, the event was pulled of highly successfully. However, I still have a basement full of psychedelically groovy "Get Warped" tote bags to this day. I never did get that many people coming to my demonstration...

And IBM practically ran the entire 1996 summer Olympics, all with the help of OS/2. OS/2 was on laptops toted by the judges and umpires, it managed the turnstiles, ticket sales, scores, everything. This was a showcase for Warp, and it performed beautifully, reports by the press of the 1996 "Glitch Games" notwithstanding.

(http://www.os2ezine.com/v1n11/netscape.htm) Netscape Navigator got ported and triggered a huge adrenaline rush in the OS/2 community (and with it we started experimenting with new HTML tricks, like table cell colors). Then Warp 4 was released, just a little bit earlier than the end of Navigator's beta phase. Java started to actually make an impression around this time too, with (http://www.os2ezine.com/v1n14/corel.htm) Corel Office For Java raising a lot of eyebrows. Ultimately this would be canceled, but not before Lotus had got started on e-Suite.

As more time passed we'd see the birth and rise of the Network Computer concept, something that's still being tested for worthyness today. OS/2 would play a part in this as IBM developed BlueBird, now called Workspace on Demand. Java would grow stronger, Voicetype would be reluctantly forgotten for a while, and OpenDoc... well OpenDoc never seemed to get seriously looked at at all.

The last three years have been a growing experience not just for us, but also for the entire industry. In the last three years, the Internet has emerged out of its obscure origins and into a world where even the potted houseplants they sell at K-Mart have URLs printed on the little plastic care-tabs. In the last three years, behemoths like Digital Equipment Corporation got swallowed up by companies that, as early as the mid 80s, were still only making inexpensive PC clones.

In the last three years, OS/2 has patiently used time itself as a way of saying "You're wrong" to all the fallen advocates who said it would die.

What are your favorite memories of the last three years? Talk about them with other "old timers" and even today's newbies in our (http://www.os2ezine.com/forums/get/forums/rant/Nov1-1998.html) interactive forum.

 
(editor@os2ezine.com) Chris Wenham is the Editor-In-Chief of OS/2 e-Zine! -- a promotion from Senior Editor which means he now takes all the blame.

***********************************

Corporate Sponsors

(http://www.blueskyinnovations.com/) BlueSky Innovations
Whether you want to boot multiple Operating Systems or from an Iomega Zip disk, we have a solution for you.

(http://www.bmtmicro.com/) BMT Micro
Your complete source for over 175 of the best OS/2 shareware applications available.  Drop by today and check out our WWW catalog or download the .INF version.

(http://www.ChipChat.com/os2ezine/) ChipChat Technology Group
ChipChat produces excellent 32-bit OS/2 software for wireless text paging and state-of-the-art multimedia Sound Cards for Micro Channel PS/2 computers.

(http://www.indelible-blue.com/) Indelible Blue
Indelible Blue, a mail order company, provides OS/2 software and hardware solutions to customers worldwide.

(http://www.maccasoft.com/) MaccaSoft
Developers of the multiplatform Java e-mail client, Emerald Mail.

(http://www.modulardreams.com/) Modular Dreams Inc.
A growing selection of graphics utilities and applications for OS/2 Warp and Java.

(http://www.prominic.com/) Prominic Technologies, Inc.
On-line sales & solutions for VisualAge, DB2, OS/2 Warp, Workspace on Demand, Notes/Domino, AIX Firewall, and Net.Commerce (design/hosting).  The best deals on IBM and Lotus software and hardware (PCs, Servers, and RS/6000s) -- with OS/2 preloads!

(http://www.rsj.de/) RSJ Software
The successful software CD-Writer for OS/2 by RSJ. CD-Writer is suitable for backup, data filing, creating Audio CDs etc. and is compatible with most CD-Recorders.

(http://www.prioritymaster.com/) ScheduPerformance, Inc.
Dramatically improve performance on your OS/2 system now with the patented priority scanning logic and visual priority identification of Priority Master II.

***********************************

Chris Wright		-Christopher B. Wright

Summary: Chris Wright talks about his trip to Warpstock '98, and some of the things it means

Well I'm back from Warpstock, and other than being constantly mistaken for Chris Wenham I had a jolly good time.

It was wonderful to meet people, to attach faces with .sigs. I was astounded by the variety of people there. I was astounded by the variety of age groups there. I was astounded by the fact that the majority of the OS/2 e-Zine! staff is a good two to four inches taller than I am.

But most of all, I was astounded by the number of OS/2 users who were all in the same room at the same time.

I've always known, rationally, that there were more us out there. And I've always known, rationally, that those people I'd talk to via e-mail, Usenet or IRC were actually people. But the Internet can be a somewhat distant method of communicating with people. While it can cover enormous distances, and allow people in many different areas to cooperate and interact with each other in ways they wouldn't be able to otherwise, it's not quite like actually living in a community where you step out the door, wave at your neighbors, and socialize at the community picnic.

Think of Warpstock as that community picnic.

Warpstock was a smashing success -- not because the presentations were great (though they were), and not because the Vendors booths were great (though they were as well). No, Warpstock was a success because it allowed the OS/2 community to meet in the town square and realize that it was, after all, a real live community of real live people.

It's easy sometimes to forget that all those little e-mail .sigs and IRC nicknames are actually people who use OS/2. After a while, it's easy to dismiss them as really counting because you don't see them. It's just another e-mail message, or Usenet post. The lack of a face or voice to associate with these virtual entities makes it difficult, at times, to really register that all these people who use OS/2 really exist. Sure, intellectually you know they're there, but emotionally, well, sometimes emotions simply don't respond to logic very well.

Warpstock was more than fun and informative -- it was reassuring. For the first time, I could walk into a room and say "I use OS/2" and not have everyone else in the room look at me like I was some kind of bizarre scientific experiment gone horribly wrong. I saw other people who were just as enthusiastic and happy using OS/2 as I was -- and some who were more so (boy, did they make me nervous).

We met, broke bread together and cheerfully talked about anything from the current state of the OS/2 community on Compuserve to cheerfully (and with gusto) dogging Microsoft any chance we could get. Instead of having a conversation over the course of a few days that focused on writing e-mail, sending e-mail, and receiving e-mail, we just talked and listened.

People from Germany, Spain, Australia, and that most Foreign and Unknowable of All Nations (Canada) were there. End users were there. System Administrators were there. People from the Shirley Temple Collectors Item Association were there, but they wandered into the wrong convention room by accident.

Special kudos are in order for Tim Sipples, who despite having had a serious conflict with the Warpstock Steering Committee, still donated many, many boxes of OS/2 software for a huge raffle at the end of the first day. What else needs be said? Oh yes, this does: thanks Tim.

For those of you who attended Warpstock this year, it was great meeting you all. For those of you who did not attend Warpstock this year, start saving your money now! See you at Warpstock '99.

                         - * -

If you were at Warpstock, or want to talk about what you think of it with others, join our (http://www.os2ezine.com/forums/get/forums/wright/Nov1-1998.html) interactive forum now.
 
(wrightc@dtcweb.com) Christopher B. Wright is a technical writer in the Richmond, VA area, and has been using OS/2 Warp since January 95.  He is also a member of Team OS/2.

***********************************

Guerrilla Tech Support		-Trevor Smith

Summary: A proposal to improve OS/2's strength with a volunteer-run tech support organization

Linux, OS/2 and community support

Over the years many people have suggested that the Linux model of operating system development should be adopted by the OS/2 community. Mostly, discussion has centered around what could be done if IBM released the source code for the OS/2 client. There has never been any indication that this will happen though and, at best, these comparisons between Linux and OS/2 are probably wishful thinking.

However, that doesn't necessarily mean that the Linux model can't be applied to other problems which OS/2 faces. All software's ultimate market success is based on many different characteristics, of which its technical quality is just one. Other features which influence the success of an OS are its marketing budget, the availability and accessibility of purchasing channels, the size of its installed userbase and the quality of its technical support. Even if it is not possible to wrest control of the source code from IBM, it is possible for the user community to improve OS/2's present situation by enhancing or taking over one or more of these other areas.

SOHO/Home users need (better) tech support

Probably the easiest area that OS/2 users can attack is that of technical support. Both IBM and Microsoft have learned from experience that providing telephone-based technical support for an operating system is so costly that it can quickly suck away all profits. In Microsoft's case, they have come to rely on original equipment manufacturers (OEMs) who bundle Windows 95/98/NT to provide "free" tech support. IBM, unfortunately, has arrangements with few or no companies to pre-load OS/2 so there is no such support network. IBM must either swallow the cost of paying a large tech support staff, offer very limited support (or none) to OS/2 users, or sell support on a contract or as needed basis. This latter strategy is the one favored by IBM due to its strong sales to large corporations and those corporations' willingness to pay for support. As we all know, this model is next to useless for end-users.

This is where we come in. The OS/2 community can solve this problem for IBM (and for itself) and, at the same time, remove one of the impediments to OS/2's success. We can provide the technical support that IBM can't.

On Usenet there are newsgroups which already provide support for OS/2 and many other operating systems. Unfortunately, these newsgroups have little or no central organization so some questions may be answered quickly and repeatedly while others may take days to draw just one response, even if that response is, "there is no solution to your problem." On the Web there are many individuals, user groups and other organizations offering FAQs, "How To" pages and other part time or limited help to users. These are also very valuable resources but, like Usenet, support from them may be slow, unreliable or intermittent. These resources are not sufficient for the SOHO user who must solve an OS/2 technical problem for his business to run smoothly or for the home user who wants the piece of mind that a dedicated technical support staff provides.

But if we take the positive aspects of these sources and add a certain amount of planning, we may be able to create something truly impressive. We may be able to create a professionally run, efficient, volunteer-based organization to provide full time, free technical support to any and all OS/2 end-users who need help installing, upgrading or running OS/2.

Some Definitions

While such a community-run entity could be structured in a few different ways, for the purposes of discussion, I'll assume it would be set up as a nonprofit organization. Also, for convenience, I'll refer to the proposed organization here as "OS2support.org".

How it might work

As the Internet has matured, the Web has emerged as the ubiquitous standard for easy access to information. While some of you may read newsgroups religiously, the fact is that not everyone uses Usenet -- especially not new users who may need help more than the rest of us. On the other hand, almost everyone uses the Web -- even the newest of "newbies". Remember, since 1995 OS/2 has come with a Web browser "in the box". For this and other obvious reasons, I am imagining OS2support.org as a Web based service. The "free" nature of the service will most likely rule out any possibility of a telephone-based operation, but this is not necessarily a major failing.

OS2support.org would ultimately be an organization of users who would volunteer their time. Ideally it should have as few levels of hierarchy as possible, if possible, just two: "managers" (who would be "in charge" of routine operation of OS2support.org at certain times) and "support staff" (who would do the actual tech support work). People interested in either position would volunteer and "managers" could be selected by some democratic process from all volunteers. Assuming they were interested, those not chosen as managers would be considered support staff. (These names are arbitrary, of course. Substitute whatever terms please you.) It's possible that such a simple system might not be workable and one higher level of authority -- an Executive Director, a board of directors, etc. -- might be needed.

Since OS2support.org would require at least one manager (and possibly more) on duty 24 hours a day, 7 days a week, volunteers for manager positions would need to commit to certain periods of time when they would be on duty.

Support staff volunteers would also offer to participate at times convenient to them. When their shifts began, support staff would "check in" with the manager on duty. The manager would add them to a constantly updated list of support staff on duty.

Shifts for both managers and support staff could be kept relatively short, possibly two to four hours, so as not to interfere with the "real lives" of volunteers.

When an OS/2 user requires technical support on an OS/2 matter, here's what might happen:

The user points his web browsers to www.OS2support.org and fills out a simple form stating his name, e-mail address and the problem he has, or he sends his question directly via e-mail to an address such as help@OS2support.org. Additionally, he may give his phone number (more on that in a bit).

The manager on duty assigns the user's question to the first staff member on the "on duty" list. Alternatively, if the user provides a phone number and a volunteer currently on duty lives in local calling distance (and if that volunteer has indicated he will do phone support), the manager picks that staff member rather than the one currently first on the list. The manager then moves that staff member's name to the bottom of the list, moving everyone else up a notch in preparation for the next support request.

The support staff member examines the question and determines if:

* he can answer it
* he can not answer it but he feels someone else might be able to, or
* it is unanswerable.

Within a predetermined time the staff member reports his opinion to the manager.

If the staff member says the problem is unanswerable, the manager makes a note of the opinion and forwards the question to the next person on the list. If the message also comes back from a second support staff member as "unanswerable" the manager sends a reply to the user telling him that OS2Support.org can not help him. If relevant and/or possible, the manager fills out a problem report and sends it to IBM on behalf of the user.

If the support person reports that he can not handle the problem but that someone else may be able to, the manager sends it to the next person on the list (repeating this process until he finds a staff member who feels competent). If no one on duty can answer the question, the manager e-mails the user and notifies him that there will be a delay but that OS2support.org will keep trying to find an answer to his problem for a predetermined amount of time. If no-one is found after that time the manager sends a reply to the user telling him that OS2Support.org can not help him. If relevant and/or possible, the manager fills out a problem report and sends it to IBM.

If the support person says he can handle the problem, the manager records the staff member involved. The staff member sends a message to the user telling him he is on the job and that an answer will follow shortly. He spends a predetermined maximum time researching the problem (if necessary) and sends another reply to the user outlining a solution. (Alternatively, if the person needing help provides a phone number and if the question has been forwarded to a volunteer in local calling distance the staff member may provide telephone assistance). Finally, the support staff requests that the user submit a WWW or e-mail survey form to assess if the problem was solved satisfactorily or not.

Where does the knowledge come from?

One of the first obstacles to overcome, if OS2support.org is to become reality, is gathering information for the organization to disseminate. No one would need to memorize technical details on OS/2 kernel inner workings, but an ability to find information in FAQs and other resources will be essential. These resources could be compiled from existing archives on Usenet, the WWW and other Internet sites. Also, as OS2support.org operates, careful recording of questions and answers would rapidly expand the base of knowledge.

To minimize workload on OS2support.org staff members, these FAQs, How To's and a basic and efficient search facility could be made available prominently on the main web page. Users could be encouraged to try to find answers to their questions using automated means before asking for "live" assistance.

TeamOS/2 not revisited

No-one will be benefited by OS2support.org if it suffers from the same lack of direction and bad publicity that TeamOS/2 did. OS2support.org would require firmly structured guidelines to run smoothly, even at a small scale. These guidelines would be essential if the organization were to grow larger. Although OS2support.org would fundamentally rely on volunteers, these volunteers would need to abide by certain policies. Ultimately, if volunteers were being harmful to the organization, they would need to be discharged.

While I picture OS2support.org as a nonprofit entity, such a utopian vision may not be achievable. For example, if an Executive Director was needed to run the organization, a salary may be required to secure a competent employee. And some incentives for the actual managers and staff would help ensure a steady stream of volunteers. Since ISVs and other OS/2 companies would have a great deal to gain from the existence of OS2support.org, they probably would be willing to make donations of software, cash or other items which could be given to volunteers on a reward system or random basis.

Another good idea...

Many of you will recognize different flaws with the basic plan I've outlined here. Some will suggest reasons why OS2support.org could never work. Are there enough volunteers in the OS/2 community willing and able to staff OS2support.org? Can we be organized and comprehensive enough to be valuable to real OS/2 users? Whether we can start and maintain such an organization with little or no financial investment remains to be seen, but I believe we can.

So how do we start? Should we just jump right in? To begin with, why not share your ideas with the rest of the community in our (http://www.os2ezine.com/forums/get/forums/smith/Nov1-1998.html) interactive forum. This is a democratic idea and will be best realized by open discussion. Once we see if there is enough enthusiasm to proceed and once we discover the costs involved, we'll be a lot closer to improving OS/2's position in the world -- with or without IBM's help.

 
(trevor@haligonian.com) Trevor Smith is the ex-publisher and editor of OS/2 e-Zine!, OS/2 aficionado, and a part-time communist. Since retiring from OS/2 e-Zine! he has been vacationing, playing computer games, catching up on his reading and walking his dog.

***********************************

The Rexx File		-Dr. Dirk Terrell

Summary: Learn how to sort a stem variable without loosing track of its tails

A few months back we took a look at some sorting algorithms and implemented REXX code to perform them. (See the (http://www.os2ezine.com/v2n12/rexx.htm) December 1997 and (http://www.os2ezine.com/v3n01/rexx.htm) January 1998 issues.) The code that we developed would sort a single set of values stored in a stem variable. In some situations however, your needs are a little more complicated. One case is the need to sort a set of values but have several other stem variables "follow" the one that is sorted. For example, let's say you have a stem variable Weight. with values of several people's weights. But you also have stem variables Name. and Height. Obviously if you sort the Weight. values, the values in Name. and Height. are no longer going to be in the correct order. We need Name. and Height. to "follow" the values of Weight. when they are rearranged. This month we will modify our original heap sort code to include this capability.

First off, let's create some data to work with by setting up stem variables to hold the names, weights, and heights:

N=5
Name.0=5
Name.1="Chris"
Name.2="Bill"
Name.3="Tom"
Name.4="Fred"
Name.5="Henry"
Weight.0=5
Weight.1=155
Weight.2=180
Weight.3=220
Weight.4=125
Weight.5=175
Height.0=5
Height.1=6.0
Height.2=5.96
Height.3=5.75
Height.4=6.2
Height.5=6.1

In the old heapsort code we required that the stem variable stem. be populated with the values to be sorted. Let's make things a bit more convenient by allowing any stem variable to be sorted. Let's also allow any number of arbitrary stem variables to follow the sorted one. To do this, we can use the Expose option on the Procedure instruction in our sorting routine. Recall that Expose allows the subroutine to see only the specified variables from elsewhere in the program. All other variables will be hidden from your routine. (Which keeps you from accidentally modifying a variable.) Normally, you would explicitly list the variables that you want to see:

HeapSort:
Procedure Expose Name. Height. Weight.

But this would greatly reduce the flexibility of our routine by requiring a change to the expose option each time we used the routine. It would be better if we could specify the names of the exposed variables in the contents of another variable. And you can indeed do that by placing the name of the variable in parehtheses like this:

HeapSort:
Procedure Expose (Arrays)

In this case, the contents of the variable Arrays contains the names of the stem variables that we will operate on. For our example with stems with name, weight, and height, it might be set like this:

Arrays = "Name. Weight. Height."

This option makes it easy to tell our sort routine which stems to perform the sorting on. For our program, let's establish the convention that the first stem in the list is the one whose values will determine the sorting and the others will be the ones that follow it. So, if we want to sort by weight, we would set up the Arrays variable as

Arrays = "Weight. Name. Height."

Now, how do we modify the old code which used the variable stem. for the data? Using the REXX Interpret instruction, we can do this pretty easily. What we will do is copy the contents of the specified sort variable into stem. as stem.1, stem.2, stem.2 and so on. The stem.0 variable will contain the number of values to be sorted. We will also add another level to the stem. for the values of the arrays that are following the sort array. For example, stem.1.2 would contain the first value of the second stem variable passed, i.e., Name.1 in the example above. To set up stem. we use this code:

Interpret "NItems="||Word(Arrays,1)||"0"

/* Copy the original stems to temporary ones */
Do i=0 to NItems
Interpret "Stem.i="||Word(Arrays,1)||i
Do j=2 to NArrays
Interpret "Stem.i.j="||Word(Arrays,j)||i
end /* do */
end /* do */

The Interpret instruction tells REXX to create the string that follows it and execute it as if it were written originally in the program. Take a look at the first line of the setup code above:

Interpret "NItems="||Word(Arrays,1)||"0"

This line tells REXX to take the first word of Arrays (which is "Weight." in our example), concatenate a zero onto it and add the string "NItems=" to the front of it. Thus the string that results is

NItems=Weight.0

REXX then executes that instruction, setting the variable NItems to the value of Weight.0. Then for each data value, we create a string that sets the value in stem. to the value in the array that we have been asked to sort. We also set up the values for the arrays that will follow the sorted array.

At this point we have the variable stem. populated with the data that we want to sort, so our old sort code will correctly sort the data. What we have to add is the code to make the other arrays follow changes in the array we are sorting. In each place where we change the contents of the sorted stem, we have to make the corresponding change in the other stems. For example, in the old code we have the following code to swap the contents of two entries in the stem:

t = stem.1
stem.1 = stem.n
stem.n = t

In the new code we add loops to make those swaps in the other arrays:

t = stem.1
Do i=2 to NArrays
t.i=Stem.1.i
end /* do */

stem.1 = stem.n
Do i=2 to NArrays
Stem.1.i=Stem.n.i
end /* do */

stem.n = t
Do i=2 to NArrays
Stem.n.i=t.i
end /* do */

Once all of those changes are made, all we have to do is copy the contents of stem. back to the original arrays before we return to the program that called our sorting routine. This involves simply reversing what we did at the beginning of the sorting routine:

/* Re-order the original stems */
Do i=0 to NItems
Interpret Word(Arrays,1)||i||"="||"Stem.i"
Do j=2 to NArrays
Interpret Word(Arrays,j)||i||"="||"Stem.i.j"
end /* do */
end /* do */

That's all there is to it. We now have a generalized heap sort routine that enables us to sort any stem variable and to have any number of other stem variables follow the sorted array. I think you might find this routine quite useful. The way we have written it makes it very easy to drop into existing code. All you have to do is set Arrays properly and then call the heap sort routine. Upon return from the call, the specified stem variables will be sorted correctly. The example code for this issue creates some data and then sorts them (try modifying the Arrays variable to sort on height or name.)
 
(http://www.gnv.com/HTMLWizard/) Dr. Dirk Terrell is an astronomer at the University of Florida specializing in interacting binary stars.  His hobbies include cave diving, martial arts, painting and writing OS/2 software such as HTML Wizard.

***********************************

While You Were Out...		-OS/2 e-Zine! Staff

Summary: A summary of events that occurred during the past two weeks

Warpstock '98
Happened on: Weekend of October 17th to 18th
Where: Wyndham Northwest Hotel, Chicago, IL

It was the defining OS/2 event of the year, the second annual grassroots organized user conference in Chicago, Illinois. From all reports coming in, Warpstock 198 broke the records set by last year's original event in attendance count. Hundreds of OS/2 users piled into the Wyndham hotel, already packed with vendors and their presentation booths. Everything seemed to go off just fine except for maybe the network connection, which was up and (mostly) down the whole weekend: Severely hampering OS/2 e-Zine!'s efforts to provide live coverage.

Despite this, there are many web sites offering summaries, photos and reports of the Warpstock event. Some of them are:

(http://www.warpstock.org/) The Official Warpstock Homepage
(http://www.os2ezine.com/forums/get/forums/coverage/warpstock-1998.html) OS/2 e-Zine!'s Live Warpstock '98 coverage
(http://www.scoug.com/reports/ws98_index.html) Southern California OS/2 User Group
(http://www.os2voice.org/) V.O.I.C.E
(http://www.haligonian.com/warpstock98/) Trevor Smith's Warpstock '98 Picture Guide


Object Desktop 2.0 Released
Happened on: Saturday, October 17th
Where: Warpstock (see above)

Over a year in making and several months in beta testing, the "third party upgrade" to OS/2 from (http://www.stardock.com/) Stardock Systems was released. Object Desktop 2.0 ends the distinction between a regular and "Pro" versions, rolling all utilities together into one version, and enhancing the traditional Object Desktop components with lots of new functionality. Some of this includes the much requested virtual desktop layout manager, a TCP/IP network status graph, toolbars added to every desktop folder, and improved cosmetic enhancements to OS/2's frame controls and titlebars.

For more on what's new in Object Desktop 2.0 you can read our first looks at the (http://www.os2ezine.com/v3n12/od2ee.htm) OD 2.0 Early Experience program.


Interview with Chris Graham
Happened on: October 9th
Where: (http://www.scoug.com/) Southern California OS/2 User Group homepage

Peter Skye of the Southern California OS/2 User Group took the time to interview Chris Graham, author of the famous Graham Utilities for OS/2. In the interview Chris reveals some of the history behind the utilities packages, what got him started on it, and a couple stories about the problems he's had and some of the tricks he uses for his beta test phases. Readers can also find out things like why the box is such a bright shade of pink, and follow some of the more interesting stories of technical support.

The (http://www.scoug.com/os24u/1998/scoug810.2.graham.html) full interview can be read online at the SCOUG homepage.

 
(feedback@os2ezine.com) The OS/2 e-Zine! Staff are made up of professionals involved in and around OS/2. Many have a long background as supporters of the platform, as programmers, consultants, and sometimes just users.

***********************************

Ramblers Guide To Warpstock 98		-Dr. Dirk Terrell

Summary: A casual attendee's guide to Warpstock '98

For me, Warpstock began Wednesday morning with an eight-hour drive from Gainesville, FL to Wilmington, NC to meet up with my friend and colleague Thomas Bradford of BMT Micro. The most memorable thing about Warpstock for me was the opportunity to make new friends and finally meet old ones that I had known only through exchanges of electrons through the Internet. Thomas and I shared a booth at Warpstock since the two of us work so closely together on our OS/2 intitiatives. Normally a sixteen-hour drive would evoke severe dread on my part, but I was looking forward to brainstorming with Thomas along the way on new things that we could bring to the OS/2 community. And brainstorm we did. You will be seeing some great new things for OS/2 users in the near future.

Arrivals, Greetings, and Network Problems

When we arrived, I was of course tired, but the adrenalin was pumping and I immediately wanted to start connecting with others that were there. The first group I ran into was my OS/2 e-Zine! buddies Trevor Smith and Chris Wright. We chatted for a few minutes and then started unloading the van we had filled with OS/2 goodies for display at our booth.

Once we got everything set up, I noticed Jason Kowalczyk trying to piece together a PC that would be used to control the Internet connection. Others were pulling cables to the booths that needed to have a connection, including ours. I began to get a bad feeling about the network connectivity, and my bad feelings were justified because the network was up and down during most of the show. But let me give a big "Thanks" to Jason for making herculean efforts on the network given the inadequate equipment he had at his disposal. He went way beyond the call of duty. I'm sure the organizing committee learned a lot from the experience and next year the network connection will be much better.

Later I met up with Trevor again and several OS/2 users, some of them from Germany and Spain. We had a good time discussing all manner of things from OS/2, IBM, Microsoft, Windows, and communism. After a while, my adrenalin had run out and it became obvious to me that I had spent sixteen hours in a car. So I headed off to our hotel room and fell asleep as I was falling to the bed.

First day, and the POSSI dinner

I awoke early Saturday morning and headed down to the exhibit area to see if I could get our computers connected to the network. People began to wander in and make their way over to our booth. I was tied down to the booth during most of the show and didn't make it to a single presentation. But meeting people and talking to them was the most enjoyable part of the whole Warpstock experience.

That evening I attended the Phoenix OS/2 Society (POSSI) dinner with about fifty fellow POSSI members. The poor staff of the restaurant must have felt like a hurricane had overrun them! The room rippled with enthusiastic conversations on all manner of subjects. The people of POSSI are a bright and fascinating bunch to sit down and talk with. POSSI publishes what I believe is the only remaining English/language print magazine dedicated to OS/2: Extended Attributes, which always sends me hurriedly back to to my desk when it arrives in the mail each month. Don't let the Phoenix part of the society's name fool you. POSSI is truly an international organization. If you're not a member, consider joining. Extended Attributes alone is worth the annual $30 membership fee. Wander over to their (http://www.possi.org) web site and request a (http://www.possi.org/ea.htm) free issue of Extended Attributes</A> to see what you are missing.

Second day: Talking "Business"

On Sunday, it was back to the booth and meeting OS/2 users from all over the place. One of my goals for Warpstock was to sit down with Brad Wardell and discuss some business matters with him. Well, most of the time he was running around trying to do fifty things at once. And I was doing the same. He finally managed to break away and wander over to our booth, but somehow we discovered that we both are addicted to the game Total Annihilation and ended up talking about that the whole  time. So much for discussing business!

Later that day I wandered over to the VOICE booth and finally joined the organization. VOICE is an independent group dedicated to promoting OS/2 in the consumer market. It is a well-organized group with clearly defined membership criteria, something that Team OS/2 does not have and which has, in my opinion, had very damaging effects on its reputation. As we make the necessary transition from expecting IBM to push OS/2 in the home/SOHO market to taking control of it ourselves, the role of VOICE will grow. Our strength will be in our numbers. Check out the (http://www.os2voice.org) VOICE web site and consider adding your name to the VOICE roll.

Heading back home

Sunday passed and I realized that it was time to head back to Wilmington. On the way back Thomas and I discussed the events of the weekend. Both of us were very pleased with the way things had gone. We got to meet so many people that we had previously known only over the Internet, and we were both struck by the vibrant enthusiasm of the people who have chosen to use OS/2. I think time will show that Warpstock '98 was a turning point in the OS/2 market, from an IBM-induced decline to a user-driven resurgence. There will be big announcements in the near future. Stay tuned, and as Tim Bryce always says, "Keep the faith!"

 
(http://www.gnv.com/HTMLWizard/) Dr. Dirk Terrell is an astronomer at the University of Florida specializing in interacting binary stars.  His hobbies include cave diving, martial arts, painting and writing OS/2 software such as HTML Wizard.

***********************************

Warpstock Survey Results		-Chris Wenham

Was Warpstock as big of a blast as everyone says it was? Since the October 16th OS/2 e-Zine! came out at about the same time Warpstock got started, we decided to run a quick survey of the attendees to see what they thought of the event, and how it had affected their idea of OS/2's future.

This survey was not officially connected to Warpstock '98 in any way, and should not be confused with any exit survey that the Warpstock steering committee may have run themselves.

For this survey we only received 70 votes in all, 5 of which were "spoiled." A vote is considered spoiled if it isn't accompanied by an e-mail address, doesn't answer all of the questions, or is a duplicate. This left 65 valid votes.

Was the trip to Chicago worthwhile?

Most of the respondents, 66.7% of them, said they had a blast. Warpstock must have really hit it off well this year because there were very few people who came away thinking anything negative about its value at all. 4 people in all thought it was not worth it or were very disappointed.

Did you learn anything while there? 

With so many presentations going on, from classes on programming to setting up a SOHO network and all the other vendor displays, there was plenty of opportunity to learn something new about OS/2 while at Warpstock. Again the majority of readers said they did indeed learn a great deal, with only two going so far as to say it was actually boring there!

What do you now think of OS/2 and its future?

One common theme we heard in the testimonies of Warpstock attendees was that it renewed their faith and spirit in OS/2 and its community. The experience of being immersed in hundreds of enthusiastic Warpers must have been close to a religious one. Even so, the results from this question on our survey showed that while the outlook is definitely positive, not everyone was willing to say they had total faith in Warp's future. 45.5% said they were very confident and another 36.4 thought OS/2 was "doing okay." Plus, an alarming 10% of attending readers had negative opinions of OS/2's place in the world of tomorrow. Perhaps organizers for Warpstock '99 might think of stressing OS/2's longevity as a theme for next year's event.

Complete Warpstock '98 Survey Results

Was the trip to Chicago worthwhile?

Category				Count		Percentage
Positively!				44		66.7%
It was worthwhile			8		12.1%
It was good				2		3.0%
It was okay, I guess			4		6.1%
Not worth it				2		3.0%
I was very disappointed			2		3.0%
I do not understand the question	3		4.5%
TOTAL					65		98.4%


Did you learn anything new while there?

Category				Count		Percentage
My brain overflowed!			10		15.2%
Yes I learned a lot			35		53.0%
I learned some				12		18.2%
I didn't learn anything			3		4.5%
It was boring!				2		3.0%
I do not understand the question	3		4.5%
TOTAL					65		98.4%


What do you now think of OS/2 and its future?

Category				Count		Percentage
The future of Warp is sunny and clear!	3		4.5%
I'm very confident in its future	30		45.5%
Warp is doing okay			24		36.4%
It's doomed				5		7.6%
Where's that copy of Windows?		2		3.0%
I do not understand the question	1		1.5%
TOTAL					65		98.5%

 
(editor@os2ezine.com) Chris Wenham is the Editor-In-Chief of OS/2 e-Zine! -- a promotion from Senior Editor which means he now takes all the blame.

***********************************

First Looks: MainActor 2.06 Beta		-Christopher B. Wright

Summary: Now it's not just a frame-by-frame editor anymore. MainActor 2.06 beta for OS/2 adds a killer feature: Video sequencing

Although IBM once promised that OS/2 would be the "premiere multimedia platform for the PC market," there have been very few applications available for OS/2 that deal with OS/2 multimedia at all. Imagine my surprise, then, when I started playing with the beta release of Main Concept's latest version of MainActor for OS/2.

In the interests of full disclosure, I'm terribly biased in favor of this product -- I've used it since it first became available for OS/2, and was involved in developing the user manual for the latest release.

MainActor 2.06(beta) is based on the current full release of MainActor, which is a video editor/animation creation product that supports a huge array of video codecs. Main Concept has added to this already impressive product a complete and sophisticated video sequencing application that allows you to merge multiple video and audio streams with a very impressive assortment of transitions and text effects.

The Sequencing portion of MainActor allows you to insert many different kinds of audio and video file formats into one large video project. You can overlay text onto your video (for example, to display the title of the video or to "roll credits"). You can configure text to move along predefined paths on the screen, and set up various fades and wipes to create transitions between scenes. And audio streams can be added to (and synched with) video clips -- in other words, you can add a soundtrack to your movie.

The Video Editing portion of MainActor is relatively unchanged from its original incarnation -- it displays animations as a series of picture stills (similar to animation stills or video frames in film) that you can export, rearrange and modify. This portion of the product will be most useful for creating web animations, but it can also be used to alter portions of videos, or to convert one video format to another video format. MainActor supports a truly astounding number of video codecs (some I'd never even heard of).

MainActor relies on OS/2's default "Video In" application to capture video from a video card. This may be slightly limiting when compared to the version of MainActor for the Windows platform, which has a video capture feature built in to the program itself, because my understanding of the Video In application is that it supports a very limited number of video capture cards. It will, however, support the ELSA Gloria Synergy video card which apparently works quite well.

A possible advantage for OS/2 users is that MainActor uses REXX as its scripting language. For most Windows users, this means you can only run REXX scripts from within the program itself (there is REXX support for Windows 9x and Windows NT but it's not standard). REXX is integrated into OS/2, however, and this can give OS/2 users a lot more flexibility when using REXX to interact with MainActor.

I found the MainActor beta to be stable and mostly feature complete. It is a bit sluggish -- partly because it's a beta program and partly because processing video data is extremely processor-intensive. Overall it's quite useable. I did find that Process Commander had a tendency to think it was a rogue application and want to shut it down, however.

The MainActor video sequencing portion of the application allows you to generate a preview of your video presentation, but I found that the preview was unviewable -- just a jumble of psychedelic colors. At this point I'm unsure whether this is a bug in the beta or a problem with my video card.

While the windows version has been out for a few months now, it is nice to see that the OS/2 version looks to be feature-for-feature equivalent with the exception of it relying on the Video In for video capturing instead of using a built-in application. I am waiting for the gold release eagerly.

 
(wrightc@dtcweb.com) Christopher B. Wright is a technical writer in the Richmond, VA area, and has been using OS/2 Warp since January 95.  He is also a member of Team OS/2.

***********************************

First Looks And Nifty Gadgets		-OS/2 e-Zine! Staff

Summary: A quick look at some new products just appearing for OS/2, as well as nifty little gadgets to make work easier.

ConfigInfo 7

While there are a few graphical CONFIG.SYS editors around that make an easy job of sorting your LIBPATH statements and modifying the cache size, very seldomly do they actually help you make sense of the gobbledygook found in OS/2's complex configuration file, nor do they offer much advice for optimization. This is where ConfigInfo steps in. ConfigInfo is not so much an editor as it is a de-mystifier. <a href="ci-1.gif) Showing two panes (.GIF, 17K), it loads your CONFIG.SYS into the top pane and reserves the bottom for detailed explanations of each line. With it, you can scroll through the configuration file line by line and have each device driver, SET line and other obscure setting explained to you.

The descriptions of your CONFIG.SYS file's contents are extremely comprehensive and written in plain English. But not only that, they also offer tips and advice for optimization and speed improvements. A special section lists all the really obscure settings that aren't included in a default install, but might be handy to those running file servers or memory constrained systems.

Originally created by Rick Meigs, the program has been adopted by Klaus Staedtler to keep its valuable knowledge base up to date with the latest versions of Warp and their fixpacks.

Minta 2.0

Much to the chagrin of the recording industry, it looks as if MP3 (see sidebar for related articles) may become a major new means of distributing music. Not illegally, of course, for many new and unsigned bands are releasing their music over the Internet in this format while they wait patiently for a talent scout to "discover" them. Plus, people are using it as an alternative to blank tapes to make copies of albums they already own. Companies like Diamond multimedia and others are even making MP3 "walkmans" and MP3 based car stereos.

Making sense of a growing collection of MP3 files may be a headache waiting to happen, however. Unlike cassette tapes, MP3 files don't have labels that you can write the name of the artist and song on. Quite often, it's the filename that has to carry all the information. But the MP3 file format, as interpreted by most players, does include a provision for descriptive tags. With them you can note the artist, song title, song genre, general comments and even what track off the CD it's from.

While the two main MP3 players for OS/2 (PM123 and WarpAMP) provide good tag-editors, Minta does a better job. Minta can scan your directories and make a list of all the MP3 files it finds, ready for you to page through and edit the descriptions for.

If you have a whole album's worth of files freshly converted, Minta has features that make it easy to enter descriptions for the whole bunch - carrying over common information such as the Artist name and automatically advancing the track number. Minta can also generate a text file listing of all selected MP3 files, complete with their file names, song names and artis, running time and other essentials on a configurable basis.

                         - * -

ConfigInfo 7
by Rick Meigs/Klaus Staedtler
download from (ftp://hobbes.nmsu.edu/pub/os2/util/config/cfginfo7.zip) Hobbes Archive (188K)
Registration: Freeware

                         - * -

Minta 2.0
by (http://www.informatik.uni-trier.de/CIP/thielen/minta) Thorsten Thielen
download from (ftp://hobbes.nmsu.edu/pub/os2/apps/mmedia/sound/util/minta200.zip) Hobbes Archive (310K)
Registration: Free
 
(feedback@os2ezine.com) The OS/2 e-Zine! Staff are made up of professionals involved in and around OS/2. Many have a long background as supporters of the platform, as programmers, consultants, and sometimes just users.

***********************************

Results from our October 1st Survey		-Chris Wenham

Have you ever been forced to use Windows or any platform other than OS/2? What many of us choose OS/2 for is for the fact that we can choose it and are not restricted to the all too narrow option of just Windows. But yet, even when we can use OS/2 at home and possibly also the luxury of dual-booting into it at work, we are forced to use something else, even if we don't want to. In our October 16th survey we sought to see just how true it is that there's almost no real choice left at all.

We had a total of 1213 responses with 41 "spoiled" entries, leaving 1172 remaining valid votes. Votes were considered spoiled if they weren't accompanied by an e-mail address, didn't answer all questions, or were duplicates. Votes were accepted until October 31st.

Have you ever been forced to use Windows or a platform other than OS/2?

The staggering majority of you (93.1%) voted Yes - you have been forced to use Windows or an OS other than OS/2, leaving only a tiny percentage saying otherwise. These numbers shouldn't come as a surprise, considering the Windows market share, but we were hoping it wouldn't be so high.

What was the reason?

So the next important question to ask, of course, was why? What was it that force you into straying away from OS/2? Here's where it looks better, because a paltry 1.1% said it was because Windows (or whatever other OS) just plain did the job better. Less than a blip (0.2%) said it was because the alternative was cheaper.

Another tiny percentage (5.7%) gave hardware as their reason, leading us to believe that driver support in OS/2 is still pretty good.

What came out as the two strongest reasons were Software and Employer demands. Either an important program wouldn't run in OS/2, or company standardization was to blame in most cases. But since we didn't ask how often readers were forced out of OS/2, we can't really solidly claim that this was because OS/2 doesn't have enough software, or because of specialty programs too obscure to expect an OS/2 version of.

Either way, the unfortunate fact is that there's no such thing as the "average" computer user - there's always someone who needs one or more non-mainstream programs. While OS/2 is well represented by general purpose applications such as office suites, browsers and mail clients, it's the little things that must be taken care of too such as the industry-specific applications you'll find used in health care or manufacturing.

Complete October 16th Survey Results

Have you ever been forced to use Windows or a platform other than OS/2?

Category				Count		Percentage
Yes					1,092		93.1%
No					76		6.5%
I do not understand the question	4		0.3%
TOTAL					1,172		99.9%


What was the reason?

Category					Count		Percentage
Hardware needed it				67		5.7%
Software needed it				555		47.3%
Employer demanded it				422		36.0%
It did the job better				13		1.1%
It was cheaper					2		0.2%
Other reason					36		3.1%
I told you, I've never been forced to use it	74		6.3%
I do not understand the question		3		0.3%
TOTAL						1,172		100.0%

 
(editor@os2ezine.com) Chris Wenham is the Editor-In-Chief of OS/2 e-Zine! -- a promotion from Senior Editor which means he now takes all the blame.

***********************************

Automated bullet-proof downloading		-Nenad Milenkovic

Summary: Learn how to make downloads painless with a simple utility that not only re-tries failed attempts automatically, but also supports "resume" or "reget" too.

For many people, especially those with bad dial-up connections, Navigator's "Saving Location" is not good enough. Although in new version it supports continuation of unfinished downloads, it's implementation is unreliable and rather clumsy (file must still be in cache, it's not written to disk if you press "Cancel" while transferring to try restarting, etc.). Many people use command line tool called WGET which is ported from Unix under GNU license. It's very stubborn when it wants to download a file, works reliably on slow connections, knows how to restart and retry if connection is lost, etc. But it's certainly easier just to click on link in Netscape than to start some command line utility from prompt, passing all necessary parameters to it (although only '-c' and URL is enough in most times). Changing (adding) file/MIME associations in Netscape doesn't help since it's supposed only to pass already downloaded file to some external program for processing.

Not surprisingly, solution comes with a little help of WPS and Rexx. It's called Auto Wget.

It works by starting a process that monitors requests for downloads and calls WGET for all of them. How do you issue those requests? As simple as possible: just by dragging links from Navigator's page into the "ToDo" folder (a "shadow" is created on Desktop by the installation procedure). Dragging them will create URL Objects in it and the "Auto Wget Daemon" will scan it's content every minute (configurable), downloading whatever it finds there.

However, what really shines is the implementation of this idea. "Auto Wget Daemon", which is a Rexx script, is started automatically from "StartUp" folder. When it detects URL Object in "ToDo" folder (which has "Running" and "Info" sub folders) it will:

1. If configured to do so, check if dial-up connection is active (by running 'netstat -a' and analyzing it's output)

2. Check if some non-finished downloads exist in "Running" sub folder (it does that with the help of semaphore files) and resume downloading them if possible.

3. Check if maximum number of concurrent downloads is reached

4. Prepare semaphore files and call another Rexx script that will handle invoking of WGET with parameters and do some reporting stuff, like write to log file, and use PMPOPUP program to show you status messages on screen about finished downloads, etc.

The entire process is so well designed that you'll have no worries once each URL Object is created. The Auto Wget Daemon will download the file now or the next day, in this or the next call, in one or in 100 attempts. It's truly a "fire and forget" solution. Once there's free space in queue, a URL object from "ToDo" folder will be used to start download process. But while it's still waiting you can delete it or move it somewhere else if you change your mind. You can check the "Running" sub-folder to see what files are currently downloading, plus you'll find log of activities in the "Info" folder too.

If you are familiar with Rexx, take some time to examine both scripts, they are nice example of good Rexx programming and demonstrate some features not commonly used (like queues, stems, etc.) To make AutoWget work, you must have the WGET utility installed and available somewhere in PATH. The same goes for NETSTAT, but if you have installed TCP/IP for Warp then you already have it, and WGET is available from all well-known OS/2 file repositories.

What makes this magic possible is the fact that "URL Object" is actually a subclass of the "Data File" class of WPS objects, and that in addition to the usual data that the Workplace Shell keeps about it, it also contains the whole URL as the first (and only) line in the file, which is what AutoWget reads.

There are two problems with this solution, tough. First of all, all documentation, including the Web page, is only in Russian (the authors are from Russia). Luckily, the installation procedure and usage is very simple, and you already know all you have to know from this article. Just unzip the distribution archive into some directory, run INSTALL.CMD and check out the configuration file called AWGET.CFG. You'll find it is placed in directory stated in the %ETC% variable, where most other TCP/IP configuration files are contained. So, after installation just type 'e %etc%\awget.cfg' and make sure download directory is correct. Other parameters in this file are self-explaining, just bear in mind that 1 means "yes" and 0 is for "no". Make sure WGET is in available via PATH statement, make sure check_connection parameter is 1 if you use dial-up, and you can start dragging and dropping.

The second problem is that Netscape v4.04 for OS/2 still doesn't support dropping URL Objects (or images and files for that matter) directly to WPS folders - only to Desktop. So, if you're using v4 browser, you'll have two steps: first create URL Object on Desktop and then move it to the "ToDo" folder. Netscape v2 users should have no problems and developers of Communicator for OS/2 v4 have stated that full drag & drop functionality is their "number one priority" for next release.

In short, if you have problems transferring files, or need nice way of queuing multiple files for long overnight downloads, go to author's (http://www.geocities.com/SiliconValley/Vista/7567/software/index.html#awget) web page and download Auto Wget Daemon. You'll hardly find another solution as elegant and powerful as this, even on OS/2, not to mention other platforms.

                         - * -

Auto Wget
by (http://www.geocities.com/SiliconValley/Vista/7567/software/index.html#awget) Steve Trubachev/Dmitry A.Steklenev
download from (http://www.geocities.com/SiliconValley/Vista/7567/software/awget14.zip) The Auto Wget Homepage (61K)
Registration: Freeware

Wget
by Hrvoje Niksic & Gordon Matzigkeit
download from (http://www.os2ss.com/archives/hobbes/os2/apps/internet/wget_145.zip) The OS/2 Supersite (118K)
Registration: Freeware
 
(nenad@fon.fon.bg.ac.yu) Nenad Milenkovic is an experienced OS/2 user, specialized in networking and communications, and the best known OS/2 advocate in Yugoslavia. He has published two books and now writes for mainstream print computer magazines, but welcomes the opportunity to contribute to a magazine read by people with similar views and preferences as his own.

***********************************

Rexx Newbies, Part III		-Chris Wenham

Summary: The third part in this series teaches how to do simple arithmetic in Rexx, and why it's good for more than just boring math

"Why do we need math when we have electronic scoreboards?"
 - Character in the "Grin and bear it" Sunday comic strip.

100 years ago, a "Computer" was a man who spent his work life with a hundred others just like him in a big hall, doing mind-numbing arithmetic all day in order to balance the company books. Then a bunch of eggheads at Bell Labs invented the transistor and all the human "computers" got fired, only to learn Cobol a while later and get their revenge by coding the Y2K bug into almost every semiconductor-based device ever built. This funny anecdote leads us to this month's topic: Arithmetic in Rexx, what computers were originally intended for. Math stuff.

Chances are you're going to need to do basic number crunching in your scripts and macros, even if your task isn't actually mathematical in goal. It's needed for simple counting jobs (how many words are in a file maybe) calculating what part of a string to snip out (perhaps to get a stock quote or a name), and controlling the flow of a program (you might want it to ignore every 3rd file in a list, or delete a piece of e-mail if it contains the word "FREE!" more than twice). Arithmetic is just one of those things you're going to have to learn, but fortunately, you only need to learn how to phrase the problems, the computer does all the hard stuff.

To do all the basic mathematical operations in Rexx is easy because nearly everything is written as you would write it down on a piece of paper. Here's an example that you don't need to type in:


/* Two plus two */
Say "Two plus two equals:" 2 + 2


Since the 2 + 2 part is outside the quotes, Rexx performs the calculation and prints "4" as the answer. Since you learned how to use variables in Part 2, here's an example of the same program written slightly differently:


/* Two plus two */
Answer = 2 + 2
Say "Two plus two equals:" Answer


What's different is that we performed the calculation and stored it temporarily in a variable called Answer. Since the variable stores a number, we can perform arithmetic using the names of the variables as well as the numbers themselves. For example:


/* Two plus two times two */
Answer = 2 + 2
Answer = Answer * 2
Say "Two plus two, times two equals:" Answer


Notice the "Answer = Answer * 2" line, there's two new concepts here. First is that we can use the names of variables in mathematical formulas and Rexx will substitute them for their stored values when the program is run. Secondly, the calculated result of the multiplication is not stored in the variable that comes before the equals (=) sign until everything after the equals sign has been computed. So, we can recycle the variable if we want. Here's what's happening in the computer's memory if you're confused:

The code as you typed it:
Answer = Answer * 2
Rexx now works on what comes after the equals sign, substituting the variable names for their stored values:
Answer = 4 * 2
Now it solves the problem:
Answer = 8
And finally it stores the value of 8 in the variable called Answer, overwriting the value of 4 that was previously stored there. It does not add 8 to 4.

This is a simple convenience, but it lets us recycle variable names without having to create temporary place-holders all the time. We could have used a line such as:

Answer = Answer + Answer * Answer - Answer / Answer

And Rexx would have worked it out to mean this:

Answer = 4 + 4 * 4 - 4 / 4

The symbols used by Rexx for basic arithmetic are universally shared with almost every other programming language in existence. In school you might have been taught to use an 'X' as the multiplication sign and the horizontal line with two dots as the division sign. But since the 'X' could be mistaken for a variable name, an asterisk (*) was used instead. And since there's nothing on the traditional keyboard layout for the division symbol, a forward slash (/) is used instead. Not surprisingly, you can't use any of these symbols (+, -, * or /) in the names of your variables, even if you don't put any spaces in them.

One interesting note about the division sign. There's actually three you can choose from, each performs a slightly different function. The standard forward-slash will do a plain and straightforward division. The result of 7 / 2 in Rexx is 3.5. But then there's the percent sign ( % ) that performs the division, but only gives you the whole number portion of the result, forgetting the remainder. 7 % 2 would give you 3 as the result instead of 3.5. The opposite of the percent sign is the double-slash ( // ) which performs the division but only gives you the remainder, forgetting the whole number portion. 7 // 2 would give you 5.

This double slash thing is often used to tell whether a variable stores an odd or an even number. If you divide by 2 and it returns 0 as the remainder, then you know it's an even number. Anything else and you know it's odd. For example:


/* Is this an odd or even number? */
Say "Please give me a number"
Parse Pull TheNumber
if TheNumber // 2 = 0
	then say "This is an even number"
	else say "This is an odd number"


Save this as "oddeven.cmd" and run it a few times, giving different numbers each time. I happen to use a test like this in the script that helps assemble OS/2 e-Zine!'s pages to decide what kind of advertising banner should run along the top. Odd pages get two small ads, even pages get the full sized ads. Assume the page right after the Table Of Contents is #1 and see for yourself (pages without advertising aren't counted in the numbering). One tiny little chore automated with the help of a little arithmetic.

Now be rebellious and run the program again, typing your name instead of a number. Notice something? The program crashed, showing you what the line was that it crashed on and why. "Bad arithmetic conversion" it said. What happened is that Rexx trusts you. If you program it to expect numbers to be typed in, it'll assume so and won't question you until it actually comes time to do mathematics and other number stuff on them. It said "Bad arithmetic conversion" because Rexx stores the contents of every variable as a string, converting them from a couple of characters glued together into meaningful values only when it actually needs to perform arithmetic on them. If, as it tried to convert your name into a number in anticipation of performing division, it actually finds out that the variable doesn't have a number after all, then it stops the program and complains. Up until that point it assumes everything is groovy.

You've got your first taste of how to debug a program there. Rexx, being an easy language, is very helpful in the way it reports problems. It'll give you the line number, it'll give you the context (more on that when we come to loops and procedures), and it'll give you the actual line of code itself with a fairly descriptive reason why the program was stopped. This makes it easy to track down the right line of code in a big program, and tell if it was just a typo or a more serious design flaw. We'll discuss more about debugging in another issue.

Coming up in Part IV is a look at looping, where things really start to get powerful. Soon we'll also get into the useful stuff where we write simple macros that control a larger application.

 
(editor@os2ezine.com) Chris Wenham is the Editor-In-Chief of OS/2 e-Zine! -- a promotion from Senior Editor which means he now takes all the blame.

***********************************

Subscribe for FREE

If you would like to receive notification when new issues of OS/2 e-Zine! are posted or remove yourself from our notification list, use our on-line subscription form at http://www.os2ezine.com/subscrib.htm -or- send an e-mail to subscribe-request@os2ezine.com with only the word:

     subscribe 

in the body of the message. 

Please make sure your software is properly configured with your e-mail address! 

If you have problems please (feedback@os2ezine.com) e-mail us or contact us at:

Falcon Networking
4302 NW 25th Terrace
Gainesville, FL 32605

800-595-1974 (US and Canada)
352-335-9693 (elsewhere)

***********************************

Sponsor OS/2 e-Zine!

Corporate Advertisers

OS/2 e-Zine! has space for a very limited number of corporate advertisers.  A variety of affordable high impact, inline graphical advertising options are available.  Arrangements are available for multiple issue insertions.

For more information please (sales@os2ezine.com) contact us via e-mail or phone 800-595-1974 in the US and Canada or 352-335-9693 elsewhere.

Readers Can Sponsor Too!

If you feel OS/2 e-Zine! is useful, entertaining or educational, please send whatever 12 issues are worth to you.  Even sponsorship of a few dollars is appreciated.  Individuals sponsoring US$ 15 (or CDN$ 20) or more will be listed in our Sponsors Page (with an optional link to their home page).

Please (feedback@os2ezine.com) send cash, cheque or money order (International or US, made payable to Falcon Networking) along with:

o A note stating that your contribution is for OS/2 e-Zine! sponsorship
o Your name
o Your address (city, state/province & country)
o Your e-mail address
o Your web URL if applicable.</ul>

Alternatively, you may choose to sponsor OS/2 e-Zine! by credit card through (http://www.bmtmicro.com/catalog/ezine/) BMT Micro, Inc.  BMT Micro accepts Visa, Mastercard, Discover, American Express, Diner's Club, and many other credit cards.  Just call:

(800) 414-4268 (Voice) 9:00am - 7:00pm EST
(910) 791-7052 (Voice) 9:00am - 7:00pm EST
(910) 350-2937 (Fax) 24 hours a day
(910) 350-8061 (Modem) 10 lines, all 14.4K, or
(910) 799-0923 (Modem) Direct 28.8K line

Or, use BMT's <a href="https://secure.falcon-net.net/BMT/order0261.html) Secure Order Form.  It's safe, fast and simple!</ul>

Remember, any amount is appreciated and whether you choose to sponsor or not, you will still be able to enjoy every issue of OS/2 e-Zine! on the WWW!

For more information or any other questions please (feedback@os2ezine.com) see our contact information.
 
***********************************

Corporate Sponsors

(http://www.blueskyinnovations.com/) BlueSky Innovations
Whether you want to boot multiple Operating Systems or from an Iomega Zip disk, we have a solution for you.

(http://www.bmtmicro.com/) BMT Micro
Your complete source for over 175 of the best OS/2 shareware applications available.  Drop by today and check out our WWW catalog or download the .INF version.

(http://www.ChipChat.com/os2ezine/) ChipChat Technology Group
ChipChat produces excellent 32-bit OS/2 software for wireless text paging and state-of-the-art multimedia Sound Cards for Micro Channel PS/2 computers.

(http://www.indelible-blue.com/) Indelible Blue
Indelible Blue, a mail order company, provides OS/2 software and hardware solutions to customers worldwide.

(http://www.maccasoft.com/) MaccaSoft
Developers of the multiplatform Java e-mail client, Emerald Mail.

(http://www.modulardreams.com/) Modular Dreams Inc.
A growing selection of graphics utilities and applications for OS/2 Warp and Java.

(http://www.prominic.com/) Prominic Technologies, Inc.
On-line sales & solutions for VisualAge, DB2, OS/2 Warp, Workspace on Demand, Notes/Domino, AIX Firewall, and Net.Commerce (design/hosting).  The best deals on IBM and Lotus software and hardware (PCs, Servers, and RS/6000s) -- with OS/2 preloads!

(http://www.rsj.de/) RSJ Software
The successful software CD-Writer for OS/2 by RSJ. CD-Writer is suitable for backup, data filing, creating Audio CDs etc. and is compatible with most CD-Recorders.

(http://www.prioritymaster.com/) ScheduPerformance, Inc.
Dramatically improve performance on your OS/2 system now with the patented priority scanning logic and visual priority identification of Priority Master II.

***********************************
Copyright 1998   -   Falcon Networking
ISSN 1203-5696
