[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.

For best reading of this ASCII version of OS/2 e-Zine!, use a text editor at full-screen width.]


OS/2 e-Zine!		April 16, 1997			volume 2, number 4
----------------------------------------------------------------
Copyright 1997		Falcon Networking  		ISSN 1203-5696

                  "Half a million readers and growing!"


OPINIONS:

  From the Editor
  Chris' Rant
  OS/2 Warp Advocacy
  Our Investment

 
DEPARTMENTS:

  the Beta File
  Obj. Desktop Tips
  Web Site Design
  the REXX Files
  How Do I?


FOCUS:

First LOOKS -- NeoN 2D Vector


REVIEWS:

-Hardware-
  Hewlett Packard ScanJet 5P - Bob Smith

-Software-
  Performance Plus V4 - Barry Brindisi
  FTP Browser v1.6 - Pankaj Sarin
  Orange Hill Workplace Solutions - Ron P. Lamb
  NetRexx - Tejaswi Kasturi
  MD+F Special Effects (Renders) - Chris Wenham

-Games-
  Vigilance on Talos V - Dr. Dirk Terrell


READER SURVEY:

Results from our March Survey
Find out what your fellow readers told us last month!

How long have you used OS/2?
Answer these 3 simple questions and find out how you compare to other OS/2 users.  Results will be printed next month!


ARTICLES:

Pirate's Paradise - Allan Mertner
The author of the SecureIt Shareware Protection package looks into the issues involved in making shareware safe.

Wrestling with Hardware - Eric Slaats
Eric tells of his wish for a new system and the resulting problems.  If you're thinking about upgrading your OS/2 system, read this!


END NOTES:

  Nethead's Nook
  Hot Sellers - the top 15 selling OS/2 applications from Indelible Blue.
  Hot Sellers - the top 10 selling OS/2 applications from J3 Computer Technologies.
  Hot Sellers - the top 10 selling OS/2 applications from BMT Micro.


ODDS & ENDS:

* 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 1997   -   Falcon Networking
ISSN 1203-5696

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


Sufficiently Advanced Technology

-----

Last month I happened to be reading a book of short stories by the "grand master" of science fiction, Isaac Asimov.  I'm not one of those who lives for Asimov's books (although I do like them) but something in this particular one (Magic -- published after his death) made me smile.

Asimov was speculating in an essay (titled, like the book itself, "Magic") on the old quote by Arthur Clarke about how sufficiently advanced technology would be indistinguishable from magic.  Asimov's particular question in his essay was whether the reverse is true: whether magic is necessarily indistinguishable from sufficiently advanced technology.  His position was that magic is actually quite different from even the most advanced technology but I won't get into that right now.

All this stuck in my mind because of one of the examples he used in the course of the article.  He suggested that the magically-opening mountain wall in Ali Baba and the Forty Thieves (you know, the "Open Sesame!" one) could be explained as magic or as a "sufficiently advanced technology": a computer-controlled, password-protected, automatic door.

Asimov dates himself here though.  In describing such a device, he first assumes that the password for the door would be typed into a computer keyboard.  Can you imagine Ali Baba sneaking into your office, just after you leave and staring blankly at your keyboard, not able to enter his "Open Sesame!" command and gain access to all your hidden treasures?

In fact, these days, you don't even need a computer to create the system Asimov described.  At any hardware store you can buy electric door locks for your house with a keypad built in.  They won't open the door for you, but they will unlock it.

But Asimov wasn't blind to the future; in an impressive display of intuition he went a little further than just the keyboard password example:

"Indeed, the time may well come when such a computer may be designed to respond to the spoken command.  In that case, it is inevitable that some jokester will have the computer open the door at the command 'Open Sesame!' "

He even suggests that,

"A computer may be designed to respond only to the typical sound pattern of a particular voice and then only you may open the door, even if the whole world knows the code word."

Sound familiar?  You can imagine how this made me smile.  That would keep Ali Baba's grubby little hands off my ill-gotten gains!

(This also made me a bit sad.  Asimov died in 1992, a few years before the first commercially available operating system with built-in voice control was released, so he never got to see how close he really was to the future he was imagining.  The article was written in 1985.)

Asimov's article and something in our current issue gave me an idea.  This month's Beta File includes details of a beta test for a new PM-based home automation system (it controls standard -- and inexpensive -- X10 CP290 hardware to turn lights, TVs, etc. on and off).  This started me thinking: if I could just find some sort of suitable automatic door opener (not just a lock, but an opener -- I've got to go all the way!) and plug it into an X10 outlet, I could use Warp 4's voice recognition to watch out the window of my office, opening and closing the front door for people as they approach.  I bet that's not what IBM had in mind when they developed VoiceType. <g>

My idea for an 'Ali Baba door' may never happen though.  After all, I learn from other people's mistakes.  I don't want to return to my hideout some day and find that some mischievous modern-day Ali Baba has discovered my secret password and made off with all my treasures -- including my voice-understanding, door-opening computer itself!  And I'm not sure my insurance agent would cover that sort of break in.

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

Corporate Sponsors of OS/2 e-Zine!

-----

(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.4ctc.com/) CrossTec Corporation
NetOp Remote Control Software for OS/2 with cross platform support to Windows (either direction).  Free evaluation copies available.

(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.emtec.com/) EmTec Innovative Software
EmTec Innovative Software produces state-of-the-art OS/2 ISDN, modem and telnet communications software.  OS/2 Magazine and Inside OS/2 1995 award winner.

(http://www.fx.dk/) F/X Communications
Home of the top selling (http://www.fx.dk/injoy/) InJoy dialer, ranked #1 in worldwide OS/2 shareware sales (Jan-97).

(http://www.hotinc.com/) House of Technology, Inc.
Your Canadian Source For OS/2 Applications.

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

(http://www.os2store.com/) J3 Computer Technologies
Serving the Global OS/2 Community, large and small!

(http://www.kellergroup.com/) Keller Group Inc.
Developers of FaxWorks for OS/2 and PMfax, the fax and voice solution for OS/2, with versions for stand-alone, LAN and Internet Faxing.

(http://nick.secant.com/mr2ice.htm) MR/2 ICE Internet Email Client
Delivering the electronic mail features of the future, today.  A product of Knightware Software Company.

(http://www.Mount-Baker.com/) Mt. Baker Software
Developers of Money Tree, a full featured personal financial package for OS/2.

(http://prairie.lakes.com/~oberon/) Oberon Software, Inc.
Home of TE/2, TE/2 Pro and other fine OS/2 programs.  Specializing in telecommunications and the Internet.

(http://www.pcs-soft.com/) Perez Computing Services
Defend against desktop freezes with Ctrl-Alt-Del Commander and create online documents/help with the IPF Editor.

(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.

(http://www.softouch.com) SofTouch Systems, Inc.
Home of the bestselling set of disk and desktop maintenance products for 
OS/2: GammaTech Utilities, UniMaint, and FileStar/2!  ---- Your System's Safe and Sound with SofTouch Around

(http://www.stardock.com/) Stardock Systems
Providing quality software for the home and office.

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

Thank you, Monty Python

In February's column I happened to provide a pointer to an IBM press release on Microsoft's web site that said some very flattering things about OS/2.  A couple of days after the e-Zine! column was published, the document mysteriously vanished in a puff of 404 errors.  Good golly, I didn't know Big Bad Microsoft (tm) was so afraid of little me (oh, and before you remark about the PC Week column by Peter Coffee that mentions the same URL, I got mail on Feb. 27th alerting me that Microsoft had yanked the page, and (http://www.pcweek.com/opinion/0303/03coff.html) Peter's column is dated a week later on March 3rd, so nyah!)

Well guess what, folks?  (http://www.microsoft.com/industry/output_noframes/press/press314.htm) It's baaaaack!  Except this time Microsoft just couldn't keep their meddling paws to themselves and decided to respond to it with a few [lies, damn lies] and statistics from Mentis Corporation too.  I could possibly believe Microsoft's sincerity a little more if it wasn't for the fact that the press release was dated July 23, 1996.  If it takes 8 months for them to reply to a simple piece of PR, maybe this explains their software release schedule.

My real gripe for this month is just a wee bit unrelated to OS/2 but is worth talking about anyway.  Junk e-mailers have decided they're going to use the e-mail account you pay for as their advertising medium and they apparently don't give a damn what you think about it.

Unsolicited junk e-mail is cheap y'see, that's the draw; it's infinitely cheaper than using the traditional mail service which still costs 32 cents (US) per letter for first class no matter how many you send at a time.  So far this advertising medium hasn't drawn many respectable businesses, but it has drawn an incredible number of fly-by-night con artists interested in selling you pyramid schemes, mail-order scams, more bulk spam lists or the software that generates them.

The problems you have to suffer with are now mounting.  For example, a junkie sending out bulk spam will offer to remove your address from his mailing list if you reply to the message and type "REMOVE" in the subject line. The problem is, the junk-mailer has already faked the message header with a phony origin (I once got mail from "whodat@secretsender.com") so your request won't go anywhere.  If the return address is valid, or they give you a different address to reply to somewhere in the body of the message, you'll probably find that the junk mailer is so dishonest he won't even comply with your request when he gets it.  But what you've just done for him is verify your account is still active -- allowing him to sell your address to another spammer for a premium.

That's pretty low.

My advice is not to consider purchasing any product or service advertised through an unsolicited e-mail.  A company that abuses e-mail this way is unlikely to be one you can trust.  They have already proved that they don't care if you have to pay by the minute to download their junk, and they probably wouldn't care if you complained or asked to be taken off their mailing lists either.  Why should they deserve your business?

I've played around with the filtering capabilities of PMMail to try to screen out this stuff; the problem is that most filters don't seem to be sophisticated enough without having to write a REXX script.  As a suggestion to the authors of OS/2 e-mail clients, how about putting some good (but optional) spambuster filters in there?

I have the feeling it will be a long time before the junk-mail industry ever gets around to cleaning up its act.  Until then, I guess we all just have to grin and [delete] it.

-----

(http://www.spectra.net/~fox/) Chris Wenham is a Team OS/2er in Binghamton, NY with a catchy-titled company -- (http://www.spectra.net/~pendulum/webworks/) Wenham's Web Works.  He has written comedy, sci-fi, HTML, Pascal, C++ and now writes software reviews.

***********************************
	
OS/2 Warp Advocacy	- by Barry Brindisi

-----

In reading comments from the many various posters in the newsgroups dealing with OS/2 and some of the folks that dwell in the #OS/2 channel, you might think that all OS/2 users walk around foaming at the mouth and are ready to shoot down anyone that gives an opinion that differs from their own.  I've already met quite a few who have this impression.  An impression that really is not the case for most OS/2 users.

Unfortunately, many of these non-foaming OS/2ers tend to stay quiet and lurk behind the scenes.  When they see posts made by someone unfairly attacking someone else, not many of them seem willing to speak up.  For those who are reading this and may be thinking of using the newsgroups or the #OS/2 channel on IRC for help and info (or general chatting), be assured that not all OS/2 users go around torpedoing new visitors to these places.  Very few people are actually responsible for this kind of pathetic behavior.  On the other hand, many people that visit these places tend to be rather silent on the subject.  As a result, they seem to give tacit approval to these few, more vocal, individuals.  This should really not be the case.  Don't be afraid to speak up if you don't agree with someone!

This should always be done in an intelligent and polite fashion though!  Engaging in attacks on someone's character is definitely a good way to drive people away.  This is something that has been done to a number of individuals (both advocates and developers).  Keep in mind that the barbs you post to the various newsgroups and elsewhere are potentially read by millions of people, many of whom may be interested in learning about OS/2 Warp and what is available.  Just ask yourself, "Would I want to deal with a platform where everyone seems to do nothing but complain and attack?"

Does this mean, that we can't criticize a company for a poor product or because it lacks some feature?  Actually, this depends on how it is done.  Stardock's Galactic Civilizations 2 is an excellent example of a product that has grown steadily better because of constructive criticism made in the comp.os.os2.games newsgroup.

In the original 2.0 version of Galactic Civilizations, there were no "enhanced Governors" to help manage the various social projects for various planets.  In Galactic Civilizations 2.5, enhanced governors were added to automate the process of handling these various social projects.  This was done because of the constructive commentaries made about this game.

Because Brad Wardell is still getting a lot of positive and negative reactions to the 2.5 version, Stardock has come out with a new (http://www.stardock.com/) Galactic Civilizations Expansion Pack that has many of the features that were asked for.  Keep in mind that this was all done because users took the time to talk to Brad in a polite fashion; as opposed to trying to "beat" their opinions into his head.  Incidentally, because of this type of treatment, Stardock has done, and is looking to potentially do, more game related products like "Trials of Battle", "Stellar Frontier", "Links for OS/2", "Entrepreneur", "Avarice: The Final Saga", "Galactic Federation" (a sequel to Galactic Civilizations 2) and others.

Stardock is not the only company that has had these kind of results; (http://www.softouch.com/) SofTouch Systems has had similar success.  According to Felix Cruz at SofTouch, they have been able to implement a lot of user-requested features into their products because of constructive criticism from customers.  GammaTech IRC 2.0, UniMaint 5.0 and GammaTech Utilities 4.0. -- each of these products has implemented or will be implementing many features "asked for" by end users who took the time to write to SofTouch, telling them what they wanted.  As Felix pointed out in a telephone conversation recently, "You can catch more flies with honey!".  How true.  (Please note that Gamma Tech Utilities 4.0 is currently under development and is not currently available.)

The point of the two examples above is that we can get a great deal accomplished by taking the time to communicate in a polite and friendly manner.  The same tactic can be applied to many of the other developers that already develop for OS/2 and those that are considering the possibility of doing so.  It should also be mentioned that same strategy applies to OS/2's many supporters.

On the other hand, to engage in what is commonly known on the Internet as "flaming" is to achieve the exact opposite.  There are really too many examples of just how counterproductive this kind of strategy can be.  Some time ago, Gary Hammer set up a web site for OS/2 users to quickly find popular utilities and other shareware (or demoware) products.  I am referring his "(http://www.musthave.com/) Must Have Utilities" web site.  Because this web site proved to be extremely popular, Gary required some support to help maintain the archive.  The folks at SofTouch were the first to offer to assist Gary in maintaining "The Must Have" site.  However, because Gary placed a couple links to SofTouch's web site, some people complained quite loudly.  This kind of tactic very nearly resulted in the loss of one of the most popular web sites in the OS/2 community.  Also, it did not help when many others chose to remain silent on the issue.

Remember, many OS/2 advocates like Gary are volunteers and they don't have to take this kind of abuse!  After all, they (like the developers) can easily spend their time on other projects instead of dealing with flamers who launch attacks on their personal characters.

I'd like to encourage each of you to become more vocal in the OS/2 newsgroups and elsewhere on the Internet!  When doing so, take the time to write in a polite and constructive fashion.  Being silent and letting a small minority of people ruin it for everyone is not an option.  Fortunately, there are already a few people who are doing just this, but more of them would be welcomed.

There are quite a few ways to advocate the use of OS/2 and seek changes in some of our favorite software.  One way to do this is to write in a constructive fashion about a particular subject that relates to OS/2 or about a particular software product and its vendor.  In other words, simply saying, "This product sucks!" in the subject line of an e-mail or in a post to a newsgroup simply serves to waste a lot of people's energy.  It would be much more effective to write in the subject line, "Help with product x" and write the nature of your problem in the body of the text.  This is assuming that you're looking for help with software or hardware.  Simply screaming that a product "sucks" will only serve to start an unneeded flame war and result in little or no help.

If you are not looking for help but simply want to post your experience and perhaps make some constructive criticism, by all means, do that too.  Just remember to be polite about it.  The software developers that read the newsgroups do indeed listen to what their users are saying.  However, they are more likely to listen to you if you write in a constructive fashion as opposed to simply engaging in senseless attacks on them.

Advocacy also refers to helping other people with their problems.  These folks are looking for help, not personal attacks on their character or their choice of software.  Such tactics usually serve to drive individuals away and may even leave a negative impression about the entire OS/2 community.  (Heck, this can be applied to any community that you may encounter on the Internet.) This can also include the sharing of an idea; even if it came from that other platform.  One example: a person on #OS/2 has said that he wished that "Cut" and "Paste" would appear in the pop-up menu when right clicking on the OS/2 Desktop a-la Windows 95.  This was actually a nice idea; however, the person was attacked by some of the individuals there.  Luckily, someone stepped in and told the others to behave and assure the individual that not all OS/2 users foam at the mouth.  Otherwise, the person would have left with a rather negative impression of OS/2 users and may have even dropped OS/2 from his computer.

But not all denizens of #OS/2 are this bad!  Generally, most of the folks that inhabit this channel are pretty decent and are given to some joking.  Unfortunately, it only takes a few to leave a bad impression; on the other hand, one or more person(s) can definitely make a positive impression.

-----

(pharyn@amug.org) Barry Brindisi has been dealing with computers since 1982 and has used a wide variety of computers and software.  He is just starting on a freelance writing career.

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

Our Investment	- by Kel Brown

-----

When we talk about investment we most often think about money but investment can also include resources in material and manpower.  We generally don't think about time as an investment unless it is lost.  Time is something we measure the investment with.  If a computer lasts five years then it has been a good investment.  When a  3.5" floppy that's holding a backup sits on the shelf for less than a week and already has bad sectors then we consider it a bad investment.

With Merlin (aka OS/2 version 4.0), users are enjoying features that were unavailable in previous releases and, more importantly, a much richer choice of software.  But our investment in OS/2 will increase the more we use it and we have to consider at this point the implications our dependency will have.

The quantity of native OS/2 software has increased dramatically in the last two years.  Netscape has given OS/2 browser parity with Microsoft users, Java on the Desktop provides a technology lead that other OSes won't address until their next major revision, Lotus is shipping a (partially) native version of (http://www.lotus.com/smartsuite/21b6.htm) SmartSuite and the evolutionary war between (http://www.southsoft.com/) PMMail and (http://nick.secant.com/mr2ice.htm) MR/2 ICE has produced two of the best electronic mail clients found on any operating system.  For (http://www.stardock.com/) Stardock Systems a special place in OS/2 heaven has been reserved, for no other single development house has contributed so much to the argument that OS/2 does have the applications and support needed by users.

When the only decent word processor to be found on an OS/2 system was (http://www.microsoft.com/) Word for Windows or (http://www.corel.com/) WordPerfect for Windows, the only choice was to dual-boot or start a Windows session, but with the proliferation of native OS/2 applications the choice has become not which one to use but whether to use them or not.  Before too long, DOS games will be the only reason to open a DOS session.  Whether or not things continue to improve depends largely on IBM and less on application developers.

IBM's attitude toward OS/2 has finally been defined and while it guarantees a future for corporate users, the needs of the home user have been, to a large degree, ignored.  Full screen DIVE, which would have made OS/2 a competitor with Win95 as a gaming platform, has been abandoned.  No announcement about support for USB (Universal Serial BUS) or DVD (Digital Versatile Disc) is forthcoming.  Support for these technologies would mean more choice for the home user but IBM's focus is the corporate user.  For them, chasing the bleeding edge of technology only means increased cost.  IBM feels they only have to provide support when a specific technology becomes common and even then, only if it fills some need of the business world.  There is a very large possibility that OS/2 will become second best by virtue of its success in business.  Second best is not the reason we started using OS/2 in the first place.

OS/2 users have long been known as power users, people who need to ride the cresting wave of new technology.  We needed OS/2 because we needed the power only it could give us.  Now it is in danger of becoming an operating system that is merely 'good enough'.  Our dependency is at issue here.  Will our reliance on OS/2 today cripple our ability to work and play tomorrow?  More importantly, will it prevent us from making a transition to another operating system in time to judge our investment 'good enough'?

Will things continue to improve?  If they do not, are OS/2 users going to have to start dual-booting to some form of Windows again just to be able to keep up?  How long will that continue before users abandon it all together in favour of an OS and a company that wants to cater to home users?  How will our investment be regarded then?

We cannot afford to hold our breath and hope for the best any longer.  At no other time in this operating system's history has there been more evidence to refute the claims of industry know-it-alls that insist, "OS/2 is dead".  Native application support is here and with the huge push behind Java there is every reason to believe it will stay that way.  The challenge now is to convince IBM that investing in OS/2 by continuing to improve the product, for the home user as well as for their corporate customers, is worth it.

-----

(kjbrown@cs.stmarys.ca) Kel Brown is a Math and Computer Science major at Saint Mary's University.  He is an avid OS/2 supporter and a member of Team OS/2.

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

the Beta File	- by Ryan Dill

-----

Welcome back to the Beta File, your source for the latest breaking news in OS/2 beta development.  Every month we scour the OS/2 world to bring you interesting news of OS/2 software in development.  If you have a product that you're sure is going to be the next killer app, or you want a little free exposure for your beta test (feedback@os2ezine.com) drop us a note!

                  *   *   *

(http://www.cds-inc.com/) Computer Data Strategies, Inc., best known as the makers of BackAgain/2, recently let us know about a new product of theirs currently in beta: MBox, a commercial 32-bit cross-platform e-mail server.  The OS/2 version will take full advantage of OS/2's multithreading and prioritizing, allow for easy installation (even via CID), and have a GUI which makes setup and maintenance a breeze.  (After the OS/2 version is released, versions for Windows NT and Windows 95 will follow.)

CDS feels that MBox will be useful not only to the corporate user, but to the SOHO user as well -- with its mail exchanger option, MBox allows even systems without a permanent Internet connection to reap the benefits of their own e-mail servers.  Including support for mailing lists, and compatible with all major OS/2 e-mailers, MBox promises to be a solid server which performs well even on low-end 486 systems.

A closed beta cycle has been going on for two months now, and CDS hopes to have the product ready for commercial release by the second quarter of 1997 (price to be announced at that time).  (benson@cds-inc.com) Brad Benson, lead developer on the project, had this to say about MBox:

"MBox for OS/2 continues CDS' strategy of providing high-quality commercial applications for corporate IS departments utilizing OS/2.  Unlike many other POP3 and SMTP offerings for OS/2, MBox is a commercial-grade product with commercial-grade support.  Support will be available via web, e-mail, phone, fax, and BBS.  Additionally, 24x7 support will be available for those customers that require it."

                  *   *   *

Turning from e-mail maintenance to home maintenance, (caffi@ibm.net) Dennis Cafi is in the midst of developing Home Automation System/2 (Home/2 for short), a program which will allow you to control your X10 CP290 Home Control Interface Unit from your OS/2 system.

For those who don't know, the CP290 is a hardware gizmo which allows you to control various appliances in your home automatically, from your computer -- turning lights on/off at certain times, set the TV to turn off at 1AM just in case you fall asleep, etc.  Not only can this save energy by making sure you don't leave appliances on by mistake, but it also provides a security feature when you're away; it appears that someone's home, which may scare off potential burglars.  Control software for the CP290 is available for the Windows, Macintosh and Linux, so Dennis is making sure that OS/2 users don't get left out.  (More info on the CP290 can be found (http://www.smarthome.com/smarthome/xtcp290.html) on the web.)

The beta cycle has just started, so if you have an X10 CP290 and want to join in, just download the file from (ftp://hobbes.nmsu.edu/old/os2/wpsutil/home2.zip) Hobbes (when Hobbes reorganizes it'll move to (ftp://hobbes.nmsu.edu/pub/os2/util/wps/home2.zip) here) or the (http://www.os2ss.com/wpsutil/home2.zip) OS/2 Supersite and try it out, sending any comments to (caffi@ibm.net) Dennis.

Home/2 is expected to be out of beta somewhere between May and June of '97, will be shareware, and will probably carry a US$15 price tag.

                  *   *   *

The people at (http://www.truespectra.com/) TrueSpectra Inc., who brought you the powerful graphics creation/manipulation program Photo>Graphics, are now working on the beta of the PRO version of Photo>Graphics v2.0.  The PRO version of the software will add new features like TWAIN scanning, the ability to automate repetitive tasks with REXX, more image effects, a much larger clipart/image library, Postscript output, and more.

"TrueSpectra Photo>Graphics PRO is an advanced graphics creation and manipulation application designed for easy creation of high quality, high resolution, professional images...  Even a novice becomes enabled to create stunning graphics combining digital images, sharp graphics effects, vector drawings and text."

Private testing of Photo>Graphics PRO has been ongoing for about two months, and TrueSpectra has now decided to implement a 100-participant public beta.  If you'd like to participate, sign up at (http://www.truespectra.com/products/beta.html) TrueSpectra's web site; beta testers will continue to be accepted until the limit is reached.  The full commercial product is expected to be available for purchase by the end of April, at which time a downloadable demo will be available from TrueSpectra's web site.  Photo>Graphics PRO is expected to sell at $249.95, although existing users of Photo>Graphics can upgrade for only $99.95.  (Note that these prices are SRP -- dealers will likely sell for less.)

In the words of TrueSpectra's Terry Hamilton, "TrueSpectra will continue to support OS/2 as an ideal platform for high power graphics applications."  Good to hear.

                  *   *   *

Also this month, there is news of a new Java application just entering the early beta stages.  Jesse Sightler, maintainer of (http://www3.pair.com/jsight/OS2Land/) OS/2 Land, is busy working on something that anyone who has a large list of HTML links will appreciate -- Java ALiVe!.

Java ALiVe! is an application which will take an HTML page, and basically check each of the http:// links to make sure it exists.  Start ALiVe! running and go get a snack; when it's done, it pops up a window telling you which links (if any) couldn't be accessed.  This way, if a web page has moved to a different address, if its site is down, or if it's simply gone altogether, you'll know.  ALiVe! saves you the long and boring effort of checking each of the links manually, which, if you have a lot of sites catalogued, could take hours.  ALiVe! also has the ability to save failed URLs in a file so you can deal with them at your leisure.

Since it parses a normal file for http:// links, it should also work just as well on your Netscape bookmarks file (and possibly similar files, like WebExplorer's EXPLORE.INI), to let you know which of your bookmarks are invalid.

For anyone who wants to download ALiVe! and try it out, its home is at (http://www3.pair.com/jsight/Java/) http://www3.pair.com/jsight/Java/, where the latest code can always be found.  If you have questions, you can join the ALiVe! mailing list; instructions for doing so are also at the above page.

-----

(dill@glinx.com) Ryan Dill is a student in Computer Science at Acadia University in Wolfville, NS and copy editor for OS/2 e-Zine!.  He is reported to be relieved that, with the advent of Warp 4, talking to your computer is no longer considered a sign of mental instability.

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

Object Desktop Tips	- by Alexander Antoniades

-----

How to make Object Navigator behave like the old Norton Navigator

There's an undocumented feature in Object Navigator that Stardock created for one of our corporate clients.  In order to activate this feature you have to add the following statement to your CONFIG.SYS:

SET OBJD_AUTOTILENAV=1

and then reboot.

Once you've done this, Object Navigator will automatically horizontally tile any new instance of itself after the first one in the same window space that the original occupied.  For example, if you have one instance of Object Navigator loaded and then you launch a second, the window area that the first occupied will now be shared by two instances of Object Navigator, so that you can copy files easily between the two.

There is one caveat to this approach and it is that you may run into problems if you launch additional copies of Object Navigator while in another virtual Desktop besides the one in which the first instance was launched.  If you usually do this, enabling this option may not be for you.

The Tech's (Stardock Tech Support) Files: The case of the Oversized Package

An Object Desktop Professional user was complaining when it seemed that his hard drive space was being eaten up on an almost daily basis so that regardless of how much free space he would have one day, the next day it would gone.  The culprit, he noticed, was an increasing number of oversized package files created by his daily backups which we're created by the Desktop Backup Advisor.

Agent Ford Mulder was immediately suspicious when he saw how big the individual package files were, over 9 MBs each.  "A package file, even one containing a Desktop, should never be that big unless that Desktop contains actual files," he stated matter-of-factly.  He asked the user whether he normally kept any actual files (not shadows) on his Desktop, which is always something to be avoided.

The user vigorously denied doing this and Agent Ford could tell by the tone in his voice that this wasn't some corrupt, rogue agent telling lies to protect "the cause."  Luckily the user had a Desktop utility on hand to analyze the size of his Desktop directory.  The result of 9 MB confirmed Agent Ford's suspicions that there were files on the Desktop that were causing the package files to be so huge.  He advised the user to change to his Desktop directory from an OS/2 Command Window and type

DIR /S /P

to recursively search the directory while pausing at each screen of information.

As the directory structure was revealed, Agent Ford's jaw dropped in amazement as the true scope of the problem was revealed.  It turned out that somehow the user's shadows of multimedia objects had somehow become copied complete with actual multimedia files to the Desktop.  After returning the data files to their original homes in the MMOS2 directory, the Desktop was slimmed down to a more reasonable 500k and the package files would doubtlessly be slimmed down as well.  The user thanked Agent Ford and quickly hung up to phone to enjoy his now cavernous hard drive.

After all this Agent Ford leaned back in his chair and pondered.  Someday, he thought, we will understand all of the subtle intricacies of how OS/2 operates and how it can vary so much from system to system.  Until that time, however we'll just have to keep searching and doing the best we can.  After all, the truth is in there.

-----

(sander@stardock.com) Alexander Antoniades is the former Associate Editor of OS/2 Magazine and the current Vice President of Marketing at Stardock Systems.

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

Designing Web Sites With OS/2	- by Tejaswi Kasturi

-----

Greetings fellow Warped Webbers!  

I bring you this column in an effort to convey the strengths and weaknesses of OS/2 in designing and producing a first-class Worldwide Web site.  I will also discuss products and services which are useful in producing a Worldwide Web site, and useful hardware and software tips. 

Background

First, a brief history of my experience in developing Web sites.  I started using the Web in late 1993, using (http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/) NCSA Mosaic under a (http://www.sun.com/desktop/) Sun SPARCstation, since OS/2 did not have a decent Web browser as of yet.  I began to experiment and write Web pages in early 1994, and found that there were few OS/2-related sites on the Web.  I strove to remedy this situation by creating my (http://www.cacr.caltech.edu/~kasturi/os2.html) OS/2 Internet Resources site to serve as a jump-off point for OS/2 related Web sites, FTP servers, and Usenet newsgroups.  Ironically, the site was originally developed using (http://www.sun.com/desktop/) SPARCstations because of the dearth of OS/2 Web browsers.

(http://www.ibm.com/) IBM remedied the situation with (http://www.raleigh.ibm.com/WebExplorer/) WebExplorer, and I quickly moved site maintenance to my OS/2 box, a Comtrade 486DX/25 with about 700 MB of disk space and 8 MB of RAM.  This system, although glacially slow by today's standards, was quick enough to do reasonable Web development.  As I have migrated to newer machines, I have continued using OS/2 as my primary development platform for various projects, including consulting for the (http://www.huntington.org/) Huntington Library and Gardens, and being a Webmaster for (http://www.innovagrafx.com/) Innovagrafx, Ltd..  I use Warp 4 today for my Web/Intranet design company, (http://www.4m.pair.com/) 4th Millennium Consulting Group, because it is the best solution for the task at hand.

Why OS/2?

OS/2's Workplace Shell interface, coupled with some enhancements such as (http://www.stardock.com/object_desktop.html) Stardock Systems' Object Desktop 1.5, is a near-ideal project manager and workspace.  Using Work Areas and Virtual Desktops makes multitasking much easier under OS/2 than with any other operating system.  Together with OS/2's world-class reliability and performance and the plethora of available HTML and text editing tools available, the Workplace Shell allows fast and reliable Web site design.

Furthermore, IBM's dedication to (http://www.javasoft.com/) Sun's Java programming language has quickly made OS/2 an excellent platform for writing Java applets for the Web.  Although most Java development tools are still only available for Windows 95, OS/2's reliability coupled with IBM's fast and effective (http://www.ibm.com/java/) Java Development Kit and the (http://www2.hursley.ibm.com/) NetRexx programming language have made Warp 4 a major player in the Java development arena.  (See my review of NetRexx in this issue.)

When my projects became more than a few pages in scope, I quickly found problems with writing straight HTML, such as the need for standard headers and footers on each page with such information as modification date, URL, and Next/Previous page links.  Including these headers and footers in every page made changing the look of the site -- even by a small amount -- a nightmare.

Fortunately, OS/2 presented a solution to the problem through REXX, its built-in scripting language.  (http://www2.hursley.ibm.com/rexx/) REXX and (http://www2.hursley.ibm.com/orexx/) Object REXX, included in Warp 4, are extremely good at text manipulation and file-handling, which made them ideal for writing HTML.  Many sites overcome these problems by using CGI scripts written in languages such as Perl on their Web servers.  However, since the information on the page is static and machine-generatable, having to run a CGI script every time a Web page is accessed can quickly overburden the server.  Instead, I created several (http://www2.hursley.ibm.com/rexx/) REXX/(http://www2.hursley.ibm.com/orexx/) Object REXX scripts which take HTML files, tack on header and footer information, and do appropriate substitution for things such as modification date, URL, and Next/Previous page links.  As of now, most of these scripts have been ported over to (http://www2.hursley.ibm.com/NetRexx/) NetRexx, a REXX-like language which compiles to platform-independent Java bytecode, so that I will be able to run these scripts on another platform if need be.

Why not OS/2?

OS/2 is not perfect for every job, however, despite what the fanatics say.  OS/2 is a great all-purpose development platform, but it has some weaknesses which other operating systems are tailor-made to address.

For sheer server efficiency and flexibility, I have yet to find a better solution than (http://www.freebsd.org/) FreeBSD UN*X.  I run FreeBSD on our internal test server, my ancient 486DX/25 with 8 MB of RAM, and it is quite usable.  Our Web hosting provider, (http://www.pair.com/) Pair Networks, uses FreeBSD on all their servers (high-end Pentium Pro based machines).  Few OSs have this kind of scalability while retaining performance and taking advantage of the newest technologies.  I would not want to run OS/2 Warp 4 or Windows 95 on a 486DX/25 (although I am sure it is doable).

For testing the newest software and technologies, we need to use Windows 95 or Windows NT 4.0, since most products these days come out for those platforms first.  I need to check my Web site designs on various browsers which are not available for OS/2, such as (http://www.microsoft.com/ie/) Microsoft Internet Explorer and (http://www.netscape.com/) Netscape Communicator beta, so I use these platforms.

For graphics work, a Macintosh may be best.  Many of the graphics I have used over the years have been created with a Macintosh using tools such as PhotoShop and Kai's Power Tools.  Although these tools have been available for the PC for some time, they still work best under the PowerPC chip with its hefty floating point performance.

Ultimately, getting the task done is the most important thing, and each individual must evaluate his work and the attributes of the various operating systems available in order to come to a judgment.

Where do we go from here?

Every month in this column, I will explore the ins and outs of effective Worldwide Web site design under OS/2.  I will mention hardware, software, tips and tricks, and even other operating systems if that is how to get the task done best.  All topics are open to discussion, as long as they pertain to OS/2 and Web site design in some way.  If you have a topic you would like to discuss, send me e-mail at (tej@4m.pair.com) tej@4m.pair.com.

Next month, look for a description of the hardware I use and how to buy optimal hardware for web development under OS/2.  (Web-optimized hardware is quite different from what many people are used to in the generic computer market.)  I will explore how to prioritize your purchases for maximal effect.

-----

(tej@4m.pair.com) Tejaswi Kasturi is a Founding Partner in charge of web site/intranet design and system administration at (http://www.4m.pair.com) 4th Millennium Consulting Group, an Internet strategy consulting and web site/intranet design firm.  In his spare time, Tej uses OS/2 Warp 4 to maintain the (http://www.cacr.caltech.edu/~kasturi/os2.html) OS/2 Internet Resources site, an OS/2 e-Zine! Site of the Week.

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

the REXX Files	- by Dr. Dirk Terrell

-----

Last month we looked at a REXX program that would scan a text file and replace all occurrences of a string with the contents of a file.  Such a program is useful as a preprocessor for things like HTML files and programming source code.  This month, let's look at another utility I wrote a while back that is somewhat similar and perhaps even more useful: replall, a program to replace all occurrences of one string with another in a list of files.

In the REXX spirit of not recreating something that already does a job perfectly well, my program makes use of a handy REXX program called (http://www.os2ss.com/dev32/rexx/rxmulch2.zip) RxMulch written by Rony G. Flatscher.  RxMulch is a REXX program that can count the number of occurrences of a particular string in a file , as well as replace all occurrences of one string with another within a file.  RxMulch is an extremely useful tool, and is also very easy to use.  You can call it as a stand-alone program or as a function within another REXX program, and can specify parameters either on the command line or in a control file.

To use RxMulch as a standalone program with a control file, the calling form is:

RxMulch input_file output_file control_file

To enter parameters on the command line, use the form:

RxMulch input_file output_file /switch

where /switch is one of several program switches for performing different functions.  Rather than describe all possible switches here, I will cover only the switches that will be used for the purposes of the program we are building.  The RxMulch documentation covers all the different switches and gives plenty of examples for performing various functions.

As an example of command line switches, let's create a program called lines that simply counts the number of lines in a text file.  On an OS/2 system, lines of text files are terminated by carriage return (ASCII 13) and linefeed (ASCII 10) pairs.  So, all we have to do is call RxMulch and ask it to count the number of CR-LF pairs.  The switch we need is the /F (or Find) switch which finds and, optionally, replaces strings.  This switch has the follow format:

/Fsearch_string/replace_string

where the two strings are delimited by a character that you specify right after the /F.  Let's use a period (".") as the delimiter.  Our call to RxMulch will then be:

RxMulch input_file /F.@c@l

Since we are only counting the occurrences of the CR-LF pairs, we have no replacement string and we don't specify any output file for the same reason.  But what is the story behind these @ symbols?  RxMulch treats the @ symbol as an indicator for special characters, like those that are normally unprintable, such as carriage returns, linefeeds, and tabs.  @c represents the carriage return character and @l represents the linefeed character.

Rather than having to type the above line every time, put it in a command file called lines.cmd with the first (and only) line being;

RxMulch %1 /F.@c@l

(The %1 tells the command file to take the first parameter that the user enters on the command line and replace the %1 with it.)  So, if you call the program like this:

lines c:\config.sys

if will count the number of lines in your CONFIG.SYS file.

Now let's create our program that will replace all occurrences of a string within a set of files that we specify on the command line.  One common situation where you need this comes about when you need to change an e-mail address or URL in a large number of HTML files.  For example, your e-mail address changes and you realize that you have placed it at the bottom of all 5,000 HTML files on your web site.  Obviously you don't want to have to update them by hand!

RxMulch already provides what we need to replace a string in one file with another string.  But we surely don't want to run RxMulch 5,000 times manually, either.  Here we call on some REXX functions in the REXXUTIL library that we looked at not too long ago.

As usual, we need to register the REXXUTIL library:

/* Register REXXUTIL functions */
call rxfuncadd 'SysLoadFuncs','RexxUtil','SysLoadFuncs'
call sysloadfuncs

Next, process the command line. Let's make the calling form:

replall filespec separator target(separator)replacement

where filespec specifies the files we want to process, such as *.html, separator is the character that will separate the target string from the replacement string in the rest of the command line, and target and replacement are the target and replacement strings.  The code to parse the input (with a little error checking) is:

/* Parse the command line */
Parse Arg FileSpec Separator Rest
If Length(Separator)<>1 then do
   Say 
   Say "Argument 2 must be the separator character."
   Exit
end  /* Do */
Parse Var Rest Target (Separator) Replace

Notice the last line.  Why is the variable Separator enclosed in parentheses?  Enclosing a variable in parentheses in a PARSE instruction tells REXX to parse on the value of the variable, which in this case is the separator character.  This enables us to split the target and replacement strings where the separator character occurs.

One thing we have to watch out for is the @ character because it has special meaning to RxMulch.  So, what we do when we want an actual @ character in one or both of our strings, is to make sure that is it passed as the special character for that symbol.  The RxMulch character is @@ (The first indicates that it is a special character, and the second indicating that we want the 'at symbol'.  Compare this with the @c and @l characters above.)  To accomplish this, we call RxMulch as a function within our REXX program, and replace all @ characters with @@ thusly:

/* Escape the "@" character properly because it is the special character in RxMulch */
Target=RxMulch(Target,"/C.@@.@@@@.")
Replace=RxMulch(Replace,"/C.@@.@@@@.")

Now we are ready to get the list of files to process.  Use the SysFileTree function in the REXXUTIL library:

/* Get the list of files */
rc=SysFileTree(FileSpec,"File.","OF")

We're almost done.  The final step is to loop over all the files, and call RxMulch for each one.  When altering files like this, it is usually a good idea to make backup copies of the files.  The loop that does all of this is:

/* Now loop over the files and process them */
Do i=1 to File.0
   Say "Processing file" i "of" File.0 " " File.i
   BackupFile.i=File.i||".bak"
   "@copy" File.i BackupFile.i "1>nul"
   If rc=0 then 
      rc=SysFileDelete(File.i)
   Else Do
      Say "Could not back up" File.i "exiting..."
      Exit
   end  /* Do */
   Call RxMulch BackupFile.i File.i "/C"||Separator||Target||Separator||Replace||Separator
   rc=Stream(File.i,"C","Query Size")
   If rc="" then
      "@copy" BackupFile.i File.i "1>nul"
end /* do */
Exit

And that's it!  replall will perform the replacement on all files in the current directory that match the file specification that you give.  For example, let's say I have a bunch of HTML files with an old e-mail address, dirk@old.email.net, that I want to change to a new one, terrell@new.email.net.  If the HTML files all end in ".HTML", the call to replall would be:

replall *.html $ dirk@old.email.net $ terrell@new.email.net

and all occurrences of the old e-mail address in any file ending in ".HTML" would be replaced by the new e-mail address.

But what if you want to change the files not only in the current directory, but in all subdirectories below the current one?  You can make a one byte change in the above program that will do it.  Can you see how?  Next month I'll give the answer.

The (http://www.os2ezine.com/v2n4/replall.zip) sample code (ZIP, 2k) contains replall.cmd as well as restbak.cmd which will restore the files from the backup copies made by replall -- handy if you find that you typed the wrong replacement or target string.  You will, of course, also need (http://www.os2ss.com/dev32/rexx/rxmulch2.zip) RxMulch.

-----

(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.

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

How Do I?	- by Eric Slaats

-----

Hello, hello.  My mood has improved this month.  I've more or less won the battle with my hardware.  It's giving some last twitches here and there, but overall I'm pleased.  Everything seems to be very stable except for the video driver.  (It tends to lockup at unpredictable moments.)  However, days go by without this and I'm always prepared for it.  I have to use Win95 for the Delphi clinics I do and the problems Win95 (and Win NT) has with my new video card (S3 Trio) are much bigger that OS/2's.  Despite the annoyance, this gives me a good feeling about my favorite OS.

Anyway, back to the main stuff of this column.

Last month's column generated an interesting number of reactions.  The ideas displayed in some of them are too good to withhold from you all.  So I decided to look some more at the "unexploited feature" of using OS/2's capability to save and restore window size/position and frame presentation parameters.

I would like to address three issues that came up in the mail I received.  The nice thing is that a number of mails also contained solutions for the presented problems.  This is nice because it means the column writes itself. <g>

1) Using the OS2.INI file
2) Using FCF_SHELLPOSITION frame creation flag
3) Saving Minimized window positions

Using the OS2.INI file

Saving the Frame PP and the size and position info in the OS2.INI file with one command is very attractive, but it has some downsides for some OS/2 users.  The OS2.INI file is a binary database which can contain all sorts of information used by applications.  Last month we saw that the entries in INI files have a two level nature.  On the highest level, the application is the entry point.  For every application, a number of keys can be defined which can each hold data of any kind.  This way of storing info is used by the OS2.INI file as well as the private profiles (which we will attend to in a minute).

The OS2.INI file has a tendency to grow.  If applications add information to this file, but  don't delete it if they are uninstalled, a pile of junk will form in the OS2.INI file which will slow down the system.  This is the main reason people don't want applications to store info in the OS2.INI file.

However, there is also an upside!  The OS2.INI file is simpler to use than private INI files.  It's always open; this means a specific open command doesn't have to be given.  The same goes for a specific close.  Besides that, we have the use of functions like WinRestoreWindowPos and WinStoreWindowPos which will work specifically on the OS2.INI file.

And I like using the OS2.INI for yet another reason: it's fast.  Chances are that the info you're looking for in the OS2.INI is already in memory.  Since you don't have to open it, disk access is minimal.  So, if you need an application that must come up immediately and uses windowposition, PP and other information from an INI file, the OS2.INI is a great candidate.  Of course, a hybrid solution is always possible.  Save the time-critical info in the OS2.INI and the other info like paths, etc. in a private INI file.

Having said this, it's time to take a peek at profiles beyond the level we did last month without going into too much detail.

To use a private INI file, we've got to open/create one.  The nice thing about the function that handles this is that the INI file will be created if it doesn't already exist.  The API call to use is prfOpenProfile.

HAB   hab;         // Anchor-block handle
PSZ   pszFileName; // User-profile file name
HINI  hini;        // Initialization-file handle
 
hini = PrfOpenProfile(hab, pszFileName);

The hab isn't that exciting, it is simply the anchor block used when we defined.  The pszFilename, however, is important.  This must be a filename with full path (otherwise the current path is used).  It is a good custom to give the profiles an INI extension, however, it's not necessary, so be careful not to overwrite other files.  Of course, the INI file may not be named OS2.INI or OS2SYS.INI.

The Handle (HINI) that is returned is also important.  It's this handle we will need if we want to do anything with the newly opened/created profile.  It's also used for closing the file.  The closing call is very simple: PrfCloseProfile(hini).  Storing stuff in a private INI file works just the same way as with the OS2.INI file.

But now to the main point of this small venture.  Can we convert the sample function so it simply saves the window information from the OS2.INI file into one that uses a private profile?  The idea for this came from Mark Kimes (the author of the FM/2 utilities), and is a simple but very effective idea.  Since the WinStoreWindowPos and WinStoreWindowPos only work with the OS2.INI file, simply use the OS2.INI as a temporary buffer.  The following steps are needed:

o  On WM_SAVEAPPLICATION just use WinStoreWindowPos
  - Copy the info in OS2.INI to a private profile
  - Delete the info in the OS2.INI
o  On application restart
  - Copy the info from the private INI to OS2.INI
  - use WinRestoreWindowPos
  - Delete the info from the OS2.INI (not really necessary because on exiting the applet this is already done)

Simple and effective.  In the sample added this month, the following lines are added at the start of the program:

HINI    hini;   // Handle to private INI file
ULONG   ulSize; // Size of the data to be copied
PVOID   pBuffer;// Buffer

hini = PrfOpenProfile(hab, "Sample7.INI"); // Open private profile
if (hini)
        {
        //----------------------------------------------------------------------
        // Query the info from a private INI into a memory buffer
        //----------------------------------------------------------------------
        PrfQueryProfileSize(hini, APPNAME, WINPOS, &ulSize);
        DosAllocMem(&pBuffer, ulSize, PAG_READ| PAG_WRITE |PAG_COMMIT);
        PrfQueryProfileData(hini, APPNAME, WINPOS, pBuffer, &ulSize);
        PrfCloseProfile(hini);  // Close private profile
        //----------------------------------------------------------------------
        // Write the info to the OS2.INI
        //----------------------------------------------------------------------
        PrfWriteProfileData(HINI_USERPROFILE, APPNAME, WINPOS, pBuffer, ulSize);
        DosFreeMem(pBuffer);
     } 

Everything is very straightforward.  First, the profile is opened.  If this can't be done, there's no need to carry on.  If it's open, we query the size of the info.  We need this to declare a memory buffer and to write the buffer to the OS2.INI.  The info is then copied from the profile to the buffer with the PrfQueryProfileData call.  After that, the profile is closed and we can copy the data in the OS2.INI.  (Remember, this one doesn't have to be closed.  I'll go into the specifics of memory handling some other time.)

The code for the WM_SAVEAPPLICATION message is somewhat more complex, but is, in fact, nothing more than the inverse of the above code.  The following lines are added:

case WM_SAVEAPPLICATION:
        {
        HINI    hini;   // Handle to private INI file
        ULONG   ulSize; // Size of the data to be copied
        PVOID   pBuffer;// Buffer
        //------------------------------------------------------------------
        // Store window information in OS2.INI
        //------------------------------------------------------------------
        WinStoreWindowPos(APPNAME, WINPOS, WinQueryWindow(hwnd, QW_PARENT));
        //------------------------------------------------------------------
        // Copy the info from the OS2.INI into a memory buffer
        // and delete it from the OS2.INI file
        //------------------------------------------------------------------
        PrfQueryProfileSize(HINI_USERPROFILE, APPNAME, WINPOS, &ulSize);
        DosAllocMem(&pBuffer, ulSize, PAG_READ| PAG_WRITE |PAG_COMMIT);
        PrfQueryProfileData(HINI_USERPROFILE, APPNAME, WINPOS, pBuffer, &ulSize);
        PrfWriteProfileData(HINI_USERPROFILE, APPNAME, WINPOS, NULL, 0);
        //------------------------------------------------------------------
        // Copy the info from the buffer to the private ini file
        // Close the private ini file and free the used memory
        //------------------------------------------------------------------
        hini = PrfOpenProfile(hab, "Sample7.INI"); // Open private profile
        PrfWriteProfileData(hini, APPNAME, WINPOS, pBuffer, ulSize);
        PrfCloseProfile(hini);  // Close private profile
        DosFreeMem(pBuffer);
        }    
        
The only line that may need a little more explanation is the call to PrfWriteProfileData with a NULL.  If this is done, the info related to APPNAME and WINPOS (in this case) are deleted from the profile.  This way we keep the OS2.INI clean.

Now we come to the second enhancement: using the FCF_SHELLPOSTION parameter to set the window size and position in case there isn't any information stored in the INI file.  The solution for this also came from Mark.

In the example presented last month, I proposed building in a default window size and position to handle the case that there isn't any INI information present.  The PM is capable of placing and sizing a window.  Just use the FCF_SHELLPOSITION parameter in the creation of your main window.  The advantage of this method is that the PM will size the window according to the screen resolution you're using, thus creating a better alternative.  However, we dismissed this option last month to prevent 'flashing' at startup.  The window would appear in the size and place the PM decides and then disappear and pop-up in the place and with the size that is saved in the OS2.INI file.

The solution, using the FCF_SHELLPOSITION flag, is very simple.  Create a variable which will hold the FCF flags you like to use except the FCF_SHELLPOSITION flag.  Check the OS2.INI for the existence of window information.  If it isn't there, add the FCF_SHELLPOSITION flag.  The simplest way to check if the information we want is available is to check the size of the info we're looking for.  If it is zero, it definitely isn't there.  The OS/2 Profile API has a function just for that: the PrfQueryProfileSize.  This function will return the size in bytes of a specific key value.  The function will also fail if the needed information isn't there at all.  In both cases we can use FCF_SHELLPOSITION.  This means the following will do the trick:

ULONG flFrameFlags = FCF_TITLEBAR   |FCF_SYSMENU |FCF_MENU    |
                     FCF_SIZEBORDER |FCF_MINMAX  |FCF_TASKLIST;
ULONG ulIniSize = 0;

if(!PrfQueryProfileSize(HINI_USERPROFILE, APPNAME, WINPOS, &ulIniSize) || !ulIniSize)
             flFrameFlags |= FCF_SHELLPOSITION;
                
This works nice, however, we also need to check if FCF_SHELLPOSITION is used when the WinRestoreWindowPos is issued.  For this we can use the ulIniSize variable.  If it is zero, the FCF_SHELLPOSITION flag is used.  So the call to WinRestoreWindowPos should look like this:

if (ulIniSize)
        WinRestoreWindowPos(APPNAME, WINPOS, hwndFrame);

Promises, promises.  Well, here's the last issue: what to do with minimized windows?  It's very annoying if window information is saved when a window is minimized.  This can happen when the user closes the window from the window list when it's minimized.  The annoying thing about this is that the window won't be visible the next time the application is started.  It can be made visible through the window-list, using 'cascade' or 'tile'.  However, less experienced users will probably think the application is not working.  Reason enough to avoid this.

How should we handle this?  It's easy enough, we just have to check if the window is minimized on WM_SAVEAPPLICATION time.  If so, we can do two things, restore the window position and save the window info, or simply don't save any info at all.  I guess everyone can change the example so that no save takes place, so I'll handle the restore proc.

But first things first, how do we know a window is minimized?  For that we have to go back to something that's been said in earlier articles: window-words.  Window-words are space that is allocated for each window to hold information about that window.  One of the items we can find there is the window's styles.  These may be already known as the WS_* items you use when creating a window.  Examples are WS_ANIMATE, WS_CLIPSIBLINGS and, indeed, WS_MINIMIZED and WS_MAXIMIZED.  This info can be queried by using WinQueryWindowULong with QWL_STYLE as an index parameter.  This will return the window-words that contain the style information.  Comparing the return of this function with WS_MINIMIZED will give us the sought after 'if construct'.

if (WinQueryWindowULong(hwndFrame, QWL_STYLE) & WS_MINIMIZED)
        
One last thing is needed: restoring the window position.  For this we can use another function that's already been looked at, the WinSetWindowPos API.  By calling this one with only the SWP_RESTORE flag, the function simply resets the WS_MINIMIZED flag in the window-words.  We could do this ourselves with some boolean magic, but why do something that can be done for us?  Remember the first rule, Don't do what can be done for you!

This leaves us with:

if (WinQueryWindowULong(hwndFrame, QWL_STYLE) & WS_MINIMIZED)
                                WinSetWindowPos(hwndFrame, HWND_TOP, 0,0,0,0, SWP_RESTORE);

Well, that's it for this month.  I took the liberty of taking some of the reactions and reworking them into this article.  For an example of some of the above techniques, see the (http://www.os2ezine.com/v2n4/sample7.zip) sample file (ZIP, 23k) this month.  Thanks for all the responses.  Next month we delve into something new; we will be looking at controls other than the framewindow.

-----

(eric.slaats@pi.net) Eric Slaats holds a degree in Computer Science and teaches computer technology in Eindhoven.  He is the creator of the (http://www.bmtmicro.com/catalog/smalled/) Smalled utilities.

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

First Looks: NeoN 2D Vector	- by Chris Wright

-----

Shoot-out at the OK Corel

For a long time, OS/2 has been sadly lacking in vector drawing packages.  In fact, until recently users had two choices:  CorelDraw 2.5 which is no longer sold, and Freelance Graphics 2.1 which is a very weak and underpowered program.  This changed with the introduction of Photo>Graphics, which combined strong image editing and vector-drawing capabilities into one package.  But Photo>Graphics isn't, strictly speaking, a vector drawing application, and there are many things you can't do in it that you would be able to do in, say, CorelDraw.

Lately, we've been rewarded with a number of new vector drawing programs (both released and in development).  Freelance 96 is now available, the StarOffice suite has a very capable vector drawing program, the LogoArt beta shows a great deal of promise, and finally Compo Software will soon be releasing NeoN 2D Vector.

Of these four, NeoN 2D Vector shows the greatest promise.  Freelance 96 and Star Division's StarDraw (to be renamed StarImpress for the upcoming version 4.0 of their cross-platform office suite) are mainly presentation packages, and while they have a solid basic toolset, they are encumbered by other features and lacking in the higher-end vector drawing tools.  LogoArt looks promising, but is still in beta.  NeoN 2D Vector is a full-featured, stand-alone vector drawing application that is complete (the German version is complete, the English version is still being translated and "cleaned up"), compact, fast, and powerful.  While it does not look like it will match CorelDraw on a feature-for-feature basis, it will have a very thorough set of drawing tools that should be able to see you through most of your vector drawing needs.

My preview copy of NeoN 2D Vector is not a final release.  I'm told that Compo is redesigning the user interface, and is adding some more functionality to the program.  Because of this, you should take all of my comments (both praise and criticisms) with a grain of salt:  at this time, I don't know what will be changed in the final release (which should be out in a month or two).  It's possible that all my complaints will disappear in the final release -- and it's also possible that new ones will be introduced.  This article, however, should give you an idea of the basic features and functionality of the future product.

The preview copy itself is a bit incomplete:  there are no help files included, and a few of the settings dialog boxes are still in German (making exploring some of the areas a bit awkward).  I assume the final release of the English version of the product will be completely translated.  Aside from the few German dialog boxes and the help files, however, it appears to be a fully-functioning product.

Using CorelDraw as a comparison, I would describe NeoN 2D Vector as "trimmed down and supercharged".  While it doesn't have many of the "extra" features found in CorelDraw (such as the ability to add textures to a vector application or the ability to modify your 2D vector drawings to show perspective), it's a lot faster and more responsive to user commands.

User Interface

I have mixed feelings about the way NeoN 2D is laid out:  on one hand, it is set up to provide a large amount of customizability, and to minimize the need to search through the menu to access tools.  On the other hand, it doesn't let you completely customize the toolset, and it can clutter up low-res monitors.

At the top of the NeoN 2D Vector screen are two rows of text and object formatting controls, where you can modify line and type size, fill, and fill pattern.  While these tools are incredibly useful to have at your fingertips (otherwise, you'd have to find the menu command and work with a dialog box) they are limited to being displayed in their default positions or being turned off.  I'd like to be able to line them up, single file, across the top of my monitor, which would take up less space.

At the bottom of the screen is a color strip (laid out similarly to the one that comes with CorelDraw) and an area of space that will display specific object information.  While this area is also useful, it takes up more space than is really necessary, especially on higher-resolution monitors.  If it were about half the size it is, it would be able to relay the same amount of information and leave more drawing space.

To its left is a strip of 8 buttons that determine what "mode" of drawing the program is in -- whether you're selecting an object, creating an object, modifying an object, zooming in and out on the page, viewing a complete or wire-frame version of the object, deleting an object, or undoing an action.  This is fairly typical of most drawing objects, though you can specify whether the icons are "large" or "small" (small icons take up less screen space).

You also get four tool palettes, which are highly customizable.  Each tool palette has a specific set of tools that you can choose to display or hide.  One palette contains every tool and function that deals with modifying a polygon (including more than one type of bezier manipulation), one contains basic object formatting tools (align, group/ungroup, copy, join, etc.), one contains generic copy, save, cut, paste tools, and one contains page setup tools (defining page size, ruler, grid alignment, etc.).  These palettes can be modified to include only the tools that you habitually work with, allowing you easy access to them without having to discern them from tools you never use.  On the other hand, the palettes can not be dragged out of the workspace window, which limits where they can be positioned.

All in all, I like the UI more than I dislike it.  There are some things I'd like to see modified in future updates to optimize it, however.

Toolset

The tools that come with NeoN 2D Vector are very complete.  Again though, they won't match some of Corel's higher-end functions -- for example, you can't define a perspective for an object, and you can't define a bitmap texture for it.  On the other hand, you can save the object in a format that can be opened in NeoN Grafix, Compo's 3d modeling application, and use it to create an actual 3d ray traced figure.

One of the things I'm most impressed with is NeoN 2D Vector's ability to modify a polygon by deleting or adding points, converting lines to bezier curves, converting bezier curves to lines, etc.  Most graphics programs have these tools, but NeoN 2D Vector arranges and groups them in such a way as to provide them all at once, which makes it a lot easier for me to create very complex shapes out of simple squares and rectangles.  The process reminded me a lot of taking a block of wood and whittling away at it until I got the shape I wanted, which was a way of going about it I picked up on very easily.

Another thing I really like about this program is the ability to save your work in a huge array of different formats -- including Adobe Illustrator and Aldus Freehand formats.  Unfortunately, it doesn't let you save your work as a CorelDraw file -- a curious omission, and one I hope will be rectified in the future.

NeoN 2D Vector comes with standard tools for arranging objects, including object guides that help you line things up with the ruler.  It also allows you to define and work with objects on different layers -- good for large-scale, complicated drawings (especially when you don't want to change anything you consider finished).  This is something other graphics packages for OS/2 are lacking.

Using NeoN 2D Graphics

Using this program is fairly straightforward -- with a few notable exceptions.  For the longest time, I couldn't figure out how to change the "draw object" icon from a rectangle to anything else.  NeoN 2D Vector allows you to create the standard selection of shapes -- rectangle, ellipse, text object, connected line, and freehand -- but while most vector programs require you click on the icon, causing a cascading list of your choices to appear, with NeoN you must right-click on the icon to choose your tool.  This wouldn't be a problem if right-click functionality were consistently implemented on the toolbar, but it isn't.  In fact, this is the only object on that toolbar to have any right-click functionality at all.

Final Comments

Again, this is not the "officially" released version -- it's still being worked on right now, in fact.  When it is released, users should have a lot of information I didn't have access to (most notably, a help menu) that will make it a lot easier to use.  Still, at this point, NeoN 2D Vector is a very capable, speedy program that you can do a lot with.  The nits I have with it are, in my view, minor compared with what you can do with it -- you just have to keep them in mind to work around them.

All in all, it's a much needed, and much welcome, application for OS/2.

-----

*  NeoN 2D Vector
by (http://www.neongrafix.com/) Compo Software
MSRP: US$129.00

-----

(cwbrenn@ibm.net) Christopher B. Wright is a technical writer in the Northern Virginia/D.C. area, and has been using OS/2 Warp since January 95.  He is also a member of Team OS/2.

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

Hewlett Packard ScanJet 5P	- by Bob Smith

-----

In the August 1996 issue of OS/2 Magazine, Esther Schindler wrote an exceptional article on the use of scanners under OS/2.  She reviewed four flat bed scanners, along with their associated software.  Her advice to prospective scanner owners was to purchase an HP scanner, since at that time, "every piece of image-scanning software (for OS/2 or Windows) supports the HP scanners first".

My son has an HP 4C scanner which the USAF allows him to use at home, and while I was very enthused about the capabilities of the 4C, the price (about US$900) was far beyond my means.  In January, while shopping at Price-Costco (a discount store which carries almost everything) I spotted an HP ScanJet 5P for $370 on sale.  My wife quickly twisted my arm and the purchase was made on the spot.

Another article in the now-deceased OS/2 Magazine, "The Scanning Story", by J.C.  Love (in the January 1997 issue) strongly advised that if one could afford it, regular SCSI adapters should be used rather than the included HP adapters which do not meet the full SCSI standard.

Love also advised purchasing ImageScan/2 by Danmar Systems or CopyShop/2 by Trafalgar Business Systems since the HP scanning software included with the scanner will not run under WIN-OS2.  I contacted (rshafra@ibm.net) Farrel Company (the authorized distributor for Danmar) and purchased an Adaptec adapter, cable, software and most importantly, an OS/2 driver for the whole operation.


Installation

Installation of the adapter is straightforward: open the box, find an empty slot and insert.  In my case, since I had also purchased a new Matrox video card, two birds would be gotten with one swing.  Unfortunately, I discovered that the PCI bus on my motherboard was version 0.0000-something and current PCI cards would not run on it; a new motherboard was required.  So the scanner sat in its shipping container until all of the various parts came together at the same time.

One bad part about using the included SCSI card is that you can not change the interrupt being used, and the cable included by HP will not work with most other SCSI cards.  Because of this, if that interrupt is already used by something on your system, you might need an entirely new SCSI adapter and cable.  The problem with using third party SCSI adapters, of course, is that you need one more driver.

A driver is needed for OS/2 to communicate with the SCSI adapter.  A second driver adds additional device management through the ASPI interface defined by Adaptec which provides the connection between the SCSI driver and the third driver, the scanner driver.  SCSIScan/2 provided by Danmar with the ImageScan/2 software works quite well and was able to see the HP 5P even though Farrel told me that they had not tested the 5P yet (they hadn't even seen one at that point).

Using the Equipment

Once I had the third party SCSI card in and the scanner physically attached, the rest of the installation went well.  Using ImageScan/2 I was able to easily scan photos.  A bit of experimentation was necessary to get the color balance right, but it wasn't too difficult.  Using PMView, I was able to convert the scanned images of my cat and dog to BMPs to have as my desktop background in minutes.

The scanner itself is a legal/letter-sized flat bed.  One really nice feature is that the base is recessed in back so even though you attach a power cable and data cable to the rear of the unit, you can still put the scanner right against the wall, thus saving a couple of inches of desk space; usually very valuable real estate!

One problem which I found was that the cable ends are not the same as for the HP 4P and 5P, so when Farrel sent me the cable, of course, it ended up being the wrong one.  Farrel was very good about sending me a new cable and taking the old one back though (with shipping costs on them -- quite good customer service at Farrel!).

Overall Quality

The OS/2 scanning software is not yet up to the quality of HP's included software which runs under Win3.1 and Win95.  For one thing, OCR is not included (but can be obtained with a separate program).  Further, under Win95, one only has to push a button on the front of the scanner to launch the scanning software and start scanning an image.  This is not the case with the OS/2 software.

Conclusion

The HP 5P appears to be a very good scanner with at least 400dpi resolution.  The cost, at US$370, is a definite improvement over the HP4P/C but additional costs will be incurred getting OS/2 drivers.  In my opinion, it's still a bargain for those who need a scanner and want to use it natively with OS/2.

-----

* Hewlett Packard ScanJet 5P
by (http://www.hp.com/) Hewlett-Packard
MSRP: US$370.00

(bsmith@ccis.com) Bob Smith is a 15 year veteran of the USAF as a Transport Pilot and Planner; he has also spent 15 years in Fire Service in a small California community.  He retired as Fire Chief in 1995 and has been using OS/2 since v2.0.

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

Performance Plus Version 4	- by Barry Brindisi

-----

Introduction 

Performance Plus Version 4 by Clear & Simple is a definite must have software package!  The book alone is certainly worth the US$35 for this product.  It is filled with a lot of good information on how to get the most out of your system performance-wise.  I am using a 486DX2-66 system with 16MB of RAM and OS/2 Warp 4.0 for this review.  According to the documentation, however, Performance Plus V4 is also compatible with OS/2 Warp 3. 

Performance Plus consists of one book and one floppy disk.  Installing the program is quite simple; while the software is installing, the user is prompted with an on-screen registration form and asked for some basic information about his/her computer.  Upon completing the form, there are a few options for sending it in.  (I've already sent mine, via e-mail.)

The Clear & Simple Manual 

The manual that comes with Performance Plus represents a large portion of the value of this product; it goes into great detail about how to correctly set up your CONFIG.SYS file so that OS/2 Warp will run more effectively.  It also goes into detail about the types of system components to look into when attempting to improve your system's performance.  Finally, it offers some good basic housekeeping suggestions for your PC.

This manual is an excellent resource, not just for OS/2 users, but for anyone who wants to tune or upgrade a PC.  The information in its pages could also prove interesting to those with a desire to know how their computer and OS/2 really work, in plain language.  Much more than just a description of how to use the software provided with Performance Plus, the book is one of the most valuable system tuning tools available for OS/2 -- and it's completely updated to cover issues related to Warp 4.

The Software 

In addition to the extensive manual, Performance Plus comes with a disk that contains a variety of software utilities for tuning OS/2 Warp PCs.  The three main tools for this are Simple Count, Optimizer and Stats.  Simple Count is a small utility that will perform a series of tests on a system and display results via a bar graph.  There are various ways to modify how Simple Count does these tests.

The second utility is Optimize.  This program makes modifying your CONFIG.SYS file, a breeze.  It provides a snapshot of the various components of the CONFIG.SYS and lets users modify this file to suit their particular needs.  (I -- and the author -- suggest reading the book before doing so, though.  The author explains in 'clear and simple' detail about the CONFIG.SYS file and how to do the modifications correctly.)

The Stats utility gives a comparison report of the last two Simple Count sessions.  The idea is to give the user an overall idea of what kind of improvements have been made (or not made) to the system.

Other Goodies

There are also several other utilities included in Performance Plus V4, such as Video Perf, Disk Jockey Lite, Disk Tuner, DOS Black Box and etc.  

With Video Perf, you can get a good indication of the quality of your video driver.  This utility performs a series of tests on the responsiveness of installed video drivers and gives the result.  You are then encouraged to visit (http://www.clear-simple.com/) Clear & Simple's web site and compare your results with that of other video drivers.  It would have been nice to have something to compare the results with without having to go on-line, especially for users without 'net access.

Unless you enjoy fiddling with the various DOS settings for a stubborn DOS program, you will find the DOS Black Box Utility, quite handy.  This utility automates the process of setting DOS program objects to run in a DOS session and gives helpful instructions on what most of the DOS settings mean.

Disk Jockey Lite is an excellent graphical file manager that is based on Clear & Simple's new Disk Jockey.  While I'm used to using command lines, this utility is great for me and makes handling my files a snap.  I'd recommend the full version for those of you that are uncomfortable with command lines though.  

Other utilities include a swap file monitor, a disk performance timer, a simple zip backup function, a one-floppy boot disk maker, a bitmap viewer and an automated Desktop backup program.  These utilities are all simple to execute from the provided WPS objects and work quickly and efficiently.  While some utilities are text mode only and others are Presentation Manager based, they complement each other well and are genuinely useful.

Conclusion

As I stated earlier, Performance Plus V4 is a definite must have for users of OS/2 Warp.  It will complement any other utilities package that you may have.  At US$35, the information in the manual and the useful utilities are a great bargain for OS/2 users looking to squeeze a little more out of their computers.

-----

* Performance Plus v4
by (http://www.clear-simple.com/) Clear and Simple, Inc.
MSRP: US$39.95

-----

(pharyn@amug.org) Barry Brindisi has been dealing with computers since 1982 and has used a wide variety of computers and software.  He is just starting on a freelance writing career.

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

FTP Browser v1.6	- by Pankaj Sarin

-----

The best description of FTP Browser comes from its own help file:

"FTP Browser is a powerful and intuitive FTP solution for OS/2 Warp that features drag and drop, server to server and directory tree transfers across a variety of hosts."

And FTP Browser is just that -- it is one of the most intuitive programs I have ever seen for OS/2  -- one which takes full advantage of the Workplace Shell.  However, just because it is easy to use does not mean that it compromises on features -- it satisfies the most basic needs of any FTP user, such as GET and PUT, as well as more advanced requirements, such as remote management of files and specifying firewalls.

Installation

The installation of FTP Browser is rather straightforward, even though it does not use the standard IBM Software Installer.  The process simply involves unzipping the archive and running INSTALL.EXE.  The installation program automatically detects if you have a previous version of the program and installs to the appropriate directory; otherwise, you just specify the directory you wish to install to.

Once installed, FTP Browser creates four icons for you:  "Purchase", information on how to register FTP Browser; "FTP Browser", the icon to start the program itself; "Manual", which is a very useful help file; and "ReadMe.Txt", the ubiquitous readme file which provides some quick hints on using the program.

Running the program

Starting FTP Browser gives you the site manager.  As you can see, the program imitates the Desktop folder paradigm.  A very useful toolbar is also included; notice that this toolbar has ToolTips (the hovering hint box in the screenshot).  This is something I feel many developers forget to include but which is very useful, as users don't have to keep guessing what icons stand for.

In the pane on the left side of the site manager, you create "folders" within the program to contain your FTP sites.  In the right pane, you add icons for the actual FTP sites to be stored in the folders.  The program comes with some FTP sites already preset in the "OS/2 Sites" folder, which is very handy.

All of the objects in FTP Browser are right-mouse-button clickable, meaning that a menu pops up when you click the RMB.  What is interesting about this menu is that you have an option to "Create desktop icon", which will actually create an icon on the Desktop so that you can connect directly to the site without having to start FTP Browser first.

Connecting to a site is very easy:  you just double click on the site name (you can also open multiple sites or even multiple folders at one time) from FTP Browser or from the Desktop!  If the site is busy, FTP Browser automatically tries to connect again until it succeeds.  After connecting, you get a details view of the files on the site.  Uploading and downloading files is also very easy: to upload (PUT) a file, just drag and drop the file from the Desktop to FTP Browser; to download (GET) a file, you do just the opposite and drag to the Desktop folder you want to place the file in.  If the folder you want to upload from or download to is not currently open, you can just type the name of the directory in a text box, then click on the "Open folder" icon and the folder will quickly open for you.

There is also a convenient "Queue" feature, or list of files waiting to be transferred, for users who prefer to sort out their transfers and do them all en masse.  Adding to and editing the queue is done with the click of a button on the toolbar and is very straightforward.

As for the on-line help, frankly it is not even required because of FTP Browser's ease of use.  However, if you do need to use it, the help is thoughtfully organized and easy to understand.

Performance

FTP Browser is not just one of the nicest looking FTP apps on any platform, it is also very stable and efficient.  The program ran well on the test system and file transfers were simple and quick.  I never experienced any crashes, hangs or other inconveniences while using this application.

Drawbacks

One of the very few negative aspects of FTP Browser that I came across is that while uploading or downloading files that already exist on the target system, you have to manually click on the "Replace" or "Skip" button for every file.  It is possible to turn off all confirmation dialogs, but it would be much more convenient if a "Replace All" or "Skip All" button was present as well.

Also, the ability to drag and drop WPS FTP objects to FTP Browser or FTP Browser objects to the Desktop without having to click on "Create Desktop Icon" would be very useful and make FTP Browser even more integrated into the WPS.

Summary

Pros:				
User-friendly interface
Powerful features
Great use of Workplace Shell
Speedy program

Cons:
No drag and drop of FTP objects from/to Desktop/FTP Browser
No "Replace All" option when uploading/downloading files

FTP Browser v1.6 is probably the best FTP browser for OS/2.  It has almost every feature you could imagine, while still being easy to use and innovative.  Overall, the program is very well thought out and polished, extremely solid and snappy too.  FTP Browser v1.6 earns a rating of five out of five!

-----

* FTP Browser v1.6
by (rushton@netcom.ca) Jason Rushton
download from the (http://www.os2ss.com/internet/ftp/ftpbr16.zip) OS/2 Supersite (ZIP, 444k)
Registration: US$23.00

-----

(psarin@alum.mit.edu) Pankaj Sarin is currently a student at the University of Rochester.

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

Orange Hill Workplace Solutions	- by Ron P. Lamb

-----

(The non-intrusive solution)

Have you ever installed a software product only to find that after applying one of those small IBM service packs, the product no longer works?   Have you ever seen one of those black screens of death, only to later find it was caused by one of those nifty utilities that cling to your operating system like gum clings to hair.  If you have, or if you are looking for a cool set of OS/2 utilities, Orange Hill's Workplace Solutions (OHWS for short) may be something worth giving a try.

OHWS includes six utilities, 450 true OS/2 icons, an icon manager, and a set of folder and icon starter templates that add flash to your Desktop and make you more productive using OS/2.  This product contains so much that this review covers only the major pieces of it in an attempt to give an overall picture of what OHWS can provide for you.

Program Portfolios- A cool way to manage your program objects 

Program portfolios are a fast and convenient way of organizing and accessing program objects.  Program portfolios are created by adding program objects using the Program Portfolio editor and then saving the portfolio.  Once objects are added and the portfolio is named, objects can be accessed from either the PGMLISTS folder, the Program Portfolio viewer or Rover (more on Rover later).  The program portfolio is an excellent program object grouping metaphor.

I found using OHWS's Program Portfolio Editor and viewer to create, modify, and delete program portfolios both easy and intuitive.  Adding objects to the portfolios is as easy as selecting the object you want added and pressing the add button.  The program objects don't even need to be in the same folder, drive, or location.  Once I added my objects, I was able to launch the object, start a second instance of that object, open the object's settings notebook,  create a shadow of the object, and apply an icon from the icon library.  I found many actions just a mouse click away.

In addition to the viewer and editor, OHWS includes a utility, "All available programs", that lists all program objects on your system.  This is by far the fastest way I have seen to get a list of all the objects on a system.  In doing some simple testing, I was able list about 400 objects within 2 to 3 seconds.  All actions available to program portfolios can be performed using this utility.

I discovered that one of the many uses of program portfolios is grouping reference books.  For example, on my Desktop I have created three program portfolios to store my PM, REXX, and C reference guides.  After creating these portfolios, I was able to remove a number of objects from the Desktop and organize them into categories such as Games, Home applications, and Development and Research.

Another use I found for this feature was to store all my program objects needed for a particular project.  Then when I was working on a particular project I did not need to keep searching for programs that could span across numerous folders.  Once quickly set up, everything I needed was right on the Desktop, including my most heavily used reference books (cool).  Though this can be accomplished using shadows, I find the program portfolio uses less space, is easier to access, and provides more functionality.

Folder Portfolio -  Program Portfolio's brother 

Folder portfolios are my favorite part of OHWS because they are a great way of organizing heavily accessed folders in a nice, easy, manageable object.  Configuring a folder portfolio is as easy as dragging and dropping the folder or any object within that folder onto the folder portfolio's list box.  Once the portfolio is configured, a number of actions can be performed, including the following:

o  Opening the folder object in any view including tree, icon, detail and settings.
o  Opening its parent folder.
o  Opening a Dos Full Screen, Dos Window, OS/2 Window, or OS/2 Full Screen session at the folder's location.
o  Performing a disk space analysis on the folder and its sub-folders.
o  Creating a shadow of the folder.
o  Applying an icon or icon scheme to the folder.

I have found one of the best uses for the folder portfolio is keeping all directories I use for a particular project together.  Since I am a heavy OS/2 and DOS command sessions user, I find folder portfolios are a great way of keeping my Desktop clutter-free while, at the same time, allowing me to quickly launch an OS/2 or DOS session at my desired folder location with just a few mouse clicks.

Though I found OHWS's folder portfolios a great productivity tool, there are a few areas where I would like to see some enhancements.  First, I would like the ability to issue a REXX command script when starting my OS/2 command sessions.  Second, currently the space analysis only works on local drives.  I would like to see this expanded to include network and floppy media.  Finally, I would like to see a portfolio that combines the folder and program portfolios into one portfolio -- a "Super" portfolio.

Icons are the things you buy when you have nothing else to buy!

I heard this comment once during the launch of OS/2 WARP.  Though this may seem true to some people, I feel it is totally incorrect.  Icons, besides giving your Desktop pizazz, perform a valuable function by giving a pictorial view of what a file/folder contains or what a program object does.  OHWS provides you with 450 great OS/2 icons to do just that.  These icons are not the typical icons downloaded from the Internet or a BBS, but are icons that support all major OS/2 formats including:

o  SVGA and VGA formats
o  Independent small icons for each resolution
o  Open and closed icon animation forms

Having 450 icons is great, but what is even better is that OHWS provides mechanisms to manage them.  Utilities are included to apply an icon to an object, add your own icons to your personal library or create an icon scheme.  Currently in OS/2, changing an icon requires opening an object's settings notebook, finding the pages containing the open and closed views of the object and dragging both the open and closed icons to those pages.  In OHWS, I can change an icon by simply dragging and dropping the object on the Icon Central's icon or the Icon library and selecting the icon of my choice.

When adding icons from the Icon Library, both the open and closed views of the icon are added to the object.  Where appropriate, the closed view often reflects the nature of the open view.  For example, the lamp icon shows the lamp lit when opened and off when closed.  

To apply icons to multiple objects in a folder automatically, OHWS provides a Scheme editor.  Creating a scheme is as easy as dropping a folder onto the Icon Central icon and selecting an icon for each file specification.  For example, all files beginning with OCT could automatically have a pumpkin as their icon and all objects containing NOV could have the Thanksgiving turkey.  Once a scheme is created, the Scheme editor's options provide a way to manually or automatically apply icons to the main folder or the main folder and its sub-folders.  Updates can even be performed across a series of folders.  I found this feature to be a wonderful companion to the already powerful OS/2 file association feature.

Though I found the icon utilities exceptional and well done, I found myself occasionally wishing for more icon categories.  In the future, I would like to see more developer-related icons and some for the insurance and banking industry.  Maybe there could even be a bonus or plus pack of icons.  OHWS does provide a the ability to add your own icons, and although this is a welcome feature, it does have a limitation of not allowing you to select both an open and closed view (open view only).  Providing this functionality would be a nice addition to an already full bag of goodies.

Task Bars

If you like speed or task bars, OHWS provides a fully pre-configured launching bar called the  SpeedBar that opens, with only a few clicks, 50 of the most used OS/2 objects.  From the Multimedia folder to the Start-up folder, you never have to remember where an object is located again.

If you are moving from Warp 3.0 to Warp 4.0, you will find the default system objects have moved.  With the SpeedBar, finding the new location of the CD player or seeing the new version of the MACAW movie is only a few mouse clicks away.  I found that the SpeedBar works with both Warp 3 and 4 flawlessly.

Now for the real kicker: the SpeedBar includes an easy way of accessing program and folder portfolios by allowing any portfolio to be added to the SpeedBar.  I found adding my portfolios to be very simple.  Anybody who has forgotten where the REXX or C++ programmers reference books are and has had to search for them would understand how cool it would be to have your reference books sitting on a menu on your Desktop.  Definitely a great feature.

Here Rover!  Here Rover!

Having the pleasure of seeing a demo of this product more than once, Rover is undoubtedly the most popular piece of the product.  Rover is an alternate view of the original SpeedBar with some additional functionality.  It takes up very little real estate and has the uncanny ability to be there when you need it.  If Rover is obstructed, he will 'rove', or move, to an open area of the screen, waiting for your command.  In addition, Rover is trained to heel, sit, stay, and go away.  Of course, if you tell Rover to go away, like any real dog in a few minutes he will be back wanting to play.  Like all the other utilities included in OHWS, Rover is highly configurable.

OS2ness (Is it a true 32 bit OS/2 product?)

In this category I have to give OHWS an A+.  This product supports Drag and Drop, is heavily multi-threaded, and provides right mouse button support where appropriate.  The product works great with OS/2 Warp 3 or higher.  For example, when using the SpeedBar with Warp 4, the SpeedBar will locate itself above the new Warp Center, adding to the Warp Center's functionality instead of taking away from it.

Conclusion

I am sure you are thinking by now, "It sounds like a great set of stuff, but how well does it work?".  In one word, great!  OHWS is one of the most stable products I have used.  The installation was simple, the on-line help was extensive and well done, and the program was quick, very user friendly, and extremely stable.

Since using the product for the last year and a half, I don't know how I did without it.  It has allowed me to clean up my once cluttered Desktop and has increased my productivity using OS/2.  This product offers a lot for the developer, power user, and even the person who is just simply wanting to become more productive.  If you are looking for a bag of tricks that makes you more productive, is highly reliable, and will not intrude into your OS/2 system, OHWS is the product for you.

A limited version of Orange Hill Workplace Solutions is included in Warp 4 application sampler CD and I highly recommend anybody who has not already purchased the product to try it.  The  version included in CD application sampler is a functional version, but has limits on the number of portfolios you can create and the number of icons included in the library.  Also, not all components are included, but the version is definitely usable and if you feel the need for more, the upgrade is only a phone call away.

How was it reviewed?

Orange Hill Workplace Solutions was reviewed using the  following hardware and ran flawlessly:

o  486 33MHz with 8MB RAM running OS/2 WARP (Red Pack)
o  Pentium 133Mhz  with 32 MB RAM running OS/2 WARP CONNECT (Blue Pack) and  OS/2 Warp 4.0.
o  Cyrix P166+, 64MB RAM running OS/2 warp 4.0 & OS/2 Warp Connect.

-----

* Orange Hill Workplace Solutions v2.5
by Orange Hill Software
download a demo from (http://home.earthlink.net/~ralamb/) Ron P. Lamb's web site
Voice: (714) 524-5851
MSRP: US$35.00

-----

(ralamb@earthlink.net) Ron P. Lamb is a member of the Southern California OS/2 user's group and has been using, developing, and advocating OS/2 since the release of version 1.3.  Oh Yeah, No I did not stuff the ballet box Sandy!

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

NetRexx	- by Tejaswi Kasturi

-----

IBM's NetRexx is a new portable, programming language designed for use in a networked environment, whether over the Internet or on an intranet.

"Great," you say ,"yet another language purporting to be 'network-savvy'.  Yet another language to learn and another set of platform-specific runtime modules to deal with."

NetRexx, however, is not a completely new language.  It is a direct descendent of REXX, OS/2's built-in scripting language, and Sun's Java, the de facto standard for portable programming over the Internet.  NetRexx leverages REXX's ease of use and Java's portability to create a very effective language for all programmers wishing to create networked programs.

How it works

NetRexx code is translated into Java code by the NetRexx "compiler".  The Java code is then compiled into Java byte-code by the Java compiler from the Java development kit.  Even the NetRexx runtimes and compiler are written in Java for maximum portability.  In order to run a NetRexx application, you just need a Java runtime and the small (75 K) NetRexx runtime class package.

NetRexx code can import and use any classes written in Java or NetRexx, and Java code can see and use NetRexx classes.  To the programmer, NetRexx and Java classes are perfectly interchangeable.  This interchangeability comes from the fact that the NetRexx compiler merely translates NetRexx code into completely acceptable Java code, which cannot be distinguished from Java code written by hand.

Retrieval and Installation

The NetRexx Development Kit is freely downloadable from IBM's NetRexx page at (http://www2.hursley.ibm.com/NetRexx/) http://www2.hursley.ibm.com/NetRexx/.  The development kit can be used on any platform for which there is a Java 1.0 development kit available.  Most major platforms, including OS/2, Windows 3.1/95/NT, MacOS, and most Unixes, currently have a Java development kit, and hence are supported by NetRexx.

NetRexx's installation is straightforward, but not automated.  Files need to be unpacked and put into the correct directories manually, and (for OS/2) the CONFIG.SYS needs to be edited.  This gives the impression of a technology demonstration, such as Sun's Java Development Kit, rather than a finished application.

Using NetRexx

NetRexx is intended for programmers who wish to write Java applets and applications using a less difficult language, such as REXX.  NetRexx inherits much of its ease of use from REXX and Object REXX, but is not fully compatible with those languages.  For example, where Object REXX uses the tilde ("~") to separate the object name and its method, NetRexx uses the period (".") to retain familiarity for Java programmers.  For example, here are equivalent method calls in Object REXX, NetRexx, and Java:

Object REXX
  myclass~mymethod(argument)
NetRexx
  myclass.mymethod(argument)
Java
  myclass.mymethod(argument);

However, most of the useful functions in REXX have been ported over to NetRexx.  REXX has traditionally been very strong in string handling capabilities, and NetRexx inherits much of its power through the use of a specialized String class, called Rexx.  Conventional Strings, characters, and numbers are seamlessly converted to the Rexx string class, on which operations are performed, and the results are returned in the appropriate format.  The parse instruction, one of the most powerful REXX functions, finds a happy home in the NetRexx world.  From the (http://www2.hursley.ibm.com/nrl/nrl.html) NetRexx Language Definition, "The parse instruction is used to assign characters (from a string) to one or more variables according to [defined] rules and templates."  This is very useful for reading information from data files and over the network.  Although such functionality exists in a rudimentary form in Java, through the StringTokenizer class, that class is far more difficult to use than the very elegant parse instruction.

NetRexx allows the programmer to deal with the algorithms rather than having to deal with the underlying type declarations and conversions required to perform the task at hand.  Variable type declarations are not required in NetRexx, unlike in Java, allowing rapid application development, with the cost of making code more difficult to understand if not written properly.  Coding in Java requires strict attention to code declarations, which quickly becomes tedious.  Coding in NetRexx is far more enjoyable, since the NetRexx compiler is intelligent enough to "figure out" many of the constructs which need to be explicitly spelled out for the Java compiler.

Problems

However, all is not happy in the land of NetRexx.  NetRexx uses the runtime classes by default, which can add 75K to the size of any program.  However, the use of the runtime classes can be disabled through the use of the "options binary" instruction, or by defining the class to be "binary".  This causes only primitive types, those types built into Java, such as "int", "String", and "char", to be used instead of converting all values through the "Rexx" string class.  This also requires extra vigilance on the part of the programmer, since he/she must make sure that there are no type conversions (implicit or explicit) to the Rexx class, and also must explicitly define the type of all string variables to prevent them from automatically being assigned a type of Rexx.  If there are any references to the Rexx class, then the runtime classes will be loaded, even if "binary" is specified.  If the runtime is used, it is not likely that all of it is used by any given class, but even the use of the Rexx class by itself will add at least 35K to the size of the program.  The Tablet class is an example of a NetRexx applet which does not use the runtime classes, and can be found at http://www2.hursley.ibm.com/netrexx/tablet.htm.

Furthermore, the NetRexx compiler slows down the compile process very significantly, doubling the time for compilation compared to handwritten Java code because of the initial translation time.

Finally, classes using the NetRexx runtime may require a large number of type conversions, between primitive types and the Rexx class, which can slow down the execution of large programs.  Since Java applications are already fairly slow, even the small increase in execution time caused by NetRexx may not be worth it.  Writing performance-oriented classes in Java and less performance oriented code in NetRexx, within a single project, may be the best solution, analogous to how many C functions are coded in Assembler for speed.

Conclusions

Overall, NetRexx is a very easy-to-use and powerful language for use in network environments where portability is key.  Although the use of the language needs to be examined on a case-by-case basis, due to speed concerns, IBM seems to have another winner on their hands.

-----

* NetRexx v1.00
by (http://www.ibm.com/) IBM
download from the (http://www2.hursley.ibm.com/NetRexx/nrpacks.htm) IBM (ZIP, 580k)
Registration: Free

-----

(tej@4m.pair.com) Tejaswi Kasturi is a Founding Partner in charge of web site/intranet design and system administration at (http://www.4m.pair.com) 4th Millennium Consulting Group, an Internet strategy consulting and web site/intranet design firm.  In his spare time, Tej uses OS/2 Warp 4 to maintain the (http://www.cacr.caltech.edu/~kasturi/os2.html) OS/2 Internet Resources site, an OS/2 e-Zine! Site of the Week.

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

MD+F Special Effects (Renders) for ColorWorks V2	- by Chris Wenham

-----

Following on the heels of Modular Dreams Inc.'s Effects plug-in pack #1 is this new collection of ColorWorks plug-ins designed for rendering a variety of patterns.  Most of these effects produce amazing results with outstanding quality but, like the first Effects pack, they still suffer from high CPU load and disregard for other programs running on a multitasking system.

While the first set of utilities from Modular Dreams focused on the idea of manipulating an existing image, these 'Renders plug-ins' generate new images and patterns from scratch -- good for either the starting point of a new image, or as a texture in an existing one.  Also useful is the fact that most of the plug-ins can generate tileable images of varying block size, letting you create some cool backgrounds for your Desktop or web page, or for conversion into ColorWorks textures.

Bars

The 'Bars' filter generates equally spaced and randomly curved bars.  The pattern can't be tiled and there is no way to tell it to 'keep' the pattern you see in the preview window as the one you want to put in the final image.  The pattern is regenerated each time you click the 'Preview' or 'Apply' buttons.

This plug-in also introduces the scheme Modular Dreams uses for choosing the main color of the pattern.  Using slider controls, you specify the amount of red, green and blue.  What I found unhelpful about this method is that there is no indication of the exact RGB value you've entered, either in the standard 0-255 range or in percentages.  If I wanted to coordinate the color of the pattern generated with the rest of my image I'd be out of luck -- unless I had a really good eye for color shades.

Fire

This plug-in gives you that hazy mirage-like appearance of fire on the horizon.  This texture is not tileable either but it does allow you to change the 'iterations', or how high the fire is allowed to grow.  You can have it as low as 10 iterations, which will give you a packed and glowing 'lava', to 80 or more for a real blazing inferno.  But watch how high you set this value, as 'Fire' will gobble up CPU power rapidly.

What's interesting about this filter is that it allows you to enter the name of a ColorWorks palette (such as 'Vivid', 'Romance', 'Metals' etc.) with which to paint the colors of the fire.  The plug-in comes with three built-in palettes ('Fire', 'Plasma' and 'Smoke') but you can get some weird and wonderful effects just by using some of the palettes that either come with ColorWorks or that you make yourself.

Foil

With Foil you can pick between three preset patterns; Foil I, Foil II and Cushion.  The Foil I pattern looks a bit like those stamped tin kitchen ceilings you see in some Victorian style homes.  This is the first of the tileable patterns, and by entering a block size (called "Area size" by Modular Dreams -- the size of each tile in pixels) in the plug-in dialog you can make the pattern repeat over and over for that size.

Loops

Loops is somewhat whimsical (and, I first thought, a bit pointless), but fun.  It scatters a collection of multicolored swirling loops of a fixed radius.  The radius can be changed using a slider (again, no way to enter a specific numeric value) which doesn't just make the loops smaller, it makes them swirl less.  A small radius will give you embryonic looking tadpoles, while a higher radius will produce interlacing ripples that spread out like waves in a pond.  By changing the density you can control whether there are just a few stray loops, or a whole school of them.  Color schemes for this plug-in are limited to the three built-in ones: Grayscale, pastels and random.

Moire

The manual describes this plug-in as generating a moire pattern.  Although it does, the results are usually more comparable to "plaid shirt."  The only properties you can change are the color densities for red, green and blue and the area size for tiling.

Stars and OPC Stars

The "OPC" in "OPC Stars" stands for "Orion Picture Company" as the plug-in renders a field of stars that look remarkably similar to those in the opening sequence for Orion's movies (just before they swirl together into an 'O').  You can't control the size of the stars but you can change the spacing and the 'strictness', or how randomly they are placed.  A high strictness value will put them into a neat grid, where a low level will make them scatter about randomly like real stars.

The second 'Stars' plug-in is very similar except that it produces a more 'magic dust' kind of starfield -- diamond or cross-shaped stars instead of round ones.  These stars are also multicolored, although you can't pick specific colors or palettes; you can only set how much the plug-in varies the colors with each star.

Pulsars and Radial Stars

Pulsars will render a random scattering of shapes that, in the default configuration look a bit like multicolored sycamore seeds.  By adding more spokes or 'shooters' you can turn them into disks instead.

Radial Stars are similar in style and means of configuration, but they have pointed spikes which can be flared out to make them look like either cloverleafs or the Chrysler logo.

Rods

Think of space-age confetti.  Think of bacterium under a microscope that have been lit up by a bank of neon lights.  I can't say how weirdly cool these things look, but you can get some interesting effects with them.  An option for painting them is to switch on the "Melted" factor and make them blur and fuzz out.

Sinewave

The basic pattern of this plug-in is the humble sine wave, but you can manipulate it into a few new patterns.  Apart from painting it either horizontally or vertically, you can change the mode from "single" to "double" and create a sine-wave within a sine-wave.  It's possible to select the coloring method too, everything from an even "spread" of gradient colors to "thin", "solid", "hi-thin", "ramp" and "hi-ramp."

Weave

Weave is a useful little gadget, producing a simple pattern of ribbons weaving through each other horizontally and vertically.  You can set the spacing of the weave and choose a palette with which each ribbon (horizontal and vertical) is painted.  By adjusting the area dimensions you can give yourself a big, thick, basic "one weave cell" or create a blanket with hundreds of interlacing ribbons.

Summary

The plug-ins in this set are like building blocks to be used for starting a new image, or as components of a more complex one.  A number of the included plug-ins are kind of "ho-hum" and feel like they were just chucked into the package as filler.  Each plug-in also has the annoying habit of using slider bars in too many places that don't give clear numeric feedback, making it difficult to get the same effect in a different session.  You can't save any settings to disk or even write down what RGB values you used last time, for example.

The output quality of nearly all the plug-ins is quite good, though.  And they're a lot of fun to play with and explore.

-----

* MD+F Special Effects (Renders)
by (http://www.modulardreams.com/) Modular Dreams Inc.
MSRP: US$47.99.

-----

(http://www.spectra.net/~fox/) Chris Wenham is a Team OS/2er in Binghamton, NY with a catchy-titled company -- (http://www.spectra.net/~pendulum/webworks/) Wenham's Web Works.  He has written comedy, sci-fi, HTML, Pascal, C++ and now writes software reviews.

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

Vigilance on Talos V	- by Dr. Dirk Terrell

-----

If you listen to IBM, OS/2 isn't intended for the "kitchentop" market, i.e., games and other software aimed at home users rather than commercial users.  Well, someone forgot to tell the folks at (http://www.polyex.com/) PolyEx Software about that nonsense.  They recently released a new OS/2 game, Vigilance on Talos V, built with the new (http://www.polyex.com/wgtinfo.html) WordUp Graphics Toolkit.  Vigilance on Talos V is a fast-action, shoot-em up type of adventure game that comes in both full screen and DIVE versions.

Getting Started

This game is designed for OS/2 Warp 4 or OS/2 Warp 3.0 with FixPak 26 or higher.  Hardware requirements are:

  o  An IBM DART Sound System Compatible Sound Card
  o  An IBM DIVE Compatible VGA or higher display (for DIVE version)
  o  An OS/2 VGA Compatible card (For Full Screen version)
  o  2 megs free hard drive space
  o  CD-ROM Drive (Game requires CD-ROM in drive during gameplay)

Installation is very simple.  The install program allows you to specify a directory for the files that need to be on your hard disk.  (The documentation says that two megabytes of space is necessary, but I only see about half a megabyte being used.)  The installation program creates a folder on the Desktop that contains program objects for the full screen and DIVE versions, as well as a small text file with information on installing and playing the game.  Once the installation is completed, clicking on one of the program objects will begin your adventure.

The Game

You control a character named Killian Jaraad who is searching for his 5 year old daughter, Colesce, who has been kidnapped by the evil Xenos.  The story surrounding the game is as follows (more or less from the game documentation):

"3021 AD: Killian Jaraad, a starship technician and single parent,
boarded a colonial transport with his 5 year old daughter Colesce.  En route
to the colony on Sur 4, the colonial transport was attacked by biological
ships belonging to the Xenos, a highly organized collection of hostile 
alien races.  Jaraad and Colesce were separated, and Jaraad watched from his
escape pod as the Xenos ships fled the wreckage of the colonial transport.  
Convinced Colesce had died aboard the transport, Jaraad devoted his life 
to destroying the Xenos once and for all.  For three years Jaraad trained
as a mercenary and weapons expert, tracking down and destroying Xenos
ships and bases.

3024 AD: A mercenary known as E. Red gives Jaraad a crucial piece
of information; the Xenos have been collecting human slaves and are holding
them on a planet in the Talos V system.  With the realization that Colesce
could be one of the prisoners, Jaraad heads towards Talos V,
prepared to investigate each of the three planetary bases in that system
in order to find his daughter.  And so it begins...

Your objective:
Find, and destroy the evil Drektor, the leader of the Xenos.
He is a tough, and worthy opponent.  His brain hides in different forms, so
he'll be hard to find, but you'll know him when you see him."

If you are familiar with games like Sonic the Hedgehog, you'll be blasting the bad guys in no time with Vigilance.  This is a 2-D game, controlled by either the keyboard or a joystick.  As you move through the world, you encounter friendly aliens who offer advice on where to go and what to do.  You can also pick up new weapons and ammunition that you will need to advance past certain obstacles.

Because of the short period between the time the game shipped and the editorial deadline, I haven't progressed very deeply into the game, so I can't tell you about any glorious battles with the evil Drektor, but given the addictiveness of this game, I'm sure it won't be long before such battles take place.

Performance

In full screen mode, the graphics quality is similar to what you see on 16-bit video game machines like the Sega Genesis.  Unfortunately, my video driver doesn't support DIVE, so I can't comment on the quality of that version.  The sound quality is also very good, mixing music and voice like you would expect from a commercial game.

Finally, the game also multitasks very well.  I ran it on the OS/2 Supersite machine while the web server was getting its usual deluge of requests.  The game ran very smoothly, and there was no noticeable impact on the web server.  (Of course, the machine is a Pentium Pro 200, so it should be up to the task.)

Conclusions

Vigilance on Talos V demonstrates that OS/2 is also up to the task when it comes to fast-action, multimedia applications.  Hopefully the availability of tools like the WordUp Graphics Toolkit, will make it easier for other ISVs to create such quality "kitchentop" applications for OS/2.  Vigilance on Talos V sells for US$39.95 (https://secure.falcon-net.net/polyex/) direct from PolyEx Software, and if you like fast action games, you will not be disappointed.

-----

* Vigilance on Talos V
by (http://www.polyex.com/) PolyEx Software
MSRP: US$39.95

-----

(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.

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

March '97 Reader Survey Results

-----

What did we learn from last month's OS/2 e-Zine! Reader Survey?  Plenty!

Some of the results of our survey are pretty much as we (or you) expected, but your answers to a few questions surprised us.  Last month we asked, "What type of machine do you run OS/2 on?"

Answers were accepted from March 16th until April 13th and any duplicate or mangled e-mails were discarded.  We had a total of 2,821 readers send us valid replies to our questionnaire and the results were as follows:

Number of CPUs

No surprises here.  We would have been stunned (and jealous) if the numbers in this category hadn't been overwhelmingly biased towards single-CPU systems.  Our own systems struggle by on just one CPU and our survey results reveal that 97.3% of our readers' systems are identical in that regard.

OS/2 Version

We found your answers to this question a bit shocking -- we knew that Warp 4 was popular with OS/2ers but honestly would have expected to see a larger portion of our readers sticking with good old Warp 3.  This turned out not to be the case, however, with the vast majority (76.8%) of our readers reporting that they had moved on to Warp 4.  Four readers (.2%) were still chugging away with OS/2 v2.x.

Type of CPU

This question definitely produced the most even spread of answers from our readers.  Our survey results indicate that while the majority of readers are using Intel chips of some kind (72.2%), a surprising number (12.7%) of you choose systems with the Cyrix 586 or 686 chips.  As you might expect, the largest single group in this category (by a slim margin) was readers using Pentium 120/133 chips (19.6%), but what we want to know is: who are these lucky 204 people (7.2%!) using Pentium Pros?

Amount of Memory

Also in the "not surprising" category this month is the amount of RAM our readers have installed on their systems.  The largest category, 32 Megabytes, weighs in at 39.1% of our readers.  However, there are also a fair amount of readers with 64 Megabytes (19.2%) and somewhere between 33 and 63 (15.3%) as well.  And let's all extend our sympathy to those 47 brave souls (1.7%) who are using OS/2 with only 8 to 12 Megabytes. <g>

Don't forget to fill out our questionnaire this month (it's on the next page) and check back in May for complete results!

 
                       Complete Survey Results

Number of CPUs
	
Category	Count	Percentage
1		2,745	97.3%
2		53	1.9%
More than 2	23	.8%
TOTAL		2,821	100.0%


OS/2 Version

Category	Count	Percentage
2.x		4	.2%
Warp 3	650	23.0%
Warp 4	2,167	76.8%
TOTAL		2,821	100.0%


Type of CPU

Category		Count	Percentage
Intel 486		449	15.9%
Pentium 120/133	553	19.6%
Pentium 90/100	520	18.4%
Pentium 200		64	2.3%
Pentium 150/166	248	8.8%
Pentium Pro		204	7.2%
Cyrix 486		35	1.2%
Cyrix 586/686		357	12.7%
AMD 486		166	5.9%
AMD 5x86		105	3.7%
Other			120	4.3%
TOTAL	2,821	100.0%


Amount of Memory

Category			Count	Percentage
8-12 Megabytes		47	1.7%
13-15 Megabytes		2	.1%
16 Megabytes			285	10.1%
17-23 Megabytes		102	3.6%
24 Megabytes			148	5.2%
25-31 Megabytes		15	.5%
32 Megabytes			1,102	39.1%
33-63 Megabytes		432	15.3%
64 Megabytes			542	19.2%
65-79 Megabytes		7	.2%
80-96 Megabytes		82	2.9%
97-127 Megabytes		11	.4%
128-256 Megabytes		42	1.5%
More than 256 Megabytes	4	.2%
TOTAL				2,821	100.0%

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

OS/2 e-Zine! Reader Survey

-----

Have you ever wondered what your fellow OS/2 users are doing with their computers and how they're doing it?

Each month, OS/2 e-Zine! takes the pulse of the OS/2 community on a different topic and presents you with the results.

Just fill in the form at our web site (http://www.os2ezine.com/) and check back next month to find out how "normal" you really are!

Do you have an idea that you think would make a good survey question?  (feedback@os2ezine.com) Send it in!


Notes:
1. Only one entry per reader will be counted.
2. Information must be received by Haligonian Media by May 13, 1997.

The results of this month's survey will be printed next month (May 16th, 1997).

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

Pirate's Paradise	- by Allan Mertner

-----

  Most protections built into shareware programs do not fulfill their
  purpose of preventing nonpaying customers from using the full
  feature set of the programs.  Allan Mertner, author of the
  (http://www.bmtmicro.com/catalog/secureit/) SecureIt
  Shareware Protection package, looks into the issues involved.

The three main concerns

Publishing a shareware program is a complicated matter, where several factors need to be taken into account.  First and foremost, the freely distributable version of the software must provide enough functionality to convince potential customers of its usefulness.  Secondly, there should be an incentive for users to register the software.  And finally, the process of registering the software must be both simple and secure to prevent unauthorised access to the full set of features in the software.

The first point is what programmers spend the most time on: Writing a program that is hopefully useful to a lot of people, in order to make the software widely used and to sell as many copies as possible.

The second point, providing an incentive for buying it, is more difficult.  A number of standard techniques employed in this area are listed below, with examples of OS/2 shareware programs using the particular technique in brackets:

    o  Cripple the software so registering gives access to some
      specialised but interesting features (PMMail),
    o  Display a splash screen at program startup, with a built-in delay
      of a few seconds for unregistered users (PMView),
    o  Display "nag" or "beg" screens at various points during program
      execution, making the user aware that the program must eventually
      be paid for (Zap-O-Comm), or
    o  Build in a time-out function that prevents the software from being
      used after a certain date or after a certain number of days of
      usage (EmTec Network suite).

The above mentioned methods can, of course, be combined, with the ever present danger of annoying users so much that they cannot be bothered to use the program and so, of course, do not register it either.

The third point, protecting the software from unauthorised tampering, is typically the area where the least effort is invested.  Since most shareware programs are written by busy people in their spare time, it is hardly surprising that the available time is spent on extending the feature set and not on improving a part of the software that does not add value to it for the customer.

This has the downside that most shareware protections are easily circumvented by software pirates ("crackers"), which in turn may result in fewer copies of the software being sold.  The ultimate consequence of widespread use of unauthorised shareware is that the products in question are discontinued because the authors do not sell enough copies to pay for the effort of updating and maintaining them. This is certainly not a desirable situation, but probably a quite common one nonetheless.

Defining the term "secure"

In this article, I will be talking about secure software protection.  By this, I mean protection that can not be circumvented by any amount of clever debugging or changing of executable code (code "patching").  If either of these pirating techniques works on a particular protection system, it is not considered to be secure.

Building a lock vs. Buying one

Probably the main obstacle the typical developer is faced with is that he is not really qualified to write a good protection algorithm, because he has never tried to break one himself!

Consider the parallel where a nonprofessional attempts to design and build a secure lock for his front door.  He probably has some idea about how a good lock works, knowledge which enables him to make a lock that keeps the door from opening by itself, but is probably not capable of keeping even a relatively unskilled burglar out.  On the other hand, anyone capable of operating a screwdriver can buy a very safe lock and install it without necessarily knowing how it works internally -- it just does.

Similarly, to build a really secure software protection mechanism a rare combination of skills is required.  The person should obviously be a skilled developer, capable of writing a solid piece of software.  He should also have tried (successfully, mind you) to break a large number of different software protection schemes in order to know what constitutes a difficult system and what does not.  And lastly, he must be convinced to use this knowledge to create a protection system that is sound and can not be broken.

Software protection

Out of the list of commonly used protection methods given in the first section of this article, only the first, crippling the unregistered version of the software in some way, can ever be totally secure.  The other methods of protecting the software can always be circumvented, although obviously with varying degrees of effort required on the part of the software pirate, depending on the skill and effort of the programmer who developed the system.

In all the other cases listed, special code is executed when the program is not registered, and it is usually not a problem for a pirate to prevent these certain bits of code from being executed.

What makes crippled software potentially secure is that certain bits of code are only executed when the program is registered.  The fact that a core part of the software is not executed in the unregistered version is the key to building a really secure protection system, since this means that information required to execute those portions of code can be stored elsewhere or be supplied when the program is registered.

In spite of this, you may still want to implement a system that relies on an expiry date, well aware that the system is not secure.  The reason why it never can be secure is that there must be a date/time check somewhere in the code, which does not add information and so can be removed by a pirate.

The usual protection algorithm

In two thirds of all shareware programs, the protection algorithm used is a variation on the following piece of pseudocode:

  ...
  GetNameAndPassword;
  if VeryComplicatedRoutine(Name) <> Password then
    Registered = False;
    DisplayNagScreen;
  else
    Registered = True;
    DisplayRegisteredScreen;
  ...
  if Registered = True then
    EnableRegisteredFeatures;
    DisableNagScreens;

The code inside the "VeryComplicatedRoutine" is probably very complex indeed, and a software pirate is unlikely to be able to find out what it does.  Quite likely, the developer himself is not entirely sure anymore.

But the pirate does not want to know what it does!  The code above will, after all, not be included with source code, but just as an executable file and will translate to something like the following (the addresses used are, of course, just examples; if you are not proficient in assembly language programming, just read the comments and the explanation):

  call   00010404              ; Call GetNameAndPassword
  push   dword ptr [00219F3]   ; Push the Name parameter on stack
  call   0CF9921B              ; Call VeryComplicatedRoutine
  cmp    eax,[00219F7]         ; Compare the value returned with the
                               ; ...value entered as password
  je     00012004              ; Equal -> Jump to Program registered
                               ; Not Equal: Unregistered code
  mov    byte ptr [0023991],0  ; Set Registered to False
  call   00013D22              ; Display nag-screen
  jmp    0001201D              ; Continue after Registered code
@12004:
  mov    byte ptr [0023991],1  ; Set Registered to True
  call   00013F18              ; Display registered screen
@1201D:
  ...

To the uninitiated, the above is probably pure gibberish, but to the pirate it is "yet another 1-byte crack".  By changing the code to read:

  cmp    eax,[00219F7]         ; Compare password with correct value
  JMP    00012004              ; Program registered!

i.e. by changing the conditional "je" instruction to an unconditional "JMP", the program will always consider itself to be registered, irrespective of the password entered.  This involves changing just one byte in the executable.

A slightly more experienced pirate will recognise the call to the VeryComplicatedRoutine for what it is, and read the valid password for the name entered by simply checking the value of the eax register.  Having done this, all he has to do is enter this password, and the program is registered without even changing the executable file.

Pirate's Hell: Good protection

In spite of the difficulties involved, it is possible to write a generic protection system that is secure.  A system of this sort must adhere to the Software Protection Check List below, and at the same time make it easy for the programmer to use it:

    1. The data to be delivered to a paying customer should be a small
    piece of plain text that can be easily transmitted via telephone,
    fax or e-mail.  Keyfiles, extra DLLs, etc. are clumsy and not
    desirable.

    2. A valid password must have no obvious correlation with the name
    for which it works.  

    3. Many different products must be able to use the package, and the
    passwords for one product must not be valid for any other product.

    4. If a pirate knows one valid name/password combination, he must
    not be able to guess or deduce another one.  However, in this
    situation he does have access to everything required to run the
    full version of the program and it is possible to crack it
    with this knowledge.  The job of the protection system is to make
    it very, very difficult to crack the protection even with this
    knowledge (this is the primary reason for including the next three points:
    5, 6 and 7).

    5. It should be difficult for the pirate to locate the routines
    central to the protection mechanism.  Make the pirate spend as much
    time as possible simply locating the checking routines.

    6. Once the critical routines are located, it should be difficult to
    determine what they do and how they do it.

    7. A pirate should be dissuaded from debugging the code in the first
    place.  This should preferably be done by including code that behaves
    differently when the program is being run from inside a debugger, and
    that may even cause the system to hang if pirating is attempted.

    8. It must not be possible to make a "generic" patch, which will
    allow all programs protected with the system to be pirated if one
    is pirated.

    9. At its core, the system should be inherently safe and
    virtually impossible to crack, even if the above mentioned defenses
    are penetrated.

The Check List may look very complicated and long-winded, but each item is actually important.  In order for you to write your own secure shareware protection mechanism, you must read (and understand!) the Check List, spice it with some common sense, a bit of Assembler programming and some hands-on debugging experience, and you're halfway there.

Note, that by "debugging experience" I mean experience in debugging programs at machine level, not at source code level.  Get a good debugger capable of debugging any executable and have a play with breaking your current protection routine before doing anything else -- you may discover that it falls into the "usual" category outlined above, in which case you will probably want to do something about it...

If you don't want to go to the trouble of building a protection system yourself, a good alternative already exists in the shareware package (http://www.bmtmicro.com/catalog/secureit/) SecureIt.  It implements all the functions required for you to build really secure protection into your software with very little effort.  And SecureIt does fall into the category of "Good protection": I can not crack a program that properly uses SecureIt for protection -- and I wrote it!

More information?

If you are interested in more information on the subject of software protection, I might consider writing a follow-up to this article.  Write me an e-mail (the address can be found below) if you would find this worthwhile.

-----

(mertner@ibm.net) Allan Mertner is 30 years old and works as development manager for software publisher (http://www.fprint.co.uk) fPrint (UK) Ltd., which develops and markets the acclaimed Virtual Pascal for OS/2 product.  In his spare time, he sometimes writes software, and used to remove copy protections from software just for the fun of it.

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

Wrestling with Hardware	- by Eric Slaats

-----

I've won... at least, I think so.

Most of us are familiar with the feeling of relief when new hardware works and the feeling of harsh annoyance when things just refuse to.  Some time ago I decided to by a parallel port ZIP drive for my system.  This way I could install all the compilers and other stuff needed for the projects I works on, on a ZIP drive.  The idea was to take the whole thing with me and hook it up at work so I would always have the same environment.  I'm also a lecturer so I wanted to be able to show students some more complex stuff with a notebook on the overhead like how an API really looks and works, Delphi stuff, etc.  And the large database projects I work on could also benefit from this.  The complete project prototypes could run from a ZIP disk with original data.  Great for prototyping; simply hook the ZIP drive to a user's machine and show him what you think it should look like.  The notes made during such a session could even be stored on the same ZIP.

If it seems too good to be true...

Of course, the idea was too good to work immediately!  When I hooked up the drive on my old and trusted 486 DX2, it refused to work.  I really liked that old 486.  Overall, it was fast; it had two fast hard drives and enough memory (32 Mb which cost me dearly 4 years ago).  And it used one of the early Vesa local bus boards and had a fairly good video system with a Diamond Stealth Pro card.  OS/2 was running very smoothly on it and I did all my development and writing on this machine.  Well, maybe I'm a little too sentimental.

Anyway, I really wanted this ZIP stuff to work, so I did a little research.  Despite what the advertising says, there are machines out there that don't support a bidirectional parallel port.  I checked out my BIOS and according to some people I talked with, it should support ECC parallel ports.  Only, the motherboard for some reason, didn't.

So I bought a parallel adapter card for 15 guilders (about US$8).  This didn't work either.  (The $8 isn't wasted, my ZIP is humming happily on that card right now.  Besides, I regularly detach the ZIP so it's convenient that it doesn't use the printer port.  I recommend this investment for every parallel port removable media user.)

The original idea of using the ZIP for this stuff was already a month old and I started to get impatient.  Also, programs I was writing were starting to take a long time to compile.  (Compiling the complete Smalled code took me about 2.30 minutes.)  So, faster hardware was welcome.  Oh, and I received Warp 4.0 (I really like the name Merlin better).  After installing it, I found it very slow on my 486.  And of course, the voice thing was out of the question.

That did it, I decided that after 5 years the old DX2 had to be replaced with something new.  The old machine had been regularly updated, but I couldn't take it any further.  I decided (as I did when I bought the DX2) to skip a processor generation.  So a Pentium PRO 200 would be my choice.  I wanted a balanced machine with as little problems as possible, so I decided on the following:

o  Pentium PRO 200 on an Intel board
o  Sound Blaster 16 PnP 
o  Quantum Fireball 2.1 Gig
o  a 12X CD-ROM
o  an S3 Virge card with 4 Mb EDO RAM
o  64 Mb BEDO RAM.

How did I come to these decisions?  Well, I have had very good experiences with Quantum: fast disks for a reasonable price.  Having had major trouble with my old sound card (a 5 year old 8 bit-er), I decided to play it safe and use a Sound Blaster.  (I also found the price reasonable which I didn't 5 years ago.)

I decided on the S3, based on my experiences with the Diamond Stealth Pro (864).  This was a major error as it turned out!  I made another major error, too.  My hardware supplier offered me a 3.5 Gig drive which was also a PIO4 for the same price as the Fireball.  He assured me it was a good drive, that he had built it into many machines and never had problems.  He also offered to take it back if it wasn't satisfactory (luckily).

At this point I had made two major mistakes:
1) I didn't check the newsgroups for signals on hostile hardware.
2) I got resource greedy and so dropped quality hardware.

Delivery Day

I got the machine in assembled status.  The first weird thing I noticed was that the CD didn't respond very well.  Sometimes it wasn't found at all!  It even seemed slower that my old single-speed drive.  Usually I never tweak the BIOS when a system runs satisfactory, but now I decided to have a look.  The hard disk was set up as primary master, but the CD-ROM was attached as secondary slave!  I was surprised it worked at all.  (I later checked with the supplier and he assured me they always did it that way.  When I showed them the benchmarks for the CD in the two different settings, they simply couldn't believe it.)

So the first hurdle was overcome, the CD was set up as secondary master.  No problems there.  After that, Warp 3.0 and Merlin installed like a breeze.  But they were still running at 640x480.

I used the 17" Trinitron monitor of my old machine, so what I wanted was my old and trusted 1280x1024 (65K colours) back.  The OS/2 CD's didn't contain any Virge drivers (the device driver pack did!) but luckily with the Virge came a CD from S3 with drivers.  I tried them under Warp 3.0 and they installed perfectly.  As usual, I first tried some lower resolutions; at 1024x768x256 the card worked OK.  But....  when I tried 1280x1024 the bad things happened.  The machine very regularly locked up the Desktop.  And these lockups occurred at random, especially when:

1) More than one object was dragged over the Desktop or a maximized window.
2) When a command prompt window was active and a drag was initiated.
3) When text was selected in an MLE control.
4) When the cursor keys were used to walk through a listbox or tree viewed container.
5) When Win-OS/2 was started.

I tried this under Merlin and had more or less the same effects.  I also installed Win95 for my Delphi clinics and (luckily) I experienced strange lockups in Win95 (as well as Win NT 4.0) with this card.  After the first two lockups under Windows, I decided not to try anything else.  Since the driver I used was from S3 I tried to contact them through the Internet.  They told me to contact the manufacturer of the card.  The manufacturer told me to contact S3 since they provide the drivers.  (Sound familiar?)

I had definitely had it with the Virge card.  I tried virtually every trick I could think of, I even edited the video files (not recommended) -- the errors simply stayed.  Since lockups need a reboot this took an enormous amount of my time, and my mood (and that of my family) was rapidly sinking.  I decided to try some of the S3 TRIO cards I use at work for experiments (only VIO).  I wasn't completely happy, because S3 didn't seem very trusted at that moment, but I needed a solution fast.  (More about the TRIO in a moment.)

More Problems...

In the mean time this new machine had produced another flaw.  Since the Desktop lockups need a reset of the machine, I regularly needed to watch the machine check the boot partition.  The strange thing was that it stalled during this check 3 out of 4 times.  The machine simply didn't show any sign of life after it locked in a CHKDSK.  Luckily this one was very simple to reproduce and I showed it to a very moody supplier (he wasn't too happy to begin with, after my video card adventures).  He agreed to take the disk back and swap it for the Fireball.  I was also moody because I had just installed everything on this 3Gb hard disk -- it took me hours!  The Fireball seemed to work perfectly (it even was faster than the other HD), so I was happy about that.

Back to the S3 TRIO.  This was a 2Mb card so I was limited to 256 colors in 1280x1024.  I could live with that, so it was installed.  I used the v2.84 driver on the device driver pack and found it had a lot of the flaws I experienced with the Virge.

My hopes for a working machine really hit rock bottom.  I had been trying to get it to function for 3 weeks now.  Then I heard a rumor that the 3.03.03 driver for this card was released.  It took me some time to find it because it wasn't on the IBM device driver repository (strangely enough).

When I tried v3.03.01 it was a big improvement, however, not big enough, so I searched for v3.03.03.  This driver worked great!  I sometimes have a mysterious lockup, but I'm prepared now and it only happens once a week, so I can live with that.  The annoying thing is that it happens more often in Win95 when I'm working with Delphi (but I found a patch to make Delphi work under OS/2, though!).

So I'm happy OS/2 is working well.  I guess I've won; my machine is running happily and I'm as productive as ever (although I'm still catching up on the missed month).

What has helped me in this misery

The Internet.  Really, it's a mistake not to try to find info, or to ask for advice about a new piece of hardware you want to buy.  When I was desperately stalking the newsgroups for a piece of info, I stumbled upon the comp.os.os2.setup.video group.  This is really a group to check if you're wanting to buy new video hardware or have a problem with it.  And of course, some of you readers who reacted to my frustrated cry in my "How Do I?" column have helped me with pieces of the puzzle.

I found that the time I spent trying to make my new machine work has cost me a multiple of the amount the machine itself cost.  Besides that, the whole process was very frustrating.  If I could do it again, I think I would have spent some more money and bought a Matrox Millennium card.  I'll never drop a quality piece of hardware again in favor of some dubious but "larger" piece of hardware.

-----

(eric.slaats@pi.net) Eric Slaats holds a degree in Computer Science and teaches computer technology in Eindhoven.  He is the creator of the (http://www.bmtmicro.com/catalog/smalled/) Smalled utilities.

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

Nethead's Nook	- by Brandon Fesler

-----

Hello once again, everybody.

Well, I'm thinking of pounding my head up against the wall.  I've refused a job offer that seemed too good to be true. You see, I'm big into web design -- you could even call me a fanatic!

So, last month, these guys call me and tell me they have a great job for me, with plenty of time for meditating and thinking about... uhhh, some grey skinny dudes.  (Don't ask me, I thought they looked like aliens).

I was somewhat suspicious as to whether these people were for real... but it seemed somewhat OK.  There didn't seem to be any heavy Windows reliance... for example, he told me:

"We have a lot of UNIX running around here."

...and:

"You can get a free EMACS-ulation."

Whatever that means.  In the end though, I turned it down after hearing they bought their office furniture from K-Mart.  I mean, as a Web Lord, you have to have STYLE!

I guess it was a good choice too -- I called these people back and nobody answered.  Guess they went out of town or something.  I hate long travel trips.

Well, anyway, enough about me, this month I want to rave about something that has really bugged me for a while now.

It seems to me that Stardock has become the Rodney Dangerfield of the OS/2 world.  They, "can't get no respect," no matter how hard they try to fulfill the wants and needs of OS/2 users.

We wanted OS/2 games.  Stardock gave us OS/2 games.  We wanted a great looking, more-functional GUI.  Stardock gave us that, too.  We wanted a million dollars... oh, well, okay.  Maybe the naysayers have a point there.

But seriously, folks.  Look at Stardock's track record.  They have given us what we want, in a no-nonsense fashion.  They love OS/2 just as much as we do.  If they didn't, why then are they working to give us yet more things we've been wanting, like font anti-aliasing and plugs for the input queue holes?

Instead of second-guessing this company, let's give them a year and see what they do.  OS/2 is on the verge of a new and exciting revision next year, and I personally would bet five bucks that Stardock will be leading the way on the ISV front when it goes multiplatform.

Oh yes, and for all of you who are claiming that Stardock is "abandoning OS/2" because of their whopping 1 multi-OS program, Entrepreneur, consider the future plans of this company, and the bullish attitude of its biggest outspoken employee, Brad Wardell.

Look at their ideas and visions, and their wishes for OS/2.  Look at how they have fought to keep OS/2 in the mainstream, and to give it a "fighting chance" among the mainstream press and its "Windows Everywhere" attitude.  Look on the software shelves of your local CompUSA.  There have been unseen battles to get that software on those shelves.

Most importantly of all, look at what they do.  Watch them for a year.  Then reconsider their true position on OS/2.  You may find that they are on our side, after all.

-----

(nethead@okc.oklahoma.net) NetHead is a freelance mattress tester, a pupil of Doctor Strangelove and can be reached on the web at (http://www.oklahoma.net/~nethead/) www.oklahoma.net/~nethead/.

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

March's Top Selling Applications from Indelible Blue

-----

Note: This list represents only the monthly sales figures of Indelible Blue, Inc.  Please read our disclaimer below for more information.
	
This		Last 	Product					Developer
Month		Month
1		4	BackMaster v2.0			MSR Development 
2		1	FaxWorks Pro v3 UG			Keller Group Inc.
3		8	Process Commander			Stardock Systems
4		7	IBM AntiVirus v2.4 Desktop Ed.		IBM
5		3	SmartSuite				Lotus
6		13	Performance Plus			Clear & Simple
7 (tie)		6	Partition Magic v3 Personal Ed.		PowerQuest
7 (tie)		9	ColorWorks V2 CD			SPG
8		15	Seagate Backup				Seagate
9 (tie)		10	QuickMotion v1.1			Practice Corporation
9 (tie)		10	UniMaint				SofTouch Systems
10 (tie)	2	BackAgain/2 v4.0 Prof. Ed.		Comp. Data Strat.
10 (tie)	8	Hobbes CD November Ed.		Walnut Creek
11		--	Sytos Premium			Sytron
12		11	GammaTech Utilities			SofTouch Systems
13		--	Object Desktop Pro			Stardock Systems
14		--	Trials of Battle				Stardock Systems
15		--	HyperAccess				Hilgraeve
-----

Compiled by (http://www.indelible-blue.com/ib/) Indelible Blue, Inc. - Your Single Source for OS/2 Solutions.

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

March's Top Selling Applications from J3

-----

Note: This list represents only the monthly sales figures of J3 Computer Technologies.  Please read our disclaimer below for more information.

This	Last 	Product					Developer
Month	Month
1	9	Seagate Backup for OS/2		Seagate
2	2	Word Pro & Freelance Graphics		Lotus
3	1	SmartSuite 96 Upgrade			Lotus
4	9	LinkWiz				PCX
5	8	System Commander			V Communications
6	7	FaxWorks Pro v3 UG			Keller Group Inc.
7	--	BitStream 500 Font CD			BitStream
8	6	Partition Magic v3 Personal Ed.		PowerQuest
9	--	ColorWorks v2 Scanner Plug-in		Solution Technology, Inc.
10	10	QuickMotion v1.1			Practice Corporation
-----

Compiled by (http://www.os2store.com/) J3 Computer Technologies - Serving the Global OS/2 Community, large and small!

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

March's Top Selling Applications from BMT Micro

-----

Note: This list represents only the monthly registration figures of BMT Micro, Inc.  Please read our disclaimer below for more information.

This	Last 	Product				Developer
Month	Month
1	1	PMMail				SouthSide Software
2	2	InJoy				F/X Communications
3	3	PMView			Peter Nielsen
4	--	XFile				CodeSmith Software
5	8	ZOC				EmTec Innovative Software
6	5	OpenChat/2			Max Mikhanosha
7	9	FTP Browser			Jason Rushton
8	7	ScreenSaver			Siegfried Hanisch
9	6	EmTec Network Suite		EmTec Innovative Software
10	--	MR/2 ICE Internet Emai		Knightware Software Co.
-----

This list is compiled by (http://www.bmtmicro.com/) BMT Micro -- Your Source for Over 100 Quality Shareware Applications.

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

Top Sellers Lists Disclaimer

-----

Our "top sellers lists" represent sales figures compiled for OS/2 e-Zine! by BMT Micro, Inc., Indelible Blue, Inc. and J3 Computer Technologies.  Falcon Networking does not verify these lists and makes no guarantee of their authenticity.  All inquiries regarding products appearing or not appearing on these lists should be directed to the relevant retailer.

The publication of these lists is not meant to indicate an endorsement by Falcon Networking of any of these companies or of the products featured on the lists.

Readers should note that the rankings indicated in each of these lists represent only the sales of each individual retailer.  They do not, necessarily, represent sales across the entire OS/2 industry.

There are many different sales channels in the OS/2 industry and different software vendors rely heavily on some while other vendors rely more heavily on others.  Also, not all retailers carry all existing OS/2 products.  Readers should take these facts into consideration when interpreting the "top sellers lists".

The BMT Micro "top sellers list" represents only the top selling OS/2 shareware applications available through BMT Micro, Inc.  The BMT Micro CD is excluded from the figures to avoid distorting the results.

The Indelible Blue "top sellers list" represents only the top selling OS/2 applications sold by Indelible Blue, Inc.  OS/2 Warp and OS/2 Warp Connect are not included in these rankings.

The J3 Computer Technologies "top sellers list" represents only the top selling OS/2 applications sold by J3 Computer Technologies.

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

How to Subscribe for FREE

If you would like to recieve notification when new issues of OS/2 e-Zine! are posted, use our on-line subscription form at http://www.os2ezine.com/subscrib.htm -or- send a note to (subscribe@os2ezine.com) subscribe@os2ezine.com with the following information:

subject line:	subscribe os2 notify
message body:	your name

The following is an example of how your e-mail may appear:

To:		subscribe@os2ezine.com
Subject:		subscribe os2 notify
----------

John Smith
----------

We require your name to process your subscription request.  Please send all subscription requests from the e-mail address you wish to subscribe.  Make sure your software is properly configured!

You will receive an automated response verifying that you have been added to the list with instructions on how to remove yourself should you decide to.  If you do not receive this response within a few days please try again making sure that the software you are using is properly configured with your e-mail address.

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

Falcon Networking
4302 NW 25th Terrace
Gainesville FL, 32605
U.S.A.

(902) 461-2266

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

Sponsor OS/2 e-Zine!

* Corporate Sponsors

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

For more information please e-mail sales@os2ezine.com or phone (902) 461-2266.

* Readers Can Sponsor Too!

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

Just send your cash, cheque or money order (made payable to Falcon Networking) along with:

o  a note stating that it is for OS/2 e-Zine! sponsorship
o  your name
o  your address (city, state/province and country)
o  your e-mail address
o  your web URL if applicable

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

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

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) e-mail us or contact us at:

Falcon Networking
4302 NW 25th Terrace
Gainesville FL, 32605
U.S.A.

(902) 461-2266

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

Corporate Sponsors of OS/2 e-Zine!

-----

(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.4ctc.com/) CrossTec Corporation
NetOp Remote Control Software for OS/2 with cross platform support to Windows (either direction).  Free evaluation copies available.

(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.emtec.com/) EmTec Innovative Software
EmTec Innovative Software produces state-of-the-art OS/2 ISDN, modem and telnet communications software.  OS/2 Magazine and Inside OS/2 1995 award winner.

(http://www.fx.dk/) F/X Communications
Home of the top selling (http://www.fx.dk/injoy/) InJoy dialer, ranked #1 in worldwide OS/2 shareware sales (Jan-97).

(http://www.hotinc.com/) House of Technology, Inc.
Your Canadian Source For OS/2 Applications.

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

(http://www.os2store.com/) J3 Computer Technologies
Serving the Global OS/2 Community, large and small!

(http://www.kellergroup.com/) Keller Group Inc.
Developers of FaxWorks for OS/2 and PMfax, the fax and voice solution for OS/2, with versions for stand-alone, LAN and Internet Faxing.

(http://nick.secant.com/mr2ice.htm) MR/2 ICE Internet Email Client
Delivering the electronic mail features of the future, today.  A product of Knightware Software Company.

(http://www.Mount-Baker.com/) Mt. Baker Software
Developers of Money Tree, a full featured personal financial package for OS/2.

(http://prairie.lakes.com/~oberon/) Oberon Software, Inc.
Home of TE/2, TE/2 Pro and other fine OS/2 programs.  Specializing in telecommunications and the Internet.

(http://www.pcs-soft.com/) Perez Computing Services
Defend against desktop freezes with Ctrl-Alt-Del Commander and create online documents/help with the IPF Editor.

(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.

(http://www.softouch.com) SofTouch Systems, Inc.
Home of the bestselling set of disk and desktop maintenance products for 
OS/2: GammaTech Utilities, UniMaint, and FileStar/2!  ---- Your System's Safe and Sound with SofTouch Around

(http://www.stardock.com/) Stardock Systems
Providing quality software for the home and office.

***********************************
Copyright 1997   -   Falcon Networking
ISSN 1203-5696